请教各位各位这是什么错误?
procedure Tgzgl.Button2Click(Sender: TObject);begin
with adoquery1 do
begin
close;
sql.Clear ;
sql.Add('insert into pay(date,id,name,bpay,apay) values (:date,:id,:name,:bpay,:apay)');
Parameters.ParamByName('date').value:=edit1.text;
Parameters.ParamByName('id').value:=edit2.text;
Parameters.ParamByName('name').value:=edit3.text;
Parameters.ParamByName('bpay').value:=edit4.text;
Parameters.ParamByName('apay').value:=edit5.text;
execsql;
showmessage('保存成功')
end;
end.
开始正常进入程序
为什么一点击“添加”按钮运行就出现错误
[attach]52176[/attach]
我是在dbgrid显示access数据库内容 使用了一个 datasource 和一个adoquery控件连接到access数据库上,
是我链接不对吗?
[[i] 本帖最后由 court1 于 2010-7-28 10:30 编辑 [/i]]
回复 楼主 court1
好久没人回复 我自己在网上找到了 供大家参考把参照内容:
异常详细信息: System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误。
设置断点,把sql【INSERT INTO [group] ([Group],User) VALUES ('5','6') 】拷贝到Access中执行,没有报错!可是为什么在页面中执行就报错呢?百思不得其解!折腾了好久都没搞定!最后百无聊赖的把User字段加上中括号,然后再执行,竟然成功了!靠!
最后的sql是:
INSERT INTO [group] ([Group],[User]) VALUES ('5','6')
关注。 根据连接方式的不同, SQL 中的参数的格式是不同的,
:xxx 是 ORACLE 的用法
? 是 OLEDB 的用法
@xxx 是 SQLSERVER 的用法
我在sql server 2000上试验了下,正常,没问题! 关注度不是很高啊。。。。 这个语句没问题的 execsql 改成OPEN
页:
[1]