这段代码的错误是什么?怎么改?
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 executionadoquery1: CommandText does not return a result set怎么改?

解决方案 »

  1.   

    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;
    你的问题是参数未附值!
      

  2.   

    adoquery1: CommandText does not return a result set
    >>>原因是open换成execsql吧
      

  3.   

    同意[angle097113(深思不解)]的观点:对数据表的插入、删除和修改操作不会返回一个记录集,而ADOQuery控件常常用来返回一个记录集,所以,此类操作一般用ExecSQL或ADOConnection.Execute(sql)等方法来完成。从此可看出些端倪:adoquery1: CommandText does not return a result set
      

  4.   

    附值:
    parambyname('bid').value:=edit1.text;
    parambyname('bname').value:=edit2.text;
      

  5.   

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

  6.   

    这个bid,bname在这里的含义是什么?
      

  7.   

    同意,angle097113(深思不解)。或用ADOCommand来做,结帖吧!
      

  8.   

    该问题以解决,首先把sql语句赋给一个字符串值就可以。谢谢各位