[Delphi + Sql]Les champs dans une liste

Les champs dans une liste [Delphi + Sql] - Delphi/Pascal - Programmation

Marsh Posté le 20-04-2005 à 08:36:01    

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
Reply

Marsh Posté le 20-04-2005 à 08:36:01   

Reply

Marsh Posté le 20-04-2005 à 16:17:42    

Citation :

Les champs de la table sont classé par ordre alphabétique et non ordonné comme dans la table


 
j'ai trouvé ça qui semble fonctionner :
 

with dtModule.IBQuery1 do
begin  
  SQL.Clear;
  SQL.Add('Select * from ' + nomTable);
  Prepared := true;
  Open;
 
begin
  for i := 0 to FieldCount - 1 do
    TempListTable.Add(Fields[i].DisplayName);
  end;
end;


Message édité par gaar@ le 20-04-2005 à 16:20:06
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed