Bonjour,
Je suis sous Delphi 7 et j'utilise INTERBASE 6.
je récupère les noms des champs d'une table dans une liste (TemplistTable: Tstrings)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 TemplistTable := TStringList.Create; dtModule.IBDatabase1.GetFieldNames(nomTable, TemplistTable);
Pour ensuite les écrires dans un fichiers .sql dans la syntaxe suivante :
INSERT INTO 'TABLE'(champ1,champ2,...,champn)
VALUES(val1,val2...,valn)
en parcourant la liste (TemplistTable: Tstrings) (il doit exister une fonction Separate ? )
Le problème est que j'ai le résultat suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for j := 0 to nbChamp - 1 do if j <> nbChamp-1 then req := req + TempListTable[j] + ',' else req := req + TempListTable[j];
INSERT INTO PRESTA_COMPO( PRST_CODEPC,PRST_NOLIGNE,PRST_QTE,TRF_CODEREF)
VALUES(....)
Les champs de la table sont classé par ordre alphabétique et non tels qui sont ordonnés dans la table (ce qui peut être assez génant dans une requête INSERT INTO), il faudrait donc :
INSERT INTO PRESTA_COMPO( PRST_NOLIGNE,PRST_QTE,TRF_CODEREF,PRST_CODEPC)
VALUES(....)
Sinon j'ai un autre soucis, j'aimerais récupérer les valeurs de chaque enregistrement de la table pour les insérer dans la seconde ligne :
VALUES(val1,val2...valn)
J'ai commencer à taper la requête mais je sais pas si je vais vers la bonne solution...?
en bref pour chaque enregistrement je dois retrouver une ligne type:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 with dtModule.IBQuery1 do begin SQL.Close; SQL.Clear; SQL.Add('Select * from ' + nomTable); Prepared := true; Open; SQL.Clear; end;
INSERT INTO 'TABLE'(champ1,champ2,...,champn)
VALUES(val1,val2...,valn)
merci à vous
Partager