我使用此代码将行从表1复制到表2,但它给了我
命令文本不返回结果集

 ADOQuery1.Close;
 ADOQuery1.SQL.Clear;
 ADOQuery1.SQL.Add('insert into Table1');
 ADOQuery1.SQL.Add('select Field1 ,Field2 from Table2');
 ADOQuery1.SQL.Add('where ArtNo= 1');
 ADOQuery1.Open;
 ADOQuery1.Refresh ;

如果我不使用
 ADOQuery1.Open;

它给了我
AdoQuery1:无法对已关闭的数据集执行此操作。
它只复制我想要的一次。如何复制多次?谢谢您。

最佳答案

对于不打开游标的脚本(如insert、update或exec),请使用tadoquery的execsql方法。
它返回一个整数,表示查询所影响的行数。

ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('insert into Table1');
ADOQuery1.SQL.Add('select Field1 ,Field2 from Table2');
ADOQuery1.SQL.Add('where ArtNo= 1');
NumRows := ADOQuery1.ExecSQL;
ShowMessageFmt('Affected rows on Table2: %d', [NumRows]);

关于database - TADOQuery.Open执行一条语句,但仅执行一次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4139633/

10-12 12:30