各位大虾帮忙看看那里做错了!!

dlll 2003-05-22 05:04:18
各位老大!!
帮我看看这段代码哪里出问题了!!谢谢各位大虾!!
str1-str12市string型变量!
men市float型!
运行期错误提示:
“project soft_com.exe raised exception class eoleexception withmessage“再次上下文中不允许实用'mem'。此处只允许使用常量、表达式、或变量。不允许使用列名”。process stopped.use step or run to continue.”

adoquery1.SQL.Add('insert into con_manage values ('''+str1+''','''+str2+''','''+str3+''',men,'''+str5+''','''+str6+''','''+str7+''','''+str8+''','''+str9+''','''+str10+''','''+str11+''','''+str12+''') set identity_insert con_manage on');
adoquery1.ExecSQL;
...全文
64 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
myling 2003-05-22
  • 打赏
  • 举报
回复
晕死了,楼主,你到底看没看楼上各位给你写的东东呀?

「已注销」 2003-05-22
  • 打赏
  • 举报
回复
去掉前面的"
dlll 2003-05-22
  • 打赏
  • 举报
回复
我看出问题来了!!!
men是一个实型变量!!
但在
adoquery1.sql.add('insert into values('''+str1+''',...,men,....)
中men被当作字符串常量了!!
怎么办???
sailerbai 2003-05-22
  • 打赏
  • 举报
回复
是引号的问题,你的本意是想要第一个和最后一个单引号配对,但是在实际运行时讲开始后遇到的第一个单引号认为时引号的结束,可以象上面几位说的,把sql语句show出来,就知道对错了!
jakefj 2003-05-22
  • 打赏
  • 举报
回复
insert into 表名(字段名1,字段名2...) values(值1,值2...)
这样才可以给不同字段名赋值.也不用考虑到字段类型不同.
chengcheng2024 2003-05-22
  • 打赏
  • 举报
回复
我想是你的类型出错了,你把men 转换为decimal 试一下!因为money型就是小数型,它小数点后有固定四位数。
dlll 2003-05-22
  • 打赏
  • 举报
回复
可是再sql sever 表中men对应的是一个货币类型的数据项!!!
如果men转换成string型的话'''+men+'''转换成sql语句后,应该是字符串,
再sql表中进行insert操作会产生类型匹配错误的!
linwolong 2003-05-22
  • 打赏
  • 举报
回复
不好意思,上面应是adoquery1.params[0].asstring:='''+edit1.text+''';
还有,sql与句是:
adoquery1.sql.add('insert
into con_manage
values(:str1,:str2,:str3,:men,:str5,:str6,:str7,:str8.......)');
linwolong 2003-05-22
  • 打赏
  • 举报
回复
我写段代码你参考:
adoquery1.sql.add('insert
into con_manage
values(':str1,:str2,:str3,:men,:str5,:str6,:str7,:str8.......')');{给变量前加:是为了让adoquery知到是外部变量}
adoquery1.parpare; {调用adoquery的parpare方法,检测sql语句中的外部变量,放到 params参数组里}
adoquery1.params[0]:='''+edit1.text+'''; {给参数赋值,此处是变量str1的值,比如是一个编辑框的值}
......{照上面的语句依此给str2,str3,men......赋值}
adoquery1.excesql;
gxhwq 2003-05-22
  • 打赏
  • 举报
回复
你用showmessage(adoquery1.SQL.text)来看看,你会明白的。
lili1 2003-05-22
  • 打赏
  • 举报
回复
同意一楼
risingsoft 2003-05-22
  • 打赏
  • 举报
回复
men非法!
cow8063 2003-05-22
  • 打赏
  • 举报
回复
可能是单引号错,你加showmessage(sql.text)在打开之前看看,这个SQL是不是对的,然后再修改一下
火龙岛主 2003-05-22
  • 打赏
  • 举报
回复
insert 语句的正确表达为...
insert into 表名称 (字段1,字段2...) values(值1,值2...)
firetoucher 2003-05-22
  • 打赏
  • 举报
回复
同意楼上!
adoquery1.SQL.Add('insert into con_manage values ('''+str1+''','''+str2+''','''+str3+''','+floattostr(men)+','''+str5+''','''+str6+''','''+str7+''','''+str8+''','''+str9+''','''+str10+''','''+str11+''','''+str12+''') set identity_insert con_manage on');
adoquery1.ExecSQL;
MyCrooner 2003-05-22
  • 打赏
  • 举报
回复
同意楼上
weitao999 2003-05-22
  • 打赏
  • 举报
回复
估计是men前后错了:
str3+''','+floattostr(men)+','''+str5

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧