我用ADOQuery控件,查询问题,出现这样的错误。
我的程序;数据库用的是accessADOQuery1.Active:=false;
ADOQuery1.Sql.add('select * from test');
ADOQuery1.ExecuteSql;
ADOQuery1.Active:=true;......
ADOQuery1.Active:=false;
ADOQuery1.Sql.add('update test set id=1 name=2');
ADOQuery1.ExecuteSql;
ADOQuery1.Active:=true;//在第二次好像这句话会出错,错误如下:current provider does not support returning multiple recordset from a single execution;
然后,有弹出异常:
commandtext does not return a result set!这是什么原因,应该怎样改。
谢谢
我的程序;数据库用的是accessADOQuery1.Active:=false;
ADOQuery1.Sql.add('select * from test');
ADOQuery1.ExecuteSql;
ADOQuery1.Active:=true;......
ADOQuery1.Active:=false;
ADOQuery1.Sql.add('update test set id=1 name=2');
ADOQuery1.ExecuteSql;
ADOQuery1.Active:=true;//在第二次好像这句话会出错,错误如下:current provider does not support returning multiple recordset from a single execution;
然后,有弹出异常:
commandtext does not return a result set!这是什么原因,应该怎样改。
谢谢
ADOQuery1.ExecuteSql;
改为
ADOQuery1.open
ADOQuery1.open 返回记录集
ADOQuery1.execsql 不返回记录集.所以 ::
select 时用open.
update 时用execsql改第一个..
用ADOQuery1.open好像也不行难道不能两个都用ExecSQL吗?为什么?
前要加
adoquery1.sql.clear;
ADOQuery1.Close;
AdoQeruy1.Sql.clear;
ADOQuery1.Sql.add('select * from test');
ADOQuery1.Open;......
ADOQuery1.Close;
AdoQuery1.sql.clear;
ADOQuery1.Sql.add('update test set id=1 name=2');
ADOQuery1.ExecuteSql;
.....
呵呵,应该这样就没有问题了
adoquery1.sql.clear;
ADOQuery1.Sql.add('update test set id='+#13+inttostr(1)+#13+' name='+#13+inttostr(2)+#13+'');
ADOQuery1.ExecuteSql;