среда, 1 августа 2012 г.

Linked server SQLite

  1. Установить ODBC драйвер для SQLite. В Win7 64 были какие-то косяки с 32-разрядным драйвером SQLite, поэтому пришлось ставить 64-разрядный драйвер. Потом пришлось ставить и 64-разрядный SQL Server, т.к. 32-разрядный не желал линковаться с 64 ODBC SQLite.
  2. Создать системный DSN (Панель управления - Администрирование - Источники данных (ODBC).
  3. В провайдере на sql server'е поставить пару галок, как на картинке:


Скрипт созданного linked server:
-- @server задается имя сервера, @datasrc это имя созданного системного DSN

EXEC master.dbo.sp_addlinkedserver @server = N'dns', @srvproduct=N'SQLite3 Datasource', @provider=N'MSDASQL', @datasrc=N'dns'
GO
EXEC master.dbo.sp_serveroption @server=N'dns', @optname=N'collation compatible', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'dns', @optname=N'data access', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'dns', @optname=N'dist', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'dns', @optname=N'pub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'dns', @optname=N'rpc', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'dns', @optname=N'rpc out', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'dns', @optname=N'sub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'dns', @optname=N'connect timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'dns', @optname=N'collation name', @optvalue=null
GO
EXEC master.dbo.sp_serveroption @server=N'dns', @optname=N'lazy schema validation', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'dns', @optname=N'query timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'dns', @optname=N'use remote collation', @optvalue=N'true'

Пример запроса:

SELECT * FROM dns...table1

Комментариев нет:

Отправить комментарий