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 :

Requête sql avec mysql sous delphi


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de colfire_dev
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Novembre 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Novembre 2007
    Messages : 244
    Par défaut Requête sql avec mysql sous delphi
    je voudrais faire une recherche multicritere sur une table personne, un peu à la google:
    l'utilisateur saisie via des Edit et ComboBox, ces derniers sont insérés ds la requete.
    j'ai commencé par faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    with dm.tbPersonne do
      begin
        Close;
        SQL.Clear;
        SQL.Add('Select * from personne');
        SQL.Add('where nom LIKE ''' + eNom.Text + Opr1 + '''');
        SQL.Add('service LIKE ''' + cbService.Text + '''');
        SQL.Add('matricule LIKE ''' + eMatricule.Text + '''');
        SQL.Add('fonction LIKE ''' + cbFonction.Text + '''');
        SQL.Add('order by nom');
        Open;
      end;
    mais élas c genere une erreur de syntaxe que je n'arrive pas à détécter

  2. #2
    Membre confirmé Avatar de colfire_dev
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Novembre 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Novembre 2007
    Messages : 244
    Par défaut
    Voilà la procedure en entier pour mieux comprendre.

    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
    procedure TfMenu.bGoClick(Sender: TObject);
    var Opr1, Opr2, Opr3, Opr4, Opr5, Opr6, Opr7 : String;
    begin
      if eNom.Text = '' then Opr1 := 'OR'
                        else Opr1 := 'AND';
      if cbService.Text = '' then Opr2 := 'OR'
                             else Opr2 := 'AND';
      if cbFonction.Text = '' then Opr3 := 'OR'
                              else Opr3 := 'AND';
      if ecin.Text = '' then Opr4 := 'OR'
                         else Opr4 := 'AND';
      if eEtat.Text = '' then Opr5 := 'OR'
                         else Opr5 := 'AND';
      if eType.Text = '' then Opr6 := 'OR'
                         else Opr6 := 'AND';
      if eMatricule.Text = '' then Opr7 := 'OR'
                              else Opr7 := 'AND';
      with dm.tbPersonne do
      begin
        Close;
        SQL.Clear;
        SQL.Add('Select * from personne');
        SQL.Add('where nom LIKE ''' + eNom.Text + Opr1 + '''');
        SQL.Add('service LIKE ''' + cbService.Text + Opr2 + '''');
        SQL.Add('matricule LIKE ''' + eMatricule.Text + Opr7 +'''');
        SQL.Add('fonction LIKE ''' + cbFonction.Text + Opr3 +'''');
        SQL.Add('order by nom');
        Open;
      end;
    end;

  3. #3
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 932
    Par défaut
    L'opérateur ne doit pas être dans la chaine recherchée....

    En plus, la recherche par LIKE induit au moins un caractère %

  4. #4
    Membre confirmé Avatar de colfire_dev
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Novembre 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Novembre 2007
    Messages : 244
    Par défaut
    je suis carrement bloque, vous avez une suggetion?

  5. #5
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Salut,

    Moi je verrai plus un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SQL.Add('Select * from personne');
    SQL.Add('where nom LIKE "%'+ eNom.Text+'%"');
    SQL.Add(Opr1+'service LIKE "%'+ cbService.Text+'%"');
    SQL.Add(Opr2+'matricule LIKE "%'+ eMatricule.Text+'%"');
    SQL.Add(Opr7+'fonction LIKE "%'+ cbFonction.Text+'%"');
    SQL.Add(Opr3+'order by nom');
    Et un truc me chagrine, c'était la fonction LIKE ... en effet, comme le dit qi130, il doit y avoir un % ....


    Essaie de voir avec le code que je t'ai fourni (pas testé du tout ...)
    A+

  6. #6
    Membre confirmé Avatar de colfire_dev
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Novembre 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Novembre 2007
    Messages : 244
    Par défaut
    ca genere une erreur de syntaxe, au niveau du order by

  7. #7
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SQL.Add('Select * from personne');
    SQL.Add('where nom LIKE "%'+ eNom.Text+'%"');
    SQL.Add(Opr1+'service LIKE "%'+ cbService.Text+'%"');
    SQL.Add(Opr2+'matricule LIKE "%'+ eMatricule.Text+'%"');
    SQL.Add(Opr7+'fonction LIKE "%'+ cbFonction.Text+'%"');
    SQL.Add('order by nom');
    Il n'y a pas d'opérateur avant un order by ...
    A+

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

Discussions similaires

  1. fatal error -2147467259 lors d'une requête SQL avec Mysql
    Par Spartanjohn dans le forum ADO.NET
    Réponses: 2
    Dernier message: 18/03/2013, 17h23
  2. Requête SQL avec paramètre sous visual studio 2008
    Par Jeecer dans le forum Accès aux données
    Réponses: 3
    Dernier message: 21/08/2011, 10h18
  3. Lancer une requête sql avec sql plus sous dos
    Par feragne dans le forum Sql*Plus
    Réponses: 12
    Dernier message: 15/10/2008, 14h49
  4. [vista,VB 2005,SQL server 2005]requêtes paramétrées avec mysql
    Par olivier57b dans le forum Accès aux données
    Réponses: 4
    Dernier message: 04/09/2008, 18h58
  5. Requête SQL avec création de table sous condition
    Par misig dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 04/11/2007, 08h58

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