Bjr
j'ai un probleme avec une requete SQL qui utilise un nombre de parametre indetermine
voici le debut du code ou je recupere tout les enregistrement selectionner ds le BdGrid
Liste_MMSI_Selection:=TStringList.Create();
for i:=0 to DBGrid2.SelectedRows.Count -1 do
begin
DBGrid2.DataSource.DataSet.GotoBookmark(pointer(DBGrid2.SelectedRows.items[i]));
Liste_MMSI_Selection.Add(Trim(DBGrid2.DataSource.DataSet.Fields[0].AsString));
end;
ensuite avec ces champs qui sont stocke ds un Tstringlist je veut parametrer ma requete
voici le code
i:=0;
Query2.SQL.Add('SELECT * FROM BATEAU WHERE ( ');
while i < Liste_MMSI_Selection.Count Do //ajout de toutesles conditions pour la clause where
begin
Query2.SQL.Add('(BATEAU.MMSI = :Liste_MMSI_Selection.Strings[i])');
Query2.ParamByName('Liste_MMSI_Selection.Strings[i]').AsString :=Liste_MMSI_Selection.Strings[i];
inc(i);
if i < Liste_MMSI_Selection.Count then
begin
Query2.SQL.Add(' or ');
end;
end;
Query2.SQL.Add(' )'); //ferme la requete
Query2.Open();
seulement voila tout ce compile bien donc pas erreur de syntaxe (quasi sur) mais le resultat de la requete il ne tient que du dernier enregistrement selectioner donc dernier params . voila si on peut m'aider ce serai cool merci .
Partager