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 :

[Delphi 6] [ADO]


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 192
    Par défaut [Delphi 6] [ADO]
    Bonjour,

    J'ai un problème avec une requête, je suis peut être aveugle mais là je ne vois pas du tout d'où vient le problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    recherche_etu.SQL.Clear;
    recherche_etu.SQL.Add('SELECT distinct ETU_nom, ETU_prenom');
    recherche_etu.SQL.Add('FROM etudiant');
    recherche_etu.SQL.Add('WHERE ETU_nom like'''+nom_etu.Text+'%''');
    recherche_etu.SQL.Add('ORDER BY ETU_nom');
    recherche_etu.Open;
    En exécutant pas à pas, j'ai une erreur à la dernière ligne (recherche_etu.Open :

    Le projet a provoqué une classe d'exception EDatabaseError avec le message 'recherche_etu: Champ 'nom' non trouvé'.
    En fait, 'nom' c'est l'ancien nom du champ 'ETU_nom'.
    Je l'ai bien modifié correctement dans la base, je vois pas comment ca peut le géner dans le code...

    ps : lorsque j'exécute cette requête dans mon analyseur de requêtes de SQL Server, elle marche sans problème...

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Déjà vérifie que tu te connectes à la bonne base de données (on sait jamais).

    Puis rajoutes un Recherche_etu.close, on sait jamais autant il prend en priorité ce que tu as en compte dans le SQL du composant.

    Est ce que tu lies, avec un datasource, une grille ou autres composants ?
    Si oui, vérifie que tu as bien changer le champs 'Nom' en champs 'Etu_nom'.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 192
    Par défaut
    Je la connecte à la bonne base.
    J'ai plusieurs requêtes dans mon appli, j'ai changé les noms de tous les champs de ma base et c'est la seule requête qui me pose problème.

    Le Close, je le fais plus loin dans mon instruction.

    Et je n'utilise pas de composants qui sont liés directement à la requête.

  4. #4
    Membre extrêmement actif
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 219
    Par défaut
    bonjour,

    recherche_etu c'est bien un Dataset ? Tu n'aurais pas ajouter les champs de la base de données lorsuq'il s'appellait nom et il serait toujours connu comme cela ?

    @++
    Dany

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 192
    Par défaut
    recherche_etu est un ADOQuery

  6. #6
    Membre expérimenté
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Juin 2002
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte de système d’information
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 177
    Par défaut
    Salut,

    si t'as fait un copier coller de ta requete t'as peut etre un souci ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    recherche_etu.SQL.Add('WHERE ETU_nom like'''+nom_etu.Text+'%''');
    je ne vois pas d'espace entre le LIKE et le critère de recherche, il faudrait plutot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    recherche_etu.SQL.Add('WHERE ETU_nom like '''+nom_etu.Text+'%''');
    peut etre cela

    a+
    [/code]

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 192
    Par défaut
    Ca ne change rien

    Pour simplifier les choses, j'ai limité ma requête à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    recherche_etu.SQL.Clear;
    recherche_etu.SQL.Add('SELECT distinct ETU_nom, ETU_prenom FROM etudiant');
    recherche_etu.Open;
    Toujours l'erreur au niveau du open

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 192
    Par défaut
    Même en écrivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    recherche_etu.SQL.Clear; 
    recherche_etu.SQL.Add('SELECT ETU_prenom FROM etudiant'); 
    recherche_etu.Open;
    J'ai une erreur avec ce de champ 'nom'

  9. #9
    Membre extrêmement actif
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 219
    Par défaut
    Citation Envoyé par KrusK
    recherche_etu est un ADOQuery
    même dans un ADO Query on peut ajouter les champs de la requète.Si tu change la requète en conception, les champs restent, mais lorsque tu ouvre, ils ne trouve pas la correspondance, d'où ce genre de message. Pour être sûr, double-clic sur ton adoquery et regarde si la liste est vide ou si elle contien bien les bons nom de zones.
    Il peut y avoir aussi le même phénomène avec les DBGrid par exemple, mais je crois que tu as dit ne pas en avoir utiliser.

    @++
    Dany

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 192
    Par défaut
    Citation Envoyé par skywaukers
    même dans un ADO Query on peut ajouter les champs de la requète.Si tu change la requète en conception, les champs restent, mais lorsque tu ouvre, ils ne trouve pas la correspondance, d'où ce genre de message. Pour être sûr, double-clic sur ton adoquery et regarde si la liste est vide ou si elle contien bien les bons nom de zones.
    Ah oui tiens, je n'avais jamais remarqué cela.
    Le problème venait bien de là, merci ca m'enlève une belle épine du pied

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 22/12/2008, 11h36
  2. Delphi 5 ADO chaine de connexion SQLite3
    Par benjyyyyy dans le forum Bases de données
    Réponses: 0
    Dernier message: 12/06/2008, 12h02
  3. Delphi 6 - ADO introuvable
    Par repié dans le forum Bases de données
    Réponses: 4
    Dernier message: 28/09/2006, 15h41
  4. Delphi et ADO
    Par mmm dans le forum Bases de données
    Réponses: 2
    Dernier message: 24/08/2004, 16h46
  5. [DELPHI 5] [ADO] [ORACLE 8i] Getfieldnames + Blob....
    Par tpetitpi dans le forum Bases de données
    Réponses: 4
    Dernier message: 26/03/2004, 15h35

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