Использование именования из четырех частей для вставки в DB2 из SQL Server 2005? - PullRequest
0 голосов
/ 08 декабря 2009

Мы используем DB2 9.1 в Linux и SQL Server 2005 и драйвер IBM db2 odbc. У нас есть связанный сервер, настроенный на DB2. Из SQL Server я могу сделать следующее:

-- I can create the new table fine
exec ('create table dev.TestSylviaB (field1 int) in TS_DEV_USER_XXXX')
at LinkDB2

-- I can use 4 part naming to select from it, as long as I skip the second part and put everything in upper case
select * from LINKDB2..DEV.TESTSYLVIAB

-- I can insert using Exec (which does pass through)
exec ('insert into DEV.TestSylviaB (field1 ) values (1)') at LinkDB2

-- HOWEVER I cannot insert via the standard 4 part naming, like this:
insert into LINKDB2..DEV.TESTSYLVIAB values (1)

Я получаю сообщение об ошибке «драйвер не совместим»:

Поставщик OLE DB "MSDASQL" для связанного сервера "LINKDB2" вернул сообщение "[IBM] [Драйвер CLI] CLI0150E Драйвер не поддерживается. SQLSTATE = S1C00". Сообщение 7343, уровень 16, состояние 2, строка 1 Поставщик OLE DB "MSDASQL" для связанного сервера "LINKDB2" не смог вставить таблицу INTO "[LINKDB2] .. [DEV]. [TESTSYLVIAB]".

Есть мысли?

спасибо! Sylvia

1 Ответ

1 голос
/ 08 декабря 2009

Вставка имени из 4 частей - это распределенная транзакция, и драйвер DB2 должен зарегистрироваться в ней. См. Регистрация драйвера IBM DB2 для ODBC и CLI с помощью Microsoft DTC .

...