提示insert into 语法错误,太奇怪了(50分)

  • 主题发起人 主题发起人 weblogic_li
  • 开始时间 开始时间
W

weblogic_li

Unregistered / Unconfirmed
GUEST, unregistred user!
ADOQuery1.Close;
ADOQuery1.SQL.Text:='insert into PlowlandCess (cess,Explain,memo) values (:cess,:Explain,:memo)';
ADOQuery1.Parameters.ParamByName('cess').Value:=11;
ADOQuery1.Parameters.ParamByName('Explain').Value:='31231';
ADOQuery1.Parameters.ParamByName('memo').Value:='3123131';
ADOQuery1.ExecSQL;
 
sql.text改为sql.add()
 
错误提示是什么,如果你的那些字段是字符串型的话,参数值要加引号
ADOQuery1.Close;
ADOQuery1.SQL.Text:='insert into PlowlandCess (cess,Explain,memo) values (:cess,:Explain,:memo)';
ADOQuery1.Parameters.ParamByName('cess').Value:=11;
ADOQuery1.Parameters.ParamByName('Explain').Value:='''31231''';
ADOQuery1.Parameters.ParamByName('memo').Value:='''3123131''';
ADOQuery1.ExecSQL;
 
实际上是一样的,我试过了,不行,我用的d6+update1 and 2
 
这些我都在acess库中试过了,没问题,就是在d6运行时不可以
 
ADOQuery1.Close;
ADOQuery1.clear;
ADOQuery1.SQL.add:='insert into PlowlandCess (cess,Explain,memo) values (:cess,:Explain,:memo)';
ADOQuery1.Parameters.ParamByName('cess').Value:=11;
ADOQuery1.Parameters.ParamByName('Explain').Value:='31231';
ADOQuery1.Parameters.ParamByName('memo').Value:='3123131';
try
ADOQuery1.ExecSQL;
except
showmessage('Error');
end;
 
呵呵,加上了,不行,还是inser into 语句的语法错,但是没错,ado的问题?
 
那你把:cess,:Explain,:memo,改成别的看看,看看数据库中是否有这些字段,类型符合吗?
设置断点看看,那些参数的值加进去了没有?
不会是ado的错误的,这些可是正规的sql写法呀。
 
memo是不是access的保留字?改个名字看看行不行?
 
怎么解决的?
 
memo不是acess的保留字,但是ADO的,用bde可以,所以,在adoquery.时需要注意
 
来晚了, 我以前也碰到过这样的事

number是一个保留字 , 在 ACCESS 中运行 没有事

在Query 中, 就是不行.后来, 我记得我是 加了 [] 才可以的.
 
后退
顶部