Précédent   Forum des professionnels en informatique > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/10/2004, 10h14   #1
Membre confirmé
 
Inscription : juin 2002
Messages : 240
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 240
Points : 225
Points : 225
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
vanquish est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2004, 14h57   #2
Membre du Club
 
Inscription : mai 2003
Messages : 140
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 140
Points : 66
Points : 66
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"
Sitting Bull est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2004, 09h44   #3
Membre confirmé
 
Inscription : juin 2002
Messages : 240
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 240
Points : 225
Points : 225
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
vanquish est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2004, 10h44   #4
Membre habitué
 
Inscription : octobre 2004
Messages : 192
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : octobre 2004
Messages : 192
Points : 127
Points : 127
Envoyer un message via MSN à t_om84
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.
t_om84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2004, 12h54   #5
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
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 :
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.
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2004, 10h16   #6
Membre confirmé
 
Inscription : juin 2002
Messages : 240
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 240
Points : 225
Points : 225
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
vanquish est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2004, 10h58   #7
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
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
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2004, 12h20   #8
Membre confirmé
 
Inscription : juin 2002
Messages : 240
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 240
Points : 225
Points : 225
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
vanquish est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h12.


 
 
 
 
Partenaires

Hébergement Web