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)
TemplistTable := TStringList.Create;
dtModule.IBDatabase1.GetFieldNames(nomTable, TemplistTable); |
Pour ensuite les écrires dans un fichiers .sql dans la syntaxe suivante :
en parcourant la liste (TemplistTable: Tstrings)
for j := 0 to nbChamp - 1 do
if j <> nbChamp-1 then
req := req + TempListTable[j] + ','
else
req := req + TempListTable[j]; |
Le problème est que j'ai le résultat suivant :
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 ordonné comme 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(....)
j'espère qu'il y a assez de précision, je remerci ceux qui pourront jeter un coup d'oeil.
++
EDIT : J'ai essayé en renseignant à False la propriété Sorted de ma Liste mais cela n'a rien changé :
TemplistTable := TStringList.Create;
TempListTable.Sorted := False;
dtModule.IBDatabase1.GetFieldNames(nomTable, TemplistTable); |
Message édité par gaar@ le 20-04-2005 à 14:44:14