Как создать ссылку Jet ODBC на представление SQL Server с точками в именах полей? - PullRequest
2 голосов
/ 02 октября 2008

Мне нужно создать ссылку ODBC из базы данных Access 2003 (Jet) на размещенное представление SQL Server, которое содержит псевдонимы имен полей, содержащие такие точки, как:

Seq.Group

В источнике SQL за представлением имена полей заключены в квадратные скобки ...

SELECT Table._Group AS [Seq.Group]

... поэтому SQL Server не жалуется на создание представления, но когда я пытаюсь создать ссылку ODBC на него из Jet DB (программно или через пользовательский интерфейс Access 2003), я получаю сообщение об ошибке:

'Seq.Group' не является допустимым именем. Делать уверен, что он не включает в себя недействительным символы или знаки препинания и что это не слишком долго.

К сожалению, я не могу изменить структуру представления, потому что это часть другого продукта, поэтому я застрял с именами полей такими, какими они являются. Я мог бы добавить свое собственное представление с именами полей без знаков препинания, но я бы вообще не хотел изменять SQL Server вообще, потому что тогда это становится другой точкой обслуживания каждый раз, когда происходит обновление, исправление и т. Д. Кто-нибудь знает лучший обходной путь?

Ответы [ 3 ]

4 голосов
/ 02 октября 2008

Хотя технически я не смог избежать точки, ваше предложение на самом деле действительно заставило меня осознать другую альтернативу. Задаваясь вопросом, как я мог бы «передать» код escape на сервер «SQL», меня осенило: почему бы не использовать «SQL Pass-Through Query» вместо таблицы, связанной с ODBC? Так как мне нужен только доступ для чтения к данным SQL Server, он работает нормально! Спасибо!

1 голос
/ 02 октября 2008

Просто угадай здесь: ты пытался убежать от точки? Что-то вроде "[Seq \ .Group]"?

0 голосов
/ 02 октября 2008

Другим предложением будет добавление нового представления на вашем сервере sql, а не изменение существующего. Даже если ваше первоначальное представление является частью «решения», ничто не запрещает вам добавлять новые представления:

SELECT Table._Group AS [Seq_Group]
...