2008-10-02 6 views
2

Je dois créer un lien ODBC à partir d'une base de données Access 2003 (Jet) à une vue hébergé SQL Server qui contient les noms de champs crénelage contenant des périodes telles que:Comment créer un lien Jet ODBC vers une vue SQL Server avec des points dans les noms de champs?

Seq.Group 

Dans la source SQL derrière la vue, le champ les noms sont enfermés entre crochets ...

SELECT Table._Group AS [Seq.Group] 

... si SQL Server ne se plaint pas de créer la vue, mais lorsque je tente de créer un lien ODBC pour depuis le Jet DB (programmation ou via l'interface utilisateur Access 2003) Je reçois le message d'erreur:

'Seq.Group' n'est pas un nom valide. Assurez-vous que les caractères ne sont pas valides et que la ponctuation est et que le code n'est pas trop long.

Malheureusement, je ne peux pas modifier la structure de la vue car elle fait partie d'un autre produit, donc je suis coincé avec les noms de champs tels qu'ils sont. I could ajouter ma propre vue avec des noms de champ sans ponctuation, mais je préfèrerais ne pas modifier du tout le SQL Server parce que cela devient un autre point de maintenance chaque fois qu'il y a une mise à niveau, correctif, etc. meilleure solution de contournement?

Répondre

4

Bien que je n'ai pas techniquement fini par échapper le point, votre suggestion fait m'a fait réaliser une autre alternative. En me demandant comment je "passerais" le code d'échappement au serveur "SQL", il m'est apparu: Pourquoi ne pas utiliser une "SQL Pass-Through Query" au lieu d'une table liée ODBC? Comme je n'ai besoin que d'un accès en lecture aux données SQL Server, cela fonctionne très bien! Merci!

1

Juste deviner ici: avez-vous essayé d'échapper au point? Quelque chose comme "[Seq \ .Group]"?

0

Une autre proposition serait d'ajouter une nouvelle vue sur votre serveur sql, ne modifiant pas celle existante. Même si votre vue initiale fait partie d'une «solution», rien ne vous interdit d'ajouter de nouvelles vues:

SELECT Table._Group AS [Seq_Group] 
Questions connexes