REQUETE SQL PARAMATREE DE TYPE INTEGER

lolorenzeb Messages postés 71 Date d'inscription lundi 24 mai 2004 Statut Membre Dernière intervention 13 septembre 2006 - 30 déc. 2005 à 03:34
cs_intik Messages postés 33 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 12 septembre 2007 - 27 sept. 2007 à 06:52
Bonjour à tous, mon problème est le suivant :



Je souhaite faire passer un parametre de type integer sous cette forme de concatenation

mais ca ne fonctionne pas --> Types incompatibles : 'String' et 'integer'

Pourtant mon champ num_pat est en integer dans ma table access et mon tableau tabPat egalement.

Je pense que delphi me demande du string car j'utilise le caractere de concatenation +.

Ne connaissant pas tres bien Delphi 7, je ne trouve pas la methode

Merci par avance pour vos éventuelles suggestions.





tabPat : array[1..200] of integer; --> déclarer en Private et rempli dans le FormCreate



Var

ind : integer; --> variable locale a ma procedure



Begin

ind := tabPat[comboPat.ItemIndex];

adoquery.sql.clear

adoquery.sql.add('SELECT num_ordo FROM ordonnance WHERE num_pat = ' + ind + ' ; ');

adoquery.sql.open
A voir également:

6 réponses

edile52 Messages postés 5 Date d'inscription jeudi 29 décembre 2005 Statut Membre Dernière intervention 31 décembre 2005
30 déc. 2005 à 09:42
Bonjour,

Vous devriez essayer la syntaxe suivant le modèle ci-après :
('.... '+ quotedstr(....))

ce qui pourrait donner ceci :

sql.add('SELECT num_ordo FROM ordonnance WHERE num_pat = ' +quotedstr( IntToStr(ind) )+ ' ; ' );
et si celà ne marche pas, voyez aussi à supprimer la concaténation du point virgule : +';' , ce qui devrait donner :

sql.add('SELECT num_ordo FROM ordonnance WHERE num_pat = ' +quotedstr( IntToStr(ind) );
puisque dans la parenthèse du sql.add, il s'agit d'un string et non d'une instruction.

Bon courage !
0
edile52 Messages postés 5 Date d'inscription jeudi 29 décembre 2005 Statut Membre Dernière intervention 31 décembre 2005
30 déc. 2005 à 09:44
Mille excuses,

j'ai par erreur effacé une parenthèse à la fin . Il faut donc cette instruction :

sql.add('SELECT num_ordo FROM ordonnance WHERE num_pat = ' +quotedstr( IntToStr(ind) ));
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
30 déc. 2005 à 21:26
ou plus simplement :

begin
with adoquery.sql do begin
clear;
add(format('SELECT num_ordo FROM ordonnance WHERE num_pat=%d',
[tabPat[comboPat.ItemIndex]]));
open;
end;
end;

<hr size="2" width="100%">La theorie c'est quand on sait tout, mais que rien ne fonctionne.
La pratique c'est quand tout fonctionne, mais que personne ne sait pourquoi.
<hr>
0
edile52 Messages postés 5 Date d'inscription jeudi 29 décembre 2005 Statut Membre Dernière intervention 31 décembre 2005
31 déc. 2005 à 09:41
Merci FOXI de me rappeler cette façon de rédiger l'instruction, effectivement plus directe.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
31 déc. 2005 à 21:49
de rien ... tu verras vite, si tu viens souvent, que je suis un trés grand utilisateur de la fonction Format (qui a mon sens est la meilleure des fonctions de convertions vers chaine de caractere, egalement la plus rapide)

<hr size="2" width="100%">La theorie c'est quand on sait tout, mais que rien ne fonctionne.
La pratique c'est quand tout fonctionne, mais que personne ne sait pourquoi.
<hr>
0
cs_intik Messages postés 33 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 12 septembre 2007
27 sept. 2007 à 06:52
Edite52

1000000000000000 merci loool

tu sais pas comme tu me sauve avec ton quotedstr lol foutu focntion lol :p

merci merci pour ce joli post merci a tout et aussi à lolorenzeb ki sans lui yauré pas se post

merci a foxi aussi
0
Rejoignez-nous