Comment lier un serveur SQL Server 2008 à un serveur SQLite?

8

Je souhaite «lier» un serveur SQLite à un serveur SQL Server 2008. Par exemple en utilisant la sp_addlinkedservercommande. Comment puis-je faire cela?

J'ai cherché loin, mais je n'ai trouvé aucune solution à ce problème. La tentative la plus proche que j'ai trouvée est ici:

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
la source

Réponses:

2

Vous aurez peut-être plus de chance avec un pilote ODBC. Il y en a quelques-uns sur Google, dont l'un est http://www.patthoyts.tk/sqlite3odbc.html .

Théoriquement, si vous pouvez installer le pilote ODBC, vous pouvez créer un DSN système. Si vous pouvez créer un DSN système, vous pouvez l'ajouter en tant que serveur lié.

Bien sûr, OLEDB et ODBC ont tendance à tomber si les pilotes OLEDB / ODBC sont 32 bits et le serveur SQL est 64 bits; Je ne crois pas que vous puissiez instancier un pilote OLEDB / ODBC 32 bits en SQL 64 bits (je pense que nous avons eu des problèmes similaires avec Excel)

HTH

J.

jimbobmcgee
la source
0

Avez-vous OleSQLite.SQLiteSource.1dans votre liste de fournisseurs de serveurs liés? Sinon, vous devez vous assurer que vous avez installé ces pilotes sur votre ordinateur (et redémarré le service SQL Server au moins pour vous assurer qu'il les récupère).

Rob Farley
la source