Если имя поля INDEX?

SQL во всех проявлениях - от ANSI-92 до TSQL.

Модераторы: Yurich, Absurd

Ответить
GOS
Сообщения: 111
Зарегистрирован: 17 фев 2004, 10:32
Контактная информация:

Здравствуйте!

Такая вот проблемма: (
Есть табличка в ней поле с именем INDEX и это имя совпадает с зарезервированными словами :( Как выполнить SQL запрос к этой таблице с условием по этому полю?

Имя поля менять нежелательно т.к. таблица входит в состав классификатора адресов т.е. поставляется сторонним разработчиком.

Уточнения:
Используется Delphi + TQuery
Таблички сконвертированны в Paradox
Интересно не только конкретное решение, но вообще принцип обращения с такими таблицами.

С уважением, Олег!
Bas
Сообщения: 21
Зарегистрирован: 10 мар 2004, 21:46

а нельзя создать VIEW по этой таблице и указать свои имена колонок?
типа CREATE VIEW myView (colName1,....,indexName,...,colNameN) as SELECT * from BadTable
Аватара пользователя
AiK
Сообщения: 2287
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

Bas, на сколько я понмю, вьюх в Paradox'е не бывает.

GOS, рекомендуется почитать о синтаксисе запросов в Paradox.
Есть несколько вариантов, один из которых должен сработать:
1) имя колонки указывается в квадратных скобках [INDEX] - вроде как это не из ANSI 92, возможно прокатят кавычки.
2) колонку можно именовать в нотации имя_таблицы.имя_колонки, или псевдоним_таблицы.имя_колонки, при этом колонка может иметь произвольное имя.
Даже самый дурацкий замысел можно воплотить мастерски
GOS
Сообщения: 111
Зарегистрирован: 17 фев 2004, 10:32
Контактная информация:

Спасибо за ответы!

Если кому интересно, вот конечное решение:
SELECT * FROM PostIndx WHERE PostIndx."INDEX"='115563'
Аватара пользователя
AiK
Сообщения: 2287
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

Есть несколько вариантов, один из которых должен сработать
сработала комбинация :)
Даже самый дурацкий замысел можно воплотить мастерски
Ответить