powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Проблема использования ключевых слов в качестве идентификаторов объектов базы данных
9 сообщений из 9, страница 1 из 1
Проблема использования ключевых слов в качестве идентификаторов объектов базы данных
    #33363361
S_Hohlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть Access база данных, например access_file.mdb . В ней есть таблица table_1 , содержащая поле с именем "Order". На сервере (Sybase ASA 9 - 9.0.2.3182) создается удаленное подключение к access_file.mdb через ODBC. Создается proxy таблица для table_1. В хранимой процедуре предпринимается попытка выполнить insert into table_1 ( Order) select t.some_field from some_table t . Сервер категорически отказывается воспринимать слово Order в данном контексте. Варианты "Order" или [Order] также не работают.
Что еще можете посоветовать? Переименование поля в таблице access файла в данном случае невозможно.
...
Рейтинг: 0 / 0
Проблема использования ключевых слов в качестве идентификаторов объектов базы данных
    #33363493
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант с "Order" работает , только перед этим надо поставить режим quoted-identifier on

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
set quoted-identifier on
go

insert into "table_1" ( "Order" ) 
select t."some_field" from "some_table" t 
go

set quoted-identifier off
go

...
Рейтинг: 0 / 0
Проблема использования ключевых слов в качестве идентификаторов объектов базы данных
    #33363793
Vinogrado
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivВариант с "Order" работает , только перед этим надо поставить режим quoted-identifier on

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
set quoted-identifier on
go

insert into "table_1" ( "Order" ) 
select t."some_field" from "some_table" t 
go

set quoted-identifier off
go


А кто Вам запрецает дать для Proxy таблицы другое имя, а в MDB будет прежнее
...
Рейтинг: 0 / 0
Проблема использования ключевых слов в качестве идентификаторов объектов базы данных
    #33364005
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VinogradoА кто Вам запрецает дать для Proxy таблицы другое имя, а в MDB будет прежнее

вроде проблема в поле под названием "order"
З.Ы. Проверил на ASA9.0.0 1383 (последний билд под 9.0.0) - так сервер просто падает , дома проверю на 9.0.2
...
Рейтинг: 0 / 0
Проблема использования ключевых слов в качестве идентификаторов объектов базы данных
    #33364113
S_Hohlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторА кто Вам запрецает дать для Proxy таблицы другое имя, а в MDB будет прежнее
Никто не запрещает, более того я и присваиваю proxy таблицам имена, отличные от оригинальных. Но дело не в этом. Проблема как раз заключается в использовании ключевого слова для поля в proxy таблице.
1. Уточнение:Could not execute statement.
Server 'RemoteAccessDB':[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.
SQLCODE =-660, ODBC 3 State="HY000"
Судя по сообщению об ошибке - проблема, видимо, заключается в настройках соединения с mdb файлом.
2. Слово Order на данный момент пока единственное из ключевых слов, с которым появляется эта ошибка. С другими ключевыми словами, использующимися в качестве имен столбцов (например ID, Type, Status, Leave и т.п.) все работает прекрасно.
3. Выяснить, как при создании proxy таблицы назначить имя столбцу, отличное от оригинального, пока не удалось. Возможно ли такое?
...
Рейтинг: 0 / 0
Проблема использования ключевых слов в качестве идентификаторов объектов базы данных
    #33364368
S_Hohlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторВариант с "Order" работает , только перед этим надо поставить режим quoted-identifier on
SET OPTION quoted_identifier = 'ON'('OFF'); - не решает проблему.
...
Рейтинг: 0 / 0
Проблема использования ключевых слов в качестве идентификаторов объектов базы данных
    #33364857
Sergey Orlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S_Hohlov авторА кто Вам запрецает дать для Proxy таблицы другое имя, а в MDB будет прежнее
Никто не запрещает, более того я и присваиваю proxy таблицам имена, отличные от оригинальных. Но дело не в этом. Проблема как раз заключается в использовании ключевого слова для поля в proxy таблице.
1. Уточнение:Could not execute statement.
Server 'RemoteAccessDB':[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.
SQLCODE =-660, ODBC 3 State="HY000"
Судя по сообщению об ошибке - проблема, видимо, заключается в настройках соединения с mdb файлом.
2. Слово Order на данный момент пока единственное из ключевых слов, с которым появляется эта ошибка. С другими ключевыми словами, использующимися в качестве имен столбцов (например ID, Type, Status, Leave и т.п.) все работает прекрасно.
3. Выяснить, как при создании proxy таблицы назначить имя столбцу, отличное от оригинального, пока не удалось. Возможно ли такое?
Проблема в драйвере ODBC, попробуй посмотреть синтаксис в самом Access'е
и попробуй именно данный синтаксис послать ему, еще можно попытаться выгрузить структуру базы и посмотреть, какие параметры использует твой удаленный сервер, там будет куча строчек после create server ....
...
Рейтинг: 0 / 0
Проблема использования ключевых слов в качестве идентификаторов объектов базы данных
    #33364877
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что можно попробовать:
1. Сделать в Access на таблицу запрос уже с нормальными названиями полей и именно его подключать в качестве прокси-таблицы.
2. Поиграться с ASA БД опцией NON_KEYWORDS.
Первый вариант предпочительней.
...
Рейтинг: 0 / 0
Проблема использования ключевых слов в качестве идентификаторов объектов базы данных
    #33365117
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все плохо, вот что написано в документации

BOLFeatures not supported for remote data

--------------------------------------------------------------------------------

The following Adaptive Server Anywhere features are not supported on remote data. Attempts to use these features will therefore run into problems:

ALTER TABLE statement against remote tables

Triggers defined on proxy tables will not fire

SQL Remote

Foreign keys that refer to remote tables are ignored

The READTEXT, WRITETEXT, and TEXTPTR functions.

Positioned UPDATE and DELETE

UPDATE and DELETE requiring an intermediate temporary table.

Backwards scrolling on cursors opened against remote data. Fetch statements must be NEXT or RELATIVE 1.

If a column on a remote table has a name that is a keyword on the remote server, you cannot access data in that column. Adaptive Server Anywhere cannot know all of the remote server reserved words. You can execute a CREATE EXISTING TABLE statement, and import the definition but you cannot select that column.

немного врут, правда, поскольку select выполняется, а вот update и insert - никак ;(
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Проблема использования ключевых слов в качестве идентификаторов объектов базы данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]