我使用此代码将行从表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/