SQL修改报错???高手高手何在呢?(50分)

  • 主题发起人 leezezelee
  • 开始时间
L

leezezelee

Unregistered / Unconfirmed
GUEST, unregistred user!
我的想法是用SQL语句在DELPHI自带的DBDEMOS数据库的CUSTOMER表中修改记录,
把CUSTNO =1351的ADDR2值修改为CHINA。因此我写了如下的代码,但是报错。
报错是:(Invalid Use of keyword,Token: update,Line Number:2)
我是DELPHI弟弟手不知道该如何办泥?

dbgrid1.align:=alclient;
query1.close;
query1.UnPrepare;
query1.sql.clear;
query1.sql.add('select * from customer');
query1.sql.add('update customer addr2 = china where custno = 1351 ');
query1.Prepare;
query1.open
 
老大,SQL语句,只能是一条SQL,
否则就是存储过程
应该这样写!
我的想法是用SQL语句在DELPHI自带的DBDEMOS数据库的CUSTOMER表中修改记录,
把CUSTNO =1351的ADDR2值修改为CHINA。因此我写了如下的代码,但是报错。
报错是:(Invalid Use of keyword,Token: update,Line Number:2)
我是DELPHI弟弟手不知道该如何办泥?

dbgrid1.align:=alclient;
query1.close;
query1.UnPrepare;
query1.sql.clear;
query1.sql.add('select * from customer');
//query1.sql.add('update customer addr2 = china where custno = 1351 ');
query1.Prepare;
query1.open

我的想法是用SQL语句在DELPHI自带的DBDEMOS数据库的CUSTOMER表中修改记录,
把CUSTNO =1351的ADDR2值修改为CHINA。因此我写了如下的代码,但是报错。
报错是:(Invalid Use of keyword,Token: update,Line Number:2)
我是DELPHI弟弟手不知道该如何办泥?

dbgrid1.align:=alclient;
query1.close;
query1.UnPrepare;
query1.sql.clear;
//query1.sql.add('select * from customer');
query1.sql.add('update customer addr2 = china where custno = 1351 ');
query1.Prepare;
query1.open
 
query1.sql.add('update customer addr2 = china where custno = 1351 ');
改为:
query1.sql.add('update customer addr2 = '+#39+'china'+#39+' where custno = 1351 ');
也就是给china加单引号
 
update customer后面应该有个set,china应用引号引起:
query1.sql.add('update customer set addr2 ="china" where custno = 1351 ');

最好用query1.execsql来执行而不是query1.open
 
在第二句前加个空格看一下

还有你的China是变量吗,如果是的话你用参数
dbgrid1.align:=alclient;
query1.close;
query1.UnPrepare;
query1.sql.clear;
query1.sql.add('select * from customer');
query1.sql.add(' update customer addr2 = :china where custno = 1351 ');
query1.ParamByName('china').AsString:="chinaValue"
query1.Prepare;
query1.open
 
有可能你没有建立主索引也是一个原因
 
应这样写:
dbgrid1.align:=alclient;
query1.close;
query1.UnPrepare;
query1.sql.clear;
query1.sql.add('update customer set addr2 ='' china'' where custno = 1351 ');
query1.Prepare;
query1.open
 
解决没有啊?
imok的就行了。
老大,多看看书吧
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
846
SUNSTONE的Delphi笔记
S
I
回复
0
查看
838
import
I
顶部