Чтобы подключить БД TECDOC`а к MS SQL Server в качестве Linked Server, необходимо следующее:
1) Создать ODBC DSN: Панель управление -> Администрирование -> Источники данных (ODBC) -> Системный DSN -> Добавить. Здесь выбираем драйвер Transbase, который должен был появиться после установки Tecdoc (нечто вроде "Transbase ODBC TECDOC CD 3_2010", название зависит от версии текдока) и настраиваем подключение следующим образом:
- Datasource: TECDOC_CD_3_20112) На свервере MS SQL выполняем:
- Database: TECDOC_CD_3_2011
- Server: localhost
- User: tecdoc
- Password: tcd_error_0
EXEC sp_addlinkedserver @server='TECDOC', @srvproduct='TECDOC_2011_3', @provider='MSDASQL', @datasrc='TECDOC_CD_3_2011'
Сразу скажу: вариант с ковырянием в текдок из MS SQL сервера - не самый удачный. Во-первых, производительность переноса данных сравнительно невелика (по сравнению, скажем, с переносом с помощью самописной Java-программы и JDBC-ODBC моста). Во-вторых, что уже совсем критично: при попытке выполнения INSERT ... SELECT запроса, переносящего данные из Tecdoc`а в подключенный как Linked Server MySQL, BLOB / TEXT данные выудить не получается:
OLE DB provider "MSDASQL" for linked server returned message "Вставка или обновление на основе запроса значений BLOB не поддерживается."
Пытался прилинковать ТекДок 2012_1 к MSSQL2012 RC0. Прилинковался успешно, проверка соединения успешна, но при попытке открыть список таблиц Текдока выдается следующее:
ОтветитьУдалитьНе удалось получить набор строк схемы "DBSCHEMA_TABLES" поставщика OLE DB "SQL Server" для связанного сервера "(null)". Поставщик поддерживает интерфейс, но возвращает код ошибки при его использовании. (Microsoft SQL Server, Error: 7311)
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=09.00.1399&EvtSrc=MSSQLServer&EvtID=7311&LinkId=20476
А тебе удавалось раскрыть список таблиц?
Да, у меня таблички раскрывались, и запросы выполнялись без проблем (правда в SQLServer 2008 и с текдоком 2011_3). Но я ещё перенастраивал немного MSDASQL, как писал тут: http://barbitoff.blogspot.com/2011/09/mysql-ms-sql-server-2008-odbc.html. Попробуй, может поможет
УдалитьСпасибо за подсказку. Таблички пока не раскрываются с той же ошибкой, но SELECT'ы начали выполняться. Или все дело оказалось в троеточии? Вчера писал:
ОтветитьУдалитьUSE [TECDOC]
SELECT TOP 100 * FROM TABLE
Да, с селектами проблема была вероятнее всего в троеточии, я в свое время тоже долго не мог понять, почему селекты не идут.
УдалитьУ меня Windows 7 x64 и в Источники данных (ODBC) вообще не появился драйвер Transbase.
ОтветитьУдалитьТолько ODBC, MySQL и Excel, Access.
Раньше на Windows XP появлялся Transbase и подключался без проблем.
Вы не знаете почему так?
С Уважением, Александр.
Может из-за 64-битности? Потому что у меня в 32-битной Win7 всё в порядке.
УдалитьПопробуйте подключить как 32х битный
ОтветитьУдалитьПУСК-Выполнить
c:\Windows\SysWOW64\odbcad32.exe
Про подключение 32х битных драйверов в Server 2008 можете почитать тут
http://www.bisql.net/2010/08/32-bit-odbc-drivers-in-windows-server-2008-r2/
Так и подключался.
ОтветитьУдалитьПо небольшому мануалу:
http://sviptr.2h.by/HowTo/ODBCTecDoc
(Y) cool. pabotaet otlichno
ОтветитьУдалить