Bonjour!
Je viens vers vous parce que j'ai un problème assez étrange sur DELPHI 10
en effet, je dois faire en sorte de remplir une TDBGRID en fonction du texte de trois Edit(qui sont ici mis en paramètres)
J'ai réussi à comprendre comment marchais le fonctionnement des paramètres(enfin je crois, non parce que il ne me met plus de erreur XSQLDA donc peut être que...)
Bref, quand j'ai enregistré ma requête SQL dans le code de Delphi, j'ai eu l'erreur Unknown Column sur "U" et quand je met la ligne avec "U" en commentaire il me met l'erreur sur C,
Ce que j'ai du mal à comprendre car c'est un champ et non une colonne, même avec un like a la place du = il persiste à croire que c'est une colonne.
De plus:
La même requête marche sur Firebird parfaitement
La requête(avec les champs à la place des paramètres, depuis j'ai changé pour la même requête que vous voyez dans le code) marche parfaitement via l'inspecteur d'objet et l'affiche dans la TDBGRID
Voila le code(IBQuery1 étant... Bah le Query):
J'ai quelque hypothèse selon quoi "" n'est pas reconnu comme une quote par Delphi mais je ne vois vraiment pas par quoi le remplacer...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 IBQuery1.SQL.Clear; IBQuery1.Params.Clear; IBQuery1.Params.CreateParam(FtString,'paramNm',ptUnknown); IBQuery1.Params.CreateParam(FtString,'paramRef',ptUnknown); IBQuery1.Params.CreateParam(FtString,'paramLibel',ptUnknown); IBQuery1.SQL.Add('select REFXART,LIBXART,ARC1.QTEXARC AS DIMUNIT, ARC2.QTEXARC AS QTECDT'); IBQuery1.SQL.Add('from ARTXRES, ARCXRES as ARC1, ARCXRES as ARC2'); IBQuery1.SQL.Add('where ARTXRES.ARTXRES=ARC1.ART_ARC'); IBQuery1.SQL.Add('and ARTXRES.ARTXRES=ARC2.ART_ARC'); IBQuery1.SQL.Add('and ARC1.TYPXARC = "U"'); IBQuery1.SQL.Add('and ARC2.TYPXARC = "C"'); IBQuery1.SQL.Add('and DEPXART like "%:paramNm%"'); IBQuery1.SQL.Add('and REFXART like "%:paramRef%"'); IBQuery1.SQL.Add('and LIBXART like "%:paramLibel%"'); IBQuery1.ParamByName('paramNm').AsString:=nmDeposant.Text; IBQuery1.ParamByName('paramRef').AsString:=refArticles.Text; IBQuery1.ParamByName('paramLibel').AsString:=libelArticles.Text; IBQuery1.Open; IBQuery1.Close;
Merci de vos futurs réponses
Kneukar
Partager