8 votes

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

Je veux "lier" un serveur SQLite avec un serveur SQL Server 2008. Par exemple, en utilisant le sp_addlinkedserver commandement. Comment dois-je m'y prendre ?

J'ai cherché partout, 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'

2voto

Nash Points 1351

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

En théorie, 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 à ne pas fonctionner si les pilotes OLEDB/ODBC sont 32 bits et le serveur SQL 64 bits ; je ne pense pas que vous puissiez instancier un pilote OLEDB/ODBC 32 bits dans SQL 64 bits (je pense que nous avons eu des problèmes similaires avec Excel).

HTH

J.

0voto

Colin Points 1

Avez-vous OleSQLite.SQLiteSource.1 dans votre liste de fournisseurs de serveurs liés ? Si ce n'est pas le cas, vous devez vous assurer que vous avez installé ces pilotes sur votre machine (et redémarré le service SQL Server au moins pour vous assurer qu'il les détecte).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X