IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

probleme sql avec delphi


Sujet :

Bases de données Delphi

  1. #1
    Membre confirmé
    Avatar de lil_jam63
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 447
    Points : 600
    Points
    600
    Par défaut probleme sql avec delphi
    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.
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    {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.
    ----------------------------------------------------
    Avant de poster, pensez à utiliser les différents outils à votre disposition:
    Google, la FAQ et le moteur de recherche.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 122
    Points : 81
    Points
    81
    Par défaut
    Salut, rajoute des quotes à la valeur que tu passes dans ta clause WHERE - ne mets pas simplement MonEdit.Text, sinon le moteur SQL ne va pas aimer.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Je crois qu'il faut mettre LIKE et non pas = quand c'est un alphanumerique !

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2002
    Messages : 147
    Points : 144
    Points
    144
    Par défaut quotes
    Effectivement il faut rajouter des quotes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SQL.Add(' WHERE Champ1='''+Edit1.Text+'''');
    Ca doit marcher
    rq: ce sont des simples quotes

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 45
    Points : 31
    Points
    31
    Par défaut
    pour eviter les '''' qui sont illisibles, il existe QuotedStr(s) qui le fait tres bien

  6. #6
    Membre confirmé
    Avatar de lil_jam63
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 447
    Points : 600
    Points
    600
    Par défaut
    alors en utilisant le quotedstr() la requete marche puisque je n'ai pas le message par contre j'ai rien en retour alors que ma table contient bien un article avec ce code. Sinon j'ai essayé avec les quotes aussi mais même tarif
    ----------------------------------------------------
    Avant de poster, pensez à utiliser les différents outils à votre disposition:
    Google, la FAQ et le moteur de recherche.

  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2002
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 16
    Points : 18
    Points
    18
    Par défaut
    Dans ta table ton champs code est de quel type ? (numérique, varchar, ...)

    Tu peux aussi essayer avec like
    where code LIKE '+QuotedStr('%'+Edit2.Text +'%')
    Dans la vie l'important n'est pas d'obtenir tout ce que l'on désire mais de désirer tout ce que l'on obtient

  8. #8
    Membre confirmé
    Avatar de lil_jam63
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 447
    Points : 600
    Points
    600
    Par défaut
    9a marche aussi Epervier, merci
    ----------------------------------------------------
    Avant de poster, pensez à utiliser les différents outils à votre disposition:
    Google, la FAQ et le moteur de recherche.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Petit probleme SQL avec UPDATE
    Par cuisto44000 dans le forum PHP & Base de données
    Réponses: 22
    Dernier message: 09/12/2009, 10h19
  2. sql avec delphi
    Par aouiche dans le forum Bases de données
    Réponses: 2
    Dernier message: 09/08/2009, 11h37
  3. Problem SQL avec Win32::ODBC et access
    Par ripou dans le forum Modules
    Réponses: 2
    Dernier message: 21/09/2006, 13h02
  4. SQL avec Delphi 4
    Par jackrabbit dans le forum Bases de données
    Réponses: 1
    Dernier message: 12/10/2004, 11h05
  5. sql avec delphi
    Par k_boy dans le forum Bases de données
    Réponses: 6
    Dernier message: 27/07/2004, 22h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo