Sql delphi

cs_Kruger Messages postés 68 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 4 octobre 2004 - 20 févr. 2004 à 04:56
cs_Kruger Messages postés 68 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 4 octobre 2004 - 25 févr. 2004 à 21:49
Salut, j'ai un probleme depuis maintenant quelques jours que j'arrive pas à résoudre, voilà, quand je fais une requete SELECT xxx FROM yyy WHERE zzz avec un "zzz" numerique, tout va bien par contre quand le "zzz" est alphanumerique, la requete plante, voilà le code en cause, si qqn peut me venir en aide.

{Initialisation des variables de connection à la base de donnée}

user:='root';
pwd:='';
host:='127.0.0.1';
port:=3306;

{Initialisation de la connection base de donnée}

MySQL := mysql_init(nil);
mysql_options(mysql,MYSQL_OPT_COMPRESS,nil);

{Connection base de donnée}

if mysql_real_connect(mysql, pChar(host), pChar(user), pChar(pwd), nil, port, nil, 0)= nil then showmessage('Connection impossible');

{Selection de la base de donnée}

if mysql_select_db(mysql, pChar(dbname))<>0 then showmessage('Selection base impossible') ;

{Controle remplissage combo}

if combobox1.Text = '' then
begin
showmessage('Spécifier le mode de recherche!');
end;

{Requete de recherche}

try
if ComboBox1.Text='Code rayon' then
  begin
  if mysql_query(mysql, pChar('SELECT * FROM '+table+' WHERE code = '+Edit2.Text ))<>0 then
    ShowMessage('requête selection plantée');
  resultat:=mysql_use_result(MySQL);
  row := mysql_fetch_row(Resultat);

  {Remplissage des cellules avec les données}

  for i := 1 to 6 do
    begin
    StringGrid1.Cells[i,1]:= row[i];
    end;

  {Affichage du nombre d'article en stock}

  if mysql_query(mysql, pChar('SELECT COUNT(*) FROM '+table+' WHERE code = '+Edit2.Text )) <> 0 then showmessage('requete compteur plantée');
  article:=mysql_use_result(MySQL);
  nombre := mysql_fetch_row(article);
  Edit1.Text := nombre[0];
  end



Donc je résume, si le contenu de mon Edit2.text est numerique "123559" tout fonctionne par contre quand c'est de l'alphanumerique "SZOF5547", ça plante.
Au fait, j'ai delphi 7 personnel et je gère ma partie sql avec mysql.pas et la librairie officielle libmysql.dll.

Merci de votre aide.
--==[Kruger]==--

7 réponses

TheShAmAn Messages postés 148 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 1 février 2006
20 févr. 2004 à 10:26
Baaah au niveau de ta base de donnée...

'SELECT * FROM '+table+' WHERE code = '+Edit2.Text 


=> "Code" est défini comment???
S'il est défini en tant que numérique, c normal ke ca plante!!!

Tu vois ce ke je veux dire???

Code(Numérique) = String |=> C impossible ;)
0
cs_Kruger Messages postés 68 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 4 octobre 2004
20 févr. 2004 à 11:03
Je vois ce que tu veux dire mais justement mon champ code est défini en temps que VARCHAR dans ma base, merci de ta reponse

--==[Kruger]==--
0
TheShAmAn Messages postés 148 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 1 février 2006
20 févr. 2004 à 11:46
Bah essai avec ca:

('SELECT * FROM '+table+' WHERE code = ''' + Edit2.Text + ''' ')

ce ce sont ke des ' ... ok?? moi c ce ke je met pr mais requete avec D string ;)
0
cs_Kruger Messages postés 68 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 4 octobre 2004
20 févr. 2004 à 20:39
Toujours pas, la requete plante encore, :sad)

--==[Kruger]==--
0

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

Posez votre question
cs_Kruger Messages postés 68 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 4 octobre 2004
22 févr. 2004 à 21:24
Personne peut m'aider, je sais vraiment pas quoi faire, j'ai essayé tout ce que je savais!

--==[Kruger]==--
0
cs_Kruger Messages postés 68 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 4 octobre 2004
24 févr. 2004 à 10:59
Personne peut me venir en aide, j'ai vraiment essayé tout ce que je savais et je vois pas pourquoi ça merde

--==[Kruger]==--
0
cs_Kruger Messages postés 68 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 4 octobre 2004
25 févr. 2004 à 21:49
Bon, alors à force de perseverence, j'ai résolu mon probleme, il fallais mettre:

mysql_query(mysql, pChar('SELECT * FROM '+table+' WHERE code = '+quotedstr(Edit2.Text) ))

--==[Kruger]==--
0
Rejoignez-nous