powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / внешние БД - связывание таблиц - вычисляемые поля не работают
6 сообщений из 6, страница 1 из 1
внешние БД - связывание таблиц - вычисляемые поля не работают
    #38491037
rstr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cache 2010.

Сделал связку внешней БД через ODBC с помощью Мастера связывания таблицы.
Данные нормально читаются.

Попробовал добавить вычисляемое поле с простейшим кодом.
1. Первый вариант
Property Bus As %String(CAPTION = "Автобус") [ SqlComputeCode = { s {Bus}="" }, SqlComputed, Transient ];

2. Второй, когда по первому была ошибка
Property Bus As %String(EXTERNALSQLNAME = "Bus",CAPTION = "Автобус") [ SqlComputeCode = { s {Bus}="" }, SqlComputed, Transient ];

Компиляция проходит нормально.

Запрос с теми полями, что создал мастер, работает нормально.
select top (1) Latitude,Longitude,UniqueID from dbo.Nav

Но при SQL запросе с добавлением нового поля
select top (1) Latitude,Longitude,UniqueID,Bus from dbo.Nav

выдается ошибка:
ERROR #5821: Cannot instantiate query: 'SQLCODE = -400, %msg = SQLState: (42S22) NativeError: [207] Message: [Microsoft][ODBC SQL Server Driver]

Кто-нибудь сталкивался?
...
Рейтинг: 0 / 0
внешние БД - связывание таблиц - вычисляемые поля не работают
    #38491044
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rstr,

У вас ошибка возникает на стороне внешней СУБД, и видимо это MSSQL, попробуйте подключиться каким нибудь ODBC клиентом и выполнить подобный запрос.
...
Рейтинг: 0 / 0
внешние БД - связывание таблиц - вычисляемые поля не работают
    #38491070
rstr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMor, Мне совершенно ясно, что внешним SQL клиентом я не увижу это поле.
Но хотелось бы его видеть внутри Cache.
...
Рейтинг: 0 / 0
внешние БД - связывание таблиц - вычисляемые поля не работают
    #38491090
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rstrDAiMor, Мне совершенно ясно, что внешним SQL клиентом я не увижу это поле.
Но хотелось бы его видеть внутри Cache.а ошибка одинаковая на обоих вариантах ?
...
Рейтинг: 0 / 0
внешние БД - связывание таблиц - вычисляемые поля не работают
    #38491655
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rstr,

таблицы (объекты), которые вы отображаете через шлюз, могут позволить делать с ними только то, что умеет "другая СУБД".
На стороне Cache' это лишь имитация таблиц, что-то вроде view.
Т.е., если вы хотите добавить поле, вы должны сделать это на стороне "другой СУБД".

Лет 10 назад, когда приходилось активно работать через шлюз, сразу для себя решил, что буду взаимодействовать только на низком уровне, через объект %Library.SQLGatewayConnection. Работа с ним принципиально не отличается с работой через %Library.ResultSet, и позволяет избежать "лукавства" отображения таблиц. Оказалось, это был правильный выбор: код работает до сих пор, пережив уже несколько версий Cache'.
...
Рейтинг: 0 / 0
внешние БД - связывание таблиц - вычисляемые поля не работают
    #38491717
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rstrDAiMor, Мне совершенно ясно, что внешним SQL клиентом я не увижу это поле.
Но хотелось бы его видеть внутри Cache.Плюшки от Caché, которые здесь упоминаются, относятся исключительно к объектному доступу. Вы не можете их использовать в SQL, так как он идёт на обработку внешней СУБД.
Если нужна всё-таки поддержка SQL, то см. совет Alexey Maslov выше.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / внешние БД - связывание таблиц - вычисляемые поля не работают
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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