ADOQUER中 SQL insert 的问题。

ptpa 2003-11-30 11:53:58
这段代码的错误是什么?怎么改?
with ADOQuery1 do
begin
Active:=false;

ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\My Documents\tongji.mdb;Persist Security Info=False';
with SQl do
begin
Clear;

Add('INSERT INTO jieyue(A,B)');
Add('VALUES(:Bid,:Bname)');


end;

Active:=true;
end;

错误提示:
Current provider does not support returining multiple recordsets from a single execution

adoquery1: CommandText does not return a result set

怎么改?
...全文
29 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ptpa 2003-12-10
  • 打赏
  • 举报
回复
该问题以解决,首先把sql语句赋给一个字符串值就可以。谢谢各位
BG2WUI 2003-12-04
  • 打赏
  • 举报
回复
同意,angle097113(深思不解)。

或用ADOCommand来做,结帖吧!
ptpa 2003-12-04
  • 打赏
  • 举报
回复
这个bid,bname在这里的含义是什么?
hnhb 2003-11-30
  • 打赏
  • 举报
回复
with ADOQuery1 do
begin
Close;

ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\My Documents\tongji.mdb;Persist Security Info=False';
SQL.Clear;

SQL.Add('INSERT INTO jieyue(A,B)');
SQL.Add('VALUES(:Bid,:Bname)');
Parameters[0].value:=xxx;
Parameters[1].Value:=yyy;
Open;
end;
你的问题是参数未附值!
zhxfzhxf1 2003-11-30
  • 打赏
  • 举报
回复
同意volkia(MonkeyKing).等人.

同时,由于语句中的参数为动态产生的,如果在设计时并没有设置参数,上面的程序
SQL.Add('VALUES(:Bid,:Bname)');
并不能自动产生产生参数
,而是需要程序中创建.



ln521 2003-11-30
  • 打赏
  • 举报
回复
附值:
parambyname('bid').value:=edit1.text;
parambyname('bname').value:=edit2.text;
volkia 2003-11-30
  • 打赏
  • 举报
回复
同意[angle097113(深思不解)]的观点:

对数据表的插入、删除和修改操作不会返回一个记录集,而ADOQuery控件常常用来返回一个记录集,所以,此类操作一般用ExecSQL或ADOConnection.Execute(sql)等方法来完成。

从此可看出些端倪:

adoquery1: CommandText does not return a result set
angle097113 2003-11-30
  • 打赏
  • 举报
回复
adoquery1: CommandText does not return a result set
>>>原因是open换成execsql吧

2,498

社区成员

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

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