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

Langage SQL Discussion :

nom de champ incorrect!


Sujet :

Langage SQL

  1. #1
    Membre régulier Avatar de souminet
    Inscrit en
    Novembre 2006
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 351
    Points : 111
    Points
    111
    Par défaut nom de champ incorrect!
    bonjour;
    C'est encore le même problème et je ne trouve de solution chez personne,

    Pour toute requête que j'utiliser à travers un Tquery, sur une table de type DBASE IV, (Delphi7) , lorsque je mets la propriété active à true, s'affiche le message: NOM DE CHAMPS INCORRECT ERREUR BDE Code: 10038

    voilà la requete la plus simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM Personnel.DBF
    WHERE Personnel.DEPT =SIG
    Je m'arrache les cheuveux, à tout vérifier, mais tout semble normal, plus de 1000 fois j'ai revérifié les nom de champs , et plus de 100 fois j'ai changer de type de requêtes, comme éssai mais toujours le me^me satané message d'erreur????????
    SVP SVP SVP j'ai vraiment besoin d'aide, c vital, c pour un boulot

  2. #2
    rsc
    rsc est déconnecté
    Membre éprouvé
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Points : 918
    Points
    918
    Par défaut
    C'est quoi, SIG ?

  3. #3
    Membre régulier Avatar de souminet
    Inscrit en
    Novembre 2006
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 351
    Points : 111
    Points
    111
    Par défaut
    SIG c'est la condition, c'est une chaine de caractère

  4. #4
    rsc
    rsc est déconnecté
    Membre éprouvé
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Points : 918
    Points
    918
    Par défaut
    Si c'est une chaîne, il faut la mettre entre apostrophes, et le nom de ta table entre guillemets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM "Personnel.DBF"
    WHERE DEPT = 'SIG'

  5. #5
    Membre régulier Avatar de souminet
    Inscrit en
    Novembre 2006
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 351
    Points : 111
    Points
    111
    Par défaut
    alors quand j'écris mon code je devrais l'écrire comme ça?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Query1.SQL.Clear;
    Query1.SQL.Add(SELECT * FROM "Personnel.DBF" WHERE Personnel.DEPT='SIG');
    Oui mais là, il ne se compile même pas (il m'affiche ) attendu mais ' trouvé) certainement un pbm avec les guillements non????)
    alors comment y remerdier stp

  6. #6
    rsc
    rsc est déconnecté
    Membre éprouvé
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Points : 918
    Points
    918
    Par défaut
    Effectivement, il y a un pb de guillemets, mais là cça relève de Delphi, et plus du SQL
    NB : Il n'y a pas de besoin de qualificateur au champ, puisqu'il n'y a qu'une seule table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Query1.SQL.Clear;
    Query1.SQL.Add('SELECT * FROM "Personnel.DBF" WHERE DEPT=''SIG''');
    sinon in faudrait écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Query1.SQL.Clear;
    Query1.SQL.Add('SELECT * FROM "Personnel.DBF" Personne1 WHERE Personne1.DEPT=''SIG''');

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 849
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 849
    Points : 52 978
    Points
    52 978
    Billets dans le blog
    6
    Par défaut
    Commencez par EVITER LE SELECT * c'est cela qui vous cause des problèmes, car vous ne savez pas quelles sont les colonnes retournées.

    Or il y a fatalement comme le message d'erreur l'indiquen une colonne dont le nom est INTERDIT !

    A +

  8. #8
    Membre régulier Avatar de souminet
    Inscrit en
    Novembre 2006
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 351
    Points : 111
    Points
    111
    Par défaut
    Oui ça a marché, c'est bon!!! Merci

    Mais le problème est que je n'ai utilisé cette requête que pur effectuer un essai sur les noms de champs, maintenant je voudrais implémenter une requête d'insertion, depuis la table TempAbs.DBF vers ArchAbs.DBF (ayant la même structure biensur)

    ma reqûete est la suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO ArchAbs.DBF (NUM,  MATRICULE, PUCE, NOM, PRENOM, FONCTION, DEPT,  DATES )
    SELECT NUM,  MATRICULE, PUCE, NOM, PRENOM, FONCTION, DEPT,  DATES 
    FROM TempAbs.DBF
    mais le message d'erreur suivant s'affiche:
    Erreur à la création du handle de curseur

    Merci de m'aider SVP SVP SVP SVP SVP

  9. #9
    rsc
    rsc est déconnecté
    Membre éprouvé
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Points : 918
    Points
    918
    Par défaut
    Au risque de me répéter, on met les noms des tables Paradox ou DBase entre guillemets

  10. #10
    Membre régulier Avatar de souminet
    Inscrit en
    Novembre 2006
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 351
    Points : 111
    Points
    111
    Par défaut
    Citation Envoyé par rsc Voir le message
    Au risque de me répéter, on met les noms des tables Paradox ou DBase entre guillemets
    Oui, Oui les guillments sont écrits à mon niveau, j'ai juste oublié de les reprendre sur le forum!!!!

    Et c'est le même message d'erreur: Erreur à la création du handle de curseur

  11. #11
    Membre régulier Avatar de souminet
    Inscrit en
    Novembre 2006
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 351
    Points : 111
    Points
    111
    Par défaut
    Rebonjour,

    A titre d'information je précise que le problème à été dtecté au niveau du code:

    il fallait utilisier le : Tquery.ExecSQL au lieu du Tquery.Active

  12. #12
    rsc
    rsc est déconnecté
    Membre éprouvé
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Points : 918
    Points
    918
    Par défaut
    Ah oui bien sûr On utilise (dans Delphi) Open (ou Active := True, qui est la même chose) pour les requêtes qui recherchent (et renvoient) des données (SELECT), ExecSql pour les requêtes qui modifient les données (INSERT, UPDATE, DELETE).
    Mais bien sûr, tout cela ne relève plus du langage SQL

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

Discussions similaires

  1. Nom de champs incorrect
    Par souminet dans le forum Bases de données
    Réponses: 1
    Dernier message: 28/01/2008, 08h33
  2. [A2003] - [CreateControl] - Nom de champ incorrect
    Par DeFCrew dans le forum Access
    Réponses: 2
    Dernier message: 07/09/2006, 10h34
  3. comment recuperer le nom des champs ?????
    Par e11137 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 09/01/2004, 10h00
  4. Nom du champs auto-incrementé
    Par norroy dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/06/2003, 18h30
  5. Récupération des noms de champs d'une table
    Par Battomura dans le forum SQL
    Réponses: 2
    Dernier message: 24/03/2003, 10h00

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