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

SQL Firebird Discussion :

probleme avec les nom de champ dans un simple SELECT


Sujet :

SQL Firebird

  1. #1
    Membre chevronné

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    599
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 599
    Points : 2 026
    Points
    2 026
    Par défaut probleme avec les nom de champ dans un simple SELECT
    Bonjour,

    Sur toutes les bases créé avec le scénario ci-dessous, je peux, sans problème faire un :

    SELECT * FROM MATABLE

    mais si je tente un

    SELECT libelle FROM MATABLE

    j'ai droit à une erreur (-206) Column unknow LIBELLE.
    Même punition si je tente un
    SELECT * FROM MATABLE ORDER BY libelle

    il va sans dire que le champ libelle existe.

    Le pb viens certainement de l'outil que j'utilise : IBAccess.
    Je ne tiens pas particulièrement à cette outil, qui est d'une ergonomie douteuse, mais qui a le mérite de savoir tout faire.

    Simplement, j'aimerais bien comprendre.
    Se soupsonne un pb de droit, mais je ne vois pas trop comment y remédier.

    J'ai fais l'essai en repartant de rien, avec Firebird 1.5 et IBAccess, je crée une base, puis une table avec 2 champs, "code" et "libelle" (un entier non null et un varchar(40)) et je saisie quelques enregistrement.
    Je tente mes select et paf !

    Quelqu'un a une idée ?
    --
    vanquish

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2003
    Messages : 147
    Points : 109
    Points
    109
    Par défaut
    Error Code 206 correspond généralement à une colonne inexistante. Essaye avec Libelle en majuscule (normalement cela ne change rien mais je ne connais pas IBAcces).
    Les deux mots les plus brefs et les plus anciens, oui et non, sont ceux qui exigent le plus de réflexion. "Pythagore"

  3. #3
    Membre chevronné

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    599
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 599
    Points : 2 026
    Points
    2 026
    Par défaut
    J'ai essayé majuscule/minuscule.
    Et le pb du SELECT existe quelque soit le client.

    D'habitude j'utilise un outil de script maison qui permet aux clients de patcher leur base de façon simple.
    Mais comme il s'agit là d'un tout petit rojet perso, j'ai voulu définir ma base "à la main".

    A noté que je suis passé à Marathon et que j'ai créé ma base et que je n'ai plus de pb.

    Mais que peut bien faire IBAccess pour provoquer un tel pb.
    J'ai tenté un gfix qui ne signale rien. Un mend suivi d'un backup/restore
    Visiblement la base n'est pas cassée.

    Comme je le disais j'aimerais bien comprendre ce qui ce passe, car si un jour ce genre de gag m'arrive chez un client, je serais dans une belle panade. Mais je ne suis pas bloqué.
    --
    vanquish

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 192
    Points : 160
    Points
    160
    Par défaut
    Ayant suivi des cours de base de données en IUT l'année dernière, je ne suis pas sûr que l'on peut mettre le champ de la table (ici libellé) en paramètre derrière ton SELECT. Bien sûr je peux me tromper.

  5. #5
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    La reponse est toute simple et est du à l'application des normes SQL des noms.

    Vous avez déclaré non pas une colonne LIBELLE ou libelle ou Libelle (qui reviendrait à la même chose) mais vous avez déclarez une colonne "libelle".
    Quand on utilise les doubles cotes les noms ne sont pas transformés.

    Donc si vous voulez faire référence à votre colonne il faut continuer à utiliser les doubles cotes (à moins que votre nom ait été écrit entièrement en majuscule, dans ce cas les double cotes ne sont pas obligatoires)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select "libelle" from matable order by "libelle";
    Il en est de même pour tous les noms des objets de votre base (tables, vues, etc)

    de même que "Libelle" sera une colonne différente de "libelle" ou "LIBELLE".

    Bref les doubles cotes c'est bien pour faire jolie, avoir des noms respectant les majuscules/minuscules voir même les accents. Mais attention leurs utilisations devient plus périeuse et peut poser des problemes.

    Mois j'utilise IBExpert qui automatiquement créé les nom en majuscule.

  6. #6
    Membre chevronné

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    599
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 599
    Points : 2 026
    Points
    2 026
    Par défaut
    Merci Barbibulle pour ces explications.
    Avec les cotes cela fonctionne parfaitement.

    Mais je ne suis pas certain d'avoir compris à 100%.

    C'est IBAccess qui ajouterait ces cotes lors du Create (et autres ALTER) ?

    C'est ça ?

    En fait j'aime bien IBAccess qui malgrè son ergonomie douteuse permet à peu près de tout faire. Marathon est mieux fini mais incomplet.

    IBExpert à l'air très bien, mais il est un peu cher pour l'usage que j'en ai
    (si j'ai utilisé un tel produit, 1h depuis septembre c'est le bout du monde)
    --
    vanquish

  7. #7
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Oui c'est IBAccess qui ajoutait pour vous les cotes lors des créates et Alter.

    Sinon en ce qui concerne IBExpert la version gratuite n'est pas très cher .

    En d'autre terme il existe une version commerciale que l'on peux essayer pendant 45 jours je crois (IBExpert Trial version) et il existe aussi une version entièrement gratuite sans limite de temps. Elle est juste bridée sur quelques outils.(IBExpert Free Personnal Edition)
    Dans cette version il manque : Le designer de database, le debugger de SP/Trigger, le requetteur visuel, l'editeur de rapport, le générateur de données, l'editeur de Blob, le gestionnaire des droits, l'analyseur de SP/trigger/vues, le database compareur, et quelques autre plus petites choses. Ca parrait beaucoup de chose en moins mais en fait IBExpert fait tellement de choses que même sans ses fonctions je suis certain qu'il en fait plus que la plupart des autres produits gratuits.

    Bref IBExpert free personnal c'est ici : http://www.hksoftware.net/download/
    Bon courage

  8. #8
    Membre chevronné

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    599
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 599
    Points : 2 026
    Points
    2 026
    Par défaut
    Merci (un peu tardif, j'étais en congès) pour ces conseils.

    L'intérêt des outils gratuit gratuit (comme IBAccess ou Marathon) c'est qu'on peu en laisser trainer une copie chez le client.

    Difficle de laisser une copie "avec licence Personnelle" d'IBExpert.
    Mais tu as attiser ma curiosité, je vais y jeter un coup d'oeil (j'ai aussi des projet perso, et c'est justement sur un tel projet que j'avais pb).

    Merci encore.
    --
    vanquish

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

Discussions similaires

  1. masqué la barre qui contient les nom des champs dans dbgrid
    Par kroma23 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 09/09/2008, 12h57
  2. Réponses: 3
    Dernier message: 11/07/2007, 10h10
  3. [MySQL] remplir un tableau avec les noms des champs d'une table
    Par solidaritok dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 05/04/2007, 13h47
  4. Réponses: 2
    Dernier message: 01/08/2006, 13h38
  5. Probleme avec les procédures d'opengl dans Vb 6
    Par fun31 dans le forum OpenGL
    Réponses: 3
    Dernier message: 06/12/2004, 07h57

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