求救:出现怪事了

limd 2004-04-07 12:00:14
SQL.Text := 'INSERT INTO MapData (layer, image, x, y, gate) VALUES (' + IntToStr(ComboBoxGraphLayer.ItemIndex + 1) + ', ' + IntToStr(index) + ', '+ IntToStr(xx) + ', ' + IntToStr(yy) + ', ' + IntToStr(ComboBoxMapFile.ItemIndex + 1) + ')';
ShowMessage(sql.Text);
ExecSQL;

上面语句,一执行就说INSERT INTO语句语法错误,但我的确看了N遍,也对了N遍,就是看不有什么错误,字段都是数值型的

ShowMessage显示的是
INSERT INTO MapData (layer, image, x, y, gate) VALUES (1, 2, 20, 0, 1)

错误为
Project raised exception class EOleException with message 'INSERT INTO 语句的语法错误.'

请大家说说错误在哪里,或者是什么引起的,谢谢
...全文
48 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
limd 2004-04-07
  • 打赏
  • 举报
回复
说了,字段都是整形的,以前用的字段名是id,不是image,自从把字段名改了后,就出现这样的问题,如果是image的问题的话,但别的表插入又怎么没事呀
周江涛 2004-04-07
  • 打赏
  • 举报
回复
'INSERT INTO 语句的语法错误.' 既然是语法错,问题就简单明了 了,自己在query analysis里调试一下!
delphi_xizhousheng 2004-04-07
  • 打赏
  • 举报
回复
估计是数据类型或者格式问题
delphi_xizhousheng 2004-04-07
  • 打赏
  • 举报
回复
你跟踪时把sql.Text拷出来,放到DB中执行看看
lzy6204 2004-04-07
  • 打赏
  • 举报
回复
将类似IntToStr(ComboBoxGraphLayer.ItemIndex + 1)
的变为:QuotedStr(IntToStr(ComboBoxGraphLayer.ItemIndex + 1))
问题就可以解决
henreash 2004-04-07
  • 打赏
  • 举报
回复
为什么不用参数写阿?这样看着就晕了.
query1.sql.add(insert into youtablename values(:p1,:p2,:p3,:p4));
query1.parameter(p1).value:=1;
query1.parameter(p2).value:=1;
query1.parameter(p3).value:=1;
query1.parameter(p4).value:=1;
try
query1.exceSql;
except end;
welllove88 2004-04-07
  • 打赏
  • 举报
回复
你的那些数据字段都是什么类型的,是整形的吗?如果不是加这个函数QuotedStr(IntToStr(index)),是为字符串加引号的
hhzqf1980 2004-04-07
  • 打赏
  • 举报
回复
忘了问你:ShowMessage(sql.Text)出来的SQL是否可以执行
如果可以执行,可能是关键字的问题
如果sql.Text不能执行的话,一定是你的SQL写错了
hhzqf1980 2004-04-07
  • 打赏
  • 举报
回复
可能是关键字的问题
你把IMAGE换成另外一个东西试试!!!!!!!!!!!11
limd 2004-04-07
  • 打赏
  • 举报
回复
当然别的表用image作字段,插入记录没事,就这个表,出现这种问题
limd 2004-04-07
  • 打赏
  • 举报
回复
上面问题解决, 出在字段image上.

真是怪事,别的表可以用image作字段名,这个表,怎么就不可以呢.一插入就说语法错.原因是什么呢?

请楼下能否提提自己的看法

2,498

社区成员

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

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