Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Ну удаётся прилинковать Postgre  [new]
Simohin Alex
Member

Откуда: Киев
Сообщений: 72
Таблицы прилинкованного сервера видно, но получить доступ не удаётся.
При запросе
select id from base..[public].table возвращает ошибку
OLE DB provider 'MSDASQL' returned an invalid column defintion.
OLE DB error trace [Non-interface error: OLE DB provider 'MSDASQL' returned an invalid column defintion.].
Прилинковал через ODBC соединение. DSN настроен верно, Excel данные "тянет".

А через Postgre OLE DB Provider вообще не удалось прилинковать сервер.
Подскажите, пожалуйста, может кто имел дело с доступом к Postgre через MSSQL Linked servers.
17 сен 04, 17:34    [969615]     Ответить | Цитировать Сообщить модератору
 Re: Ну удаётся прилинковать Postgre  [new]
Glory
Member

Откуда:
Сообщений: 104760
OLE DB provider 'MSDASQL' returned an invalid column defintion
- Какого типа столбец id в Postgre ?
- Как ведет себя запрос при обращении к другим столбцам ?
17 сен 04, 17:36    [969633]     Ответить | Цитировать Сообщить модератору
 Re: Ну удаётся прилинковать Postgre  [new]
Simohin Alex
Member

Откуда: Киев
Сообщений: 72
Тип столбца character(3), integer, к любому столбцу такая ошибка.

Это максимум, чего получилось добиться :(
На всех остальных таблицах та же ошибка.
17 сен 04, 17:45    [969665]     Ответить | Цитировать Сообщить модератору
 Re: Ну удаётся прилинковать Postgre  [new]
Glory
Member

Откуда:
Сообщений: 104760
что выдает
sp_columns_ex 'base', 'public', 'table'

про типы данных и размеры столбцов ?
17 сен 04, 17:48    [969673]     Ответить | Цитировать Сообщить модератору
 Re: Ну удаётся прилинковать Postgre  [new]
Simohin Alex
Member

Откуда: Киев
Сообщений: 72
Server: Msg 7346, Level 16, State 2, Procedure sp_columns_ex, Line 133
Could not get the data of the row from the OLE DB provider 'UNKNOWN'. Conversion failed because the data value overflowed the data type used by the provider.
OLE DB error trace [OLE/DB Provider 'UNKNOWN' IRowset::GetData returned 0x40eda: Data status returned from the provider: [COLUMN_NAME=DATA_TYPE STATUS=DBSTATUS_S_OK], [COLUMN_NAME=TYPE_NAME STATUS=DBSTATUS_S_OK], [COLUMN_NAME=COLUMN_SIZE STATUS=DBSTATUS_E_DATAOVERFLOW]].
17 сен 04, 17:59    [969700]     Ответить | Цитировать Сообщить модератору
 Re: Ну удаётся прилинковать Postgre  [new]
Simohin Alex
Member

Откуда: Киев
Сообщений: 72
Вот ещё проблема:
если линкую через EM хоть список таблиц виден,
а команда
sp_addlinkedserver @server = 'TEST',
@srvproduct = 'MSDASQL',
@provider = 'MSDASQL',
--@provider = 'Microsoft OLE DB Provider for ODBC Drivers',
@provstr = 'DSN=GW;UID=user;PWD=pass;',
@datasrc = 'GW'
линкует сервер (через ЕМ - один в один), через который вообще доступа нет -валится с ошибкой :(
17 сен 04, 18:33    [969782]     Ответить | Цитировать Сообщить модератору
 Re: Ну удаётся прилинковать Postgre  [new]
Simohin Alex
Member

Откуда: Киев
Сообщений: 72
Вопрос прилинковки сервера Postgre остаётся очень актуальным.
Большая просьба всех, кто имел дело с подобной задачей, натолкнуть на светлую мысль ;)
17 сен 04, 19:31    [969890]     Ответить | Цитировать Сообщить модератору
 Re: Ну удаётся прилинковать Postgre  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3300
Была похожая трабла с мускулем. Линкую через ODBC, но любой вариант квалификации имени таблицы выводит какую-то чушь, каждый раз новую, и ничего не дает. Помогло использование OPENQUERY() вместо простого селекта с полной квалификацией.
19 сен 04, 15:42    [970990]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить