Requete parametrée TADOQuery
J'ai repris un ancien post (17/11/2002) et cela m'a permit d'initialiser ma première requète paramétrée. Mais je bute sur une erreur :
EOLeException 'Erreur de synthxe(operateur absent) dans l'expression 'vente.IdProd = ? P1'
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| procedure TFtest.Button1Click(Sender: TObject);
var q, r : string;
begin
list.Items.Clear;
with TADOQuery.Create(self) do
try //finally
ConnectionString:='Provider=Microsoft.jet.OLEDB.4.0; Data source='+'C:\Documents and Settings\Propriétaire\Mes documents\_Delphi\Stocks\gestion_stock.mdb'+';';
sql.add('Select vente.IdProd, Sum(vente.nombre) as SNbvendu FROM vente ');
sql.Add('GROUP BY vente.IdProd');
sql.Add('HAVING vente.IdProd = : P1');
q:=edit1.Text;
parameters[0].Value := StrToInt(edit1.Text);
r:=parameters[0].Value;
try // except
open;
if not isEmpty then begin
list.Items.Add('Article : '+ Fields[0].AsString +' max = '+ Fields[1].AsString);
end; // Not isEmpty
except
raise;
end;
finally
free;
end;
end; |
q & r sont là comme témoins
et sans la ligne 'sql.add('HAVING.....)
list.items me retourne le premier enregistrement de la requète.
Qui peut me suggérer la correction de synthaxe.
Marcel