我使用此代码将行从Table1复制到Table2,但它给了我
命令文本不返回结果集
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:无法对已关闭的数据集执行此操作。
它复制我想要的但只复制一次。如何复制多次?谢谢。
答案 0 :(得分:8)
对于不打开游标的脚本(如insert,update或exec),请使用TADOQuery的ExecSQL方法。
它返回一个Integer,表示查询中受影响的行数。
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]);