¿Cómo vincular un servidor SQL Server 2008 a un servidor SQLite?

8

Quiero "vincular" un servidor SQLite con un servidor SQL Server 2008. Por ejemplo, usando el sp_addlinkedservercomando. ¿Cómo hago esto?

He buscado por todas partes, pero no encontré solución para este problema. El intento más cercano que he encontrado está aquí:

http://www.sqlservercentral.com/Forums/Topic866972-149-1.aspx

--#################################################################################################
--Linked server Syntax for SQLite 
--using OLE provider C:\Program Files\Cherry City Software\SQLiteProvider\SQLitePV.dll
--from http://cherrycitysoftware.com/ccs/Download/Download.aspx
--#################################################################################################
DECLARE @server     sysname,
        @srvproduct nvarchar(256),
        @provider   nvarchar(256),
        @datasrc    nvarchar(100),
        @location   nvarchar(100),
        @provstr    nvarchar(100),
        @catalog    sysname,
        @sql        varchar(1000)
--add an SQLite Database as a linked server
SET @server = N'mySQLite'
SET @srvproduct = N'SQLite Provider'
SET @provider = N'OleSQLite.SQLiteSource.1'
SET @datasrc = N'C:\Data\LowellSSC.db3'
set @provstr    = ''
EXEC sp_addlinkedserver  @server,@srvproduct,@provider,@datasrc,NULL,@provstr
exec sp_addlinkedsrvlogin @rmtsrvname='mySQLite', 
@useself = N'false',
@locallogin = NULL,
@rmtuser = N'Admin',
@rmtpassword = NULL

--list all the tables and their names
EXEC sp_tables_ex 'mySQLite'
--above fails with this error:
--Msg 7302, Level 16, State 1, Procedure sp_tables_ex, Line 41
--Cannot create an instance of OLE DB provider "OleSQLite.SQLiteSource.1" for linked server "mySQLite".
GO
EXEC dbo.sp_DropServer 'mySQLite', 'DropLogins'
usuario48962
fuente

Respuestas:

2

Puede tener mejor suerte con un controlador ODBC. Hay algunos en Google, uno de los cuales es http://www.patthoyts.tk/sqlite3odbc.html .

Teóricamente, si puede instalar el controlador ODBC, puede crear un DSN del sistema. Si puede crear un DSN del sistema, puede agregarlo como un servidor vinculado.

Por supuesto, tanto OLEDB como ODBC tienden a caerse si los controladores OLEDB / ODBC son de 32 bits y el SQL Server es de 64 bits; No creo que pueda crear una instancia de un controlador OLEDB / ODBC de 32 bits en SQL de 64 bits (creo que tuvimos problemas similares con Excel)

HTH

J.

jimbobmcgee
fuente
0

¿Tiene OleSQLite.SQLiteSource.1en su lista de proveedores de servidores vinculados? De lo contrario, debe asegurarse de haber instalado esos controladores en su máquina (y reiniciado el servicio de SQL Server al menos para asegurarse de que los recupere).

Rob Farley
fuente