|
внешние БД - связывание таблиц - вычисляемые поля не работают
|
|||
---|---|---|---|
#18+
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] Кто-нибудь сталкивался? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 21:04 |
|
внешние БД - связывание таблиц - вычисляемые поля не работают
|
|||
---|---|---|---|
#18+
rstr, У вас ошибка возникает на стороне внешней СУБД, и видимо это MSSQL, попробуйте подключиться каким нибудь ODBC клиентом и выполнить подобный запрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 21:18 |
|
внешние БД - связывание таблиц - вычисляемые поля не работают
|
|||
---|---|---|---|
#18+
DAiMor, Мне совершенно ясно, что внешним SQL клиентом я не увижу это поле. Но хотелось бы его видеть внутри Cache. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 22:07 |
|
внешние БД - связывание таблиц - вычисляемые поля не работают
|
|||
---|---|---|---|
#18+
rstrDAiMor, Мне совершенно ясно, что внешним SQL клиентом я не увижу это поле. Но хотелось бы его видеть внутри Cache.а ошибка одинаковая на обоих вариантах ? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 22:35 |
|
внешние БД - связывание таблиц - вычисляемые поля не работают
|
|||
---|---|---|---|
#18+
rstr, таблицы (объекты), которые вы отображаете через шлюз, могут позволить делать с ними только то, что умеет "другая СУБД". На стороне Cache' это лишь имитация таблиц, что-то вроде view. Т.е., если вы хотите добавить поле, вы должны сделать это на стороне "другой СУБД". Лет 10 назад, когда приходилось активно работать через шлюз, сразу для себя решил, что буду взаимодействовать только на низком уровне, через объект %Library.SQLGatewayConnection. Работа с ним принципиально не отличается с работой через %Library.ResultSet, и позволяет избежать "лукавства" отображения таблиц. Оказалось, это был правильный выбор: код работает до сих пор, пережив уже несколько версий Cache'. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2013, 13:20 |
|
внешние БД - связывание таблиц - вычисляемые поля не работают
|
|||
---|---|---|---|
#18+
rstrDAiMor, Мне совершенно ясно, что внешним SQL клиентом я не увижу это поле. Но хотелось бы его видеть внутри Cache.Плюшки от Caché, которые здесь упоминаются, относятся исключительно к объектному доступу. Вы не можете их использовать в SQL, так как он идёт на обработку внешней СУБД. Если нужна всё-таки поддержка SQL, то см. совет Alexey Maslov выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2013, 13:44 |
|
|
start [/forum/topic.php?fid=39&fpage=24&tid=1557009]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
62ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 238ms |
total: | 401ms |
0 / 0 |