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 :

[Access] Nom d'une table avec un espace dans SQL


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Inscrit en
    juillet 2002
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : juillet 2002
    Messages : 9
    Points : 6
    Points
    6
    Par défaut [Access] Nom d'une table avec un espace dans SQL
    Bonjour!

    Voilà, tout d'abord, je travaille en ASP, une DB Access et ce qu'il faut pour y accéder, IIS 5 (je pense) (Win2000Server)..

    Le seul problème est: les personne qui ont créé la base de donnée (et les requêtes et états s'y afférant) on créé une table.. avec un espace dans son nom (Technicien_ tache)..

    En Access.. pas de problème, j'ajoute des [] et on en parles plus.. mais en SQL..

    J'ai essayé de mettre le nom de la table entre ", entre ', entre () et entre [].. aussi bien en les écrivant qu'en les ajoutant avec chr(xx)..

    Enfin bref, il ne veut rien savoir..

    Quelqu'un sais me dire ce que je n'ai pas compris? Parce que là.. je bloque..

    Merci d'avance..

    (Ai essayé d'éplucher toutes les pages du forum et de faire une recherche mais.. sans résultats.. )

    Infos:

    Taches vers 1,N Technicien_ taches
    Techniciens vers 1,N Technicien_ taches
    Technicien_ taches étant 1,1 vers les deux autres (table d'association)..

    Code ASP:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      SQLString = "SELECT Taches.Numéro_tache, Taches.Projet, Tache.Date_planifiée, Taches.Remarques, Techniciens.Abréviation"
     
      SQLString = SQLString & " FROM Taches INNER JOIN (Technicien_ tache INNER JOIN Techniciens ON Technicien_ tache.Technicien = Techniciens.Numéro_technicien) ON Taches.Numéro_tache = Technicien_ tache.Tache"
     
      SQLString = SQLString & " WHERE Taches.Date_realisation_Taches IS NULL"
     
      SQLString = SQLString & " ORDER BY Taches.Date_planifiée"
    Code SQL (Le même mais en plus clair.. ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    SELECT
      Taches.Numéro_tache, Taches.Projet, Tache.Date_planifiée, Taches.Remarques, Techniciens.Abréviation
     
    FROM
      Taches INNER JOIN
        (Technicien_ tache INNER JOIN
          Techniciens ON
            Technicien_ tache.Technicien = Techniciens.Numéro_technicien) ON
              Taches.Numéro_tache = Technicien_ tache.Tache
     
    WHERE Taches.Date_realisation_Taches IS NULL
     
    ORDER BY Taches.Date_planifiée
    Zieutez, fouillez, puis demandez votre chemin..

  2. #2
    Membre régulier
    Inscrit en
    novembre 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : novembre 2002
    Messages : 67
    Points : 80
    Points
    80
    Par défaut
    C mal barre, deux solutions :

    1. tu recree la table (ou tu la renome)

    2. tu feintes en creant une vue sur ta table en question qui porte le meme nom sans l'espace.

    ...
    Java, JDBC, SQL, Oracle

    Specialiste Kamehameha des blagues-boulets

    Barman de la taverne

  3. #3
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    octobre 2002
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : octobre 2002
    Messages : 4 184
    Points : 19 413
    Points
    19 413
    Billets dans le blog
    25
    Par défaut Re: Nom d'une table avec un espace dans SQL
    Citation Envoyé par Corsaire
    J'ai essayé de mettre le nom de la table entre ", entre ', entre () et entre [].. aussi bien en les écrivant qu'en les ajoutant avec chr(xx)..

    Enfin bref, il ne veut rien savoir..
    ...
    Code SQL (Le même mais en plus clair.. ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    SELECT
      Taches.Numéro_tache, Taches.Projet, Tache.Date_planifiée, Taches.Remarques, Techniciens.Abréviation
     
    FROM
      Taches INNER JOIN
        (Technicien_ tache INNER JOIN
          Techniciens ON
            Technicien_ tache.Technicien = Techniciens.Numéro_technicien) ON
              Taches.Numéro_tache = Technicien_ tache.Tache
     
    WHERE Taches.Date_realisation_Taches IS NULL
     
    ORDER BY Taches.Date_planifiée
    C'est étrange, car ça doit fonctionner avec des guillemets.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    SELECT
      Taches.Numéro_tache, Taches.Projet, Tache.Date_planifiée, Taches.Remarques, Techniciens.Abréviation
     
    FROM
      Taches INNER JOIN
        ("Technicien_ tache" INNER JOIN
          Techniciens ON
            "Technicien_ tache".Technicien = Techniciens.Numéro_technicien) ON
              Taches.Numéro_tache = "Technicien_ tache".Tache
     
    WHERE Taches.Date_realisation_Taches IS NULL
     
    ORDER BY Taches.Date_planifiée
    et si ça ne passe tjs pas, essaies de lancer un set quoted_identifier on avant.
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  4. #4
    Futur Membre du Club
    Inscrit en
    juillet 2002
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : juillet 2002
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par P'tit Jean
    1. tu recree la table (ou tu la renome)
    Impossible.. il y a plus de 300 états/formulaires/requêtes qui en dépendent.. et comme ce n'est pas moi qui l'ai développée (et je ne m'y connais pas assez en Access pour dire de le faire).. je ne veux pas y toucher (pour les sous-titres: ne pas prendre la responsabilité de la faire sauter et bloquer pas mal d'utilisaeurs )


    Citation Envoyé par P'tit Jean
    2. tu feintes en creant une vue sur ta table en question qui porte le meme nom sans l'espace.
    Hum.. ça je n'y avais pas pensé.. cela ne devrait pas interagir avec l'existant.. je vais me renseigner si c'est faisable dans cette optique.. merci en tout cas!
    Zieutez, fouillez, puis demandez votre chemin..

  5. #5
    Futur Membre du Club
    Inscrit en
    juillet 2002
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : juillet 2002
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Re: Nom d'une table avec un espace dans SQL
    Citation Envoyé par fadace
    Citation Envoyé par Corsaire
    J'ai essayé de mettre le nom de la table entre ", entre ', entre () et entre [].. aussi bien en les écrivant qu'en les ajoutant avec chr(xx)..

    Enfin bref, il ne veut rien savoir..
    C'est étrange, car ça doit fonctionner avec des guillemets.
    Ben voui, c'est bien ce que je me disait.. mais.. non..

    Citation Envoyé par fadace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    FROM
      Taches INNER JOIN
        ("Technicien_ tache" INNER JOIN
          Techniciens ON
            "Technicien_ tache".Technicien = Techniciens.Numéro_technicien) ON
              Taches.Numéro_tache = "Technicien_ tache".Tache
    et si ça ne passe tjs pas, essaies de lancer un set quoted_identifier on avant.
    Ben.. dans la requête.. voui, je savais quoi faire, mais il ne me l'accepte pas (dans mon code ASP, je précise).. mais je vais essayer ton set (que je ne connaissait pas)..

    Merci!!
    Zieutez, fouillez, puis demandez votre chemin..

  6. #6
    Futur Membre du Club
    Inscrit en
    juillet 2002
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : juillet 2002
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Le problème et résolu..

    La requete a été intégrée à la DB Access.. et je l'appelle via mon code ASP..

    cf http://www.developpez.net/forums/viewtopic.php?p=377665

    Merci à vous..
    Zieutez, fouillez, puis demandez votre chemin..

  7. #7
    Membre à l'essai
    Inscrit en
    avril 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : avril 2006
    Messages : 21
    Points : 13
    Points
    13
    Par défaut J'ai le meme problème
    J'ai le meme problème que corsair.

    je dois absolument garder le nom des tables qui m'as ete fournis. Et ces nom de tables possèdent un espace.

    J'ai bien essayé les " ' ` '' `` mai aucun ne semble fonctionner.

    Je ne comprend pas comment Corsaire as reussi à faire fonctionner ceci.

    Si vous avez une solution je suis tout ouie ^^

    Merci d'avance.

  8. #8
    Membre à l'essai
    Inscrit en
    avril 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : avril 2006
    Messages : 21
    Points : 13
    Points
    13
    Par défaut J'ai enfin trouvé
    je pense que cela peut servir a d'autres personnes.

    Bon et bien alors pour les connections en ADO pour SQL SERVER il ne faut pas utiliser de quotes (" ou ' ou`` etc...) il faut tout simplement utiliser des crochets.

    Ex : Create Table [Nom de Table avec Espaces] (...)

    Et on peu du coup définir des noms de colonnes (field.Name) par des mots clef.

    Ex : CREATE TABLE [Nom de Table] ( [IF] varchar(30), [AND] int, ...)

    voici le lien ou j'ai reussi a trouver ma solution :
    http://support.microsoft.com/default...q.asp#SpacInTa

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

Discussions similaires

  1. Changer le nom d'une table sur SQL server avec une requete
    Par Oluha dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 02/02/2014, 00h35
  2. Recuperer le nom d'une table avec un RowID ?
    Par Arvulis dans le forum Administration
    Réponses: 9
    Dernier message: 09/01/2008, 17h09
  3. Réponses: 7
    Dernier message: 11/07/2007, 14h26
  4. Réponses: 3
    Dernier message: 13/06/2007, 18h43
  5. faire un fetch avec le nom d une table comme parametre
    Par cbon1 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 18/09/2006, 18h08

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