court1 发表于 2010-7-27 17:25

请教各位各位这是什么错误?

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 发表于 2010-7-28 10:29

回复 楼主 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')

yalewang 发表于 2010-8-4 16:28

关注。

makebest 发表于 2010-8-5 15:47

根据连接方式的不同, SQL 中的参数的格式是不同的,
:xxx  是 ORACLE 的用法
?     是 OLEDB 的用法
@xxx  是 SQLSERVER 的用法

steven1013 发表于 2010-9-2 15:21

我在sql server 2000上试验了下,正常,没问题!

ouyang_paul 发表于 2010-9-17 00:05

关注度不是很高啊。。。。

ira_wang 发表于 2010-12-8 16:12

这个语句没问题的

ira_wang 发表于 2010-12-8 16:13

execsql 改成OPEN

页: [1]

编程论坛