2010-11-09 31 views
2

j'utiliser ce code pour copier la ligne de tableau 1 à Tableau2, mais il me donneTADOQuery.Open exécute une instruction, mais une seule fois

commande texte ne renvoie pas un jeu de résultats

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 ; 

Si je ne me

ADOQuery1.Open; 

il me donne

ADOQuery1: impossible d'effectuer cette opération sur un ensemble de données fermé.

Il copie ce que je veux mais seulement une fois. Comment copier plusieurs fois? Je vous remercie.

Répondre

8

Pour les scripts qui n'ouvrent pas de curseur (comme insert, update ou exec), utilisez la méthode ExecSQL de TADOQuery.

Renvoie un entier représentant le nombre de lignes affectées par votre requête.

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]);