Problème espace table

Problème espace table - SQL/NoSQL - Programmation

Marsh Posté le 12-07-2005 à 09:25:52    

Bonjour à tous,  
j'aimerai effectué une requête sur une page d'un site pour afficher des données de ma base. Malheureusement, certaines tables contiennent des espaces et je ne sais pas comment faire pour que la syntaxe soit correcte et que la table soit reconnue... Je sais ce que vous allez dire, ne pas mettre d'espace dans des tables!!  Malheureusement ce n'est pas moi qui ai créé cette base de données et vu la grandeur de cette dernière, il me serait impossible de renommer toutes les tables...  
Voilà, est-ce que quelqu'un pourrait m'aider?  
Merci d'avance!

Reply

Marsh Posté le 12-07-2005 à 09:25:52   

Reply

Marsh Posté le 12-07-2005 à 09:40:22    

MySQL ?
 
Tu peux mettre le nom des tables (ou des champs) entre quotes inversées :
SELECT * FROM `tb avec espace`

Reply

Marsh Posté le 12-07-2005 à 09:48:04    

mrbebert a écrit :

MySQL ?
 
Tu peux mettre le nom des tables (ou des champs) entre quotes inversées :
SELECT * FROM `tb avec espace`


 
Non, cette une base Access( :( ) et j'ai déjà essayé avec des quotes inversées mais ça ne marche pas, ça me met un message d'erreur de syntaxe...

Reply

Marsh Posté le 12-07-2005 à 10:02:02    

Peut-être qu'en vous mettant la requête, ça donnera des idées à certains car moi en tout cas, ce n'est plus le cas...
Je les reprise telle quelle depuis Access :
 
"SELECT Contacts.Nom AS Fournisseur, [Plan livraison].[Numéro fournisseur], Contacts_1.Nom AS Client, [Plan livraison].[Numéro client], Contacts_1.Groupe, Contacts_2.Nom AS Client2, [Plan livraison].[Numéro client2], Articles.Libellé AS Article, [couleur fournisseur] & '-' & [couleur client] AS Couleur, [Plan livraison].[Total à livrer], [Plan livraison].[Solde à livrer], [Plan livraison].[Pas confirmé], [Plan livraison].[En retard], [Plan livraison].[Semaine courante], [Plan livraison].[Dans 1 semaine], [Plan livraison].[Dans 2 semaines], [Plan livraison].[Dans 3 semaines], [Plan livraison].[Dans 4 semaines], [Plan livraison].[Solde à planifier], [Plan livraison].[Numéro article], [Plan livraison].[Numéro couleur], [Plan livraison].[Numéro semaine courante] FROM ((((Contacts INNER JOIN [Plan livraison] ON Contacts.Numéro = [Plan livraison].[Numéro fournisseur]) INNER JOIN Contacts AS Contacts_1 ON [Plan livraison].[Numéro client] = Contacts_1.Numéro) INNER JOIN Articles ON [Plan livraison].[Numéro article] = Articles.Numéro) INNER JOIN Couleurs ON [Plan livraison].[Numéro couleur] = Couleurs.Numéro) LEFT JOIN Contacts AS Contacts_2 ON [Plan livraison].[Numéro client2] = Contacts_2.Numéro ORDER BY Contacts.Nom, Contacts_1.Nom, Articles.Libellé, [couleur fournisseur] & '-' & [couleur client]"

Reply

Marsh Posté le 12-07-2005 à 10:03:39    

tu mets le nom de la table entre [] c'est tout.
Idem pour les champs avec espaces.

Reply

Marsh Posté le 12-07-2005 à 10:04:49    

cesarr89 a écrit :

tu mets le nom de la table entre [] c'est tout.
Idem pour les champs avec espaces.


 :??:  C'est déjà fait, non?
J'ai peut-être pas compris ta réponse...

Reply

Marsh Posté le 12-07-2005 à 10:05:20    

Bah oui c'est déjà fait, donc ca marche,non?

Reply

Marsh Posté le 12-07-2005 à 10:07:26    

cesarr89 a écrit :

Bah oui c'est déjà fait, donc ca marche,non?


Non... :(  et le message suivant s'affiche quand j'essaie d'y accéder:
 
Warning: odbc_exec(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Le moteur de base de données Microsoft Jet ne peut pas trouver la table ou la requête source 'Plan livraison'. Assurez-vous qu'elle existe et qu'elle est correctement orthographiée., SQL state S0002 in SQLExecDirect in ...

Reply

Marsh Posté le 12-07-2005 à 10:09:22    

Ah d'accord.
Donc en fait, sous Acces la requête passe sans problème, et sous ta page PHP, elle foire ?

Reply

Marsh Posté le 12-07-2005 à 10:12:02    

cesarr89 a écrit :

Ah d'accord.
Donc en fait, sous Acces la requête passe sans problème, et sous ta page PHP, elle foire ?


Exactement!!! :pt1cable:

Reply

Marsh Posté le 12-07-2005 à 10:12:02   

Reply

Marsh Posté le 12-07-2005 à 10:49:48    

Personne pour me venir en aide?!?  :(  Je ne sais vraiment plus quoi faire, ça fait des jours que je tourne en rond... Ca doit bien être possible non? J'aimerai vraiment y arriver le plus vite possible car j'aimerai mettre mon site en ligne pour que mes collègues qui ne travaille pas en Europe puisse avoir accès aux données!!!
Merci beaucoup pour votre aide...

Reply

Marsh Posté le 12-07-2005 à 10:52:25    

Virer les espaces dans les noms des tables (foireux par définition) ou créer des alias pour ces tables (pour ne pas casser d'autres applis) - je ne sais pas si ça existe en Access.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 12-07-2005 à 10:54:40    

sircam a écrit :

Virer les espaces dans les noms des tables (foireux par définition)


Oui, je sais que ce serait la meilleure chose à faire, mais c'est une base assez énorme et je ne me rends pas compte du boulot à effectuer...  
Sinon pour les alias, je vais regarder dans cette direction, je ne connais pas du tout, donc je vais me renseigner...  
Merci pour ton aide.

Reply

Marsh Posté le 12-07-2005 à 11:47:25    

dans un premier temps, tu peux créer des "requêtes" (des vues en fait) ne contenant pas d'espaces sur les tables en question.
 
un truc du genre :
 
Vue "plan_livraison" :
select * from [plan livraison]
 
=> Ensuite, dans ta requête :
 
select pl.truc from plan_livraison as pl
 
(les alias, c'est bon, mangez-en, même quand les tables sont correctement orthographiées)

Reply

Marsh Posté le 12-07-2005 à 11:51:24    

Arjuna a écrit :

dans un premier temps, tu peux créer des "requêtes" (des vues en fait) ne contenant pas d'espaces sur les tables en question.
 
un truc du genre :
 
Vue "plan_livraison" :
select * from [plan livraison]
 
=> Ensuite, dans ta requête :
 
select pl.truc from plan_livraison as pl
 
(les alias, c'est bon, mangez-en, même quand les tables sont correctement orthographiées)


 
Ok, alors j'ai regardé un peu dans la direction des alias mais je crois que je n'ai pas trop compris comment en faire sur les tables. Imaginons, j'aimerai que ma table "Plan livraison", je puisse l'appeler par son nom d'Alias, "Plan_Livraison", juste, non?!?
Mais comment je fais? Je le fais directement dans mon code de ma page internet ou dans Access?
Merci pour votre aide!

Reply

Marsh Posté le 12-07-2005 à 13:37:04    

Est-ce que quelqu'un serait me guider dans le monde obscure(pour moi) des alias?
Merci d'avance pour votre aide!

Reply

Marsh Posté le 12-07-2005 à 14:59:16    

Nan, dans Access, tu vas dans l'onglet "requêtes"
 
Tu écrit :  
 
select * from [Plan Livraison]
 
Et tu l'enregistre sous le nom de "Plan_Livraison"
 
Et zou.
 
Maintenant, depuis VB, tu peux faire :
 
select truc from Plan_Livraison
 
Tu devrais même pouvoir faire des insert, delete et update

Reply

Marsh Posté le 12-07-2005 à 15:38:16    

Arjuna a écrit :

Nan, dans Access, tu vas dans l'onglet "requêtes"
 
Tu écrit :  
 
select * from [Plan Livraison]
 
Et tu l'enregistre sous le nom de "Plan_Livraison"
 
Et zou.
 
Maintenant, depuis VB, tu peux faire :
 
select truc from Plan_Livraison
 
Tu devrais même pouvoir faire des insert, delete et update


 
Oki, je me lance dans tout ça alors!
Mille mercis pour ton aide!
A bientôt (enfin j'espère pas trop vite quand même...  :wahoo: )

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed