Wie verbinde ich einen SQL Server 2008-Server mit einem SQLite-Server?

8

Ich möchte einen SQLite-Server mit einem SQL Server 2008-Server "verknüpfen". ZB mit dem sp_addlinkedserverBefehl. Wie mache ich das?

Ich habe weit und breit gesucht, aber keine Lösung für dieses Problem gefunden. Der nächste Versuch, den ich gefunden habe, ist hier:

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'
user48962
quelle

Antworten:

2

Mit einem ODBC-Treiber haben Sie möglicherweise mehr Glück. Es gibt einige bei Google, von denen eine http://www.patthoyts.tk/sqlite3odbc.html ist .

Wenn Sie den ODBC-Treiber installieren können, können Sie theoretisch einen System-DSN erstellen. Wenn Sie einen System-DSN erstellen können, können Sie ihn als Verbindungsserver hinzufügen.

Natürlich neigen sowohl OLEDB als auch ODBC zum Umfallen, wenn die OLEDB / ODBC-Treiber 32-Bit und der SQL Server 64-Bit sind. Ich glaube nicht, dass Sie einen 32-Bit-OLEDB / ODBC-Treiber in 64-Bit-SQL instanziieren können (ich denke, wir hatten ähnliche Probleme mit Excel).

HTH

J. J.

jimbobmcgee
quelle
0

Haben Sie OleSQLite.SQLiteSource.1in Ihrer Liste der Linked Server-Anbieter? Wenn nicht, sollten Sie sicherstellen, dass Sie diese Treiber auf Ihrem Computer installiert haben (und den SQL Server-Dienst zumindest neu gestartet haben, um sicherzustellen, dass er sie aufnimmt).

Rob Farley
quelle