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

Requêtes MySQL Discussion :

MySQL : quote identifiers


Sujet :

Requêtes MySQL

  1. #1
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut MySQL : quote identifiers
    Bonjour à tous,

    J'utilise easyPHP contenant MySQL 1.8 contenant MySQL 4.1.9 sous Windows. J'aimerais utiliser comme identificateur le quote simple 'quoted Identifiers'. J'aimerais savoir comment modifier ce paramètre afin qu'il soit utilisé par défaut.


    Merci beaucoup,


    Jasmine,

  2. #2
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Salut,

    Les noms d'objets (tables, colonnes...) peuvent être délimités par rien du tout, par des backticks (`), des guillemets doubles si l'option ANSI_QUOTES est activée, mais pas par des simples quotes à ma connaissance. En effet les simples quotes sont déjà utilisés pour délimiter les chaines de caractères.

    http://dev.mysql.com/doc/refman/5.0/en/identifiers.html

  3. #3
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    En fait, j'utilise un logiciel BioNumerics contenant une base de données locale que je dois connecter à ma base de données MySQL.
    Dans le manuel de BioNumerics, il est noté :
    BioNumerics uses Quoted Identifiers to pass information to the Connected Database. Some database systems, for example MySQL, do not use this ANSI standard by default, but optionaly. To use the database as a bioNumerics Connected Database, make sure that the use of Quoted Identifiers is enabled in the database setup.
    Je crée ma base de données dans MySQL et quand j'essaie de m'y connecter avec BioNulerics, j'ai le message d'erreur suivant (renvoyé par BioNumerics):
    Error while opening table 'ENTRYTABLE' from connected database 'Test':
    Erreur de syntaxe près de '"ENTRYTABLE"' à la ligne 1
    Dans ce message '"ENTRYTABLE"' contient trop d'identificateurs, ENTRYTABLE est entouré de doubles quotes eux même entourés de simples quotes d'où mon message d'erreur.

    Il faut que je ne mette aucun identificateur dans MySQL car BioNumerics rajoute des simples quotes. J'avais mal compris le problème .
    J'ai configuré un ODBC.
    This syntax is accepted for ODBC compatibility because some ODBC programs prefix table names with a “.” character.
    http://dev.mysql.com/doc/refman/5.0/...ualifiers.html

    Pourriez-vous m'aider s'il vous plait?


    Merci,


    Jasmine,

  4. #4
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Citation Envoyé par Jasmine80 Voir le message
    ENTRYTABLE est entouré de doubles quotes eux même entourés de simples quotes d'où mon message d'erreur.
    Là ce n'est pas la même chose ! Les quotes simples (extérieurs) font partie du message d'erreur, ils délimitent la chaîne qui provoque une erreur. Par contre ce sont bien les doubles quotes (") qui provoquent l'erreur. Il faut activer le mode ANSI_QUOTES pour que MySQL les accepte.

    Cf http://maximilian.developpez.com/mys...n_mysql5/#L3-3 et http://dev.mysql.com/doc/refman/5.0/...-sql-mode.html

  5. #5
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Merci beaucoup pour ton aide, Maximilian.
    J'ai effectué la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET sql_mode='ANSI_QUOTES';
    Dans le tableau contenant les variables de la page "Variables et réglages du serveur ", j'ai toujours deux cases vides pour la variable sql_mode de "Valeur pour la session" et "Valeur globale" et j'ai toujours le problème avec BioNumerics. Pourtant MySQL me dit que ma requête 'SET sql_mode='ANSI_QUOTES'' a bien été effectuée.



    Merci beaucoup,


    Jasmine,

  6. #6
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Si je fais la commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SET sql_mode='ANSI_QUOTES';
    CREATE TABLE "TEST" (Id_KEY  VARCHAR(80) PRIMARY KEY, Source VARCHAR(20));
    Cela fonctionne très bien mais SET sql_mode='ANSI_QUOTES' n'est pas enregistrer dans les paramètres. J'ai compris le problème, je vais chercher dans le manuel à modifier les variables de façon durable.


    Merci pour votre aide,


    Jasmine,

  7. #7
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Voila, j'ai utilisé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET GLOBAL sql_mode='ANSI_quotes'
    et cela fonctionne.


    Merci beaucoup pour l'aide.


    Jasmine,

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 28/06/2007, 17h10
  2. [SQL Serveur 2000] - Problème QUOTED-IDENTIFIER
    Par Silvia12 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 07/06/2007, 14h17
  3. Pb set quoted identifier
    Par Yanmeunier dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 19/12/2005, 13h43
  4. Pb Set quoted Identifier
    Par Yanmeunier dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/12/2005, 10h49

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