Bonjour,

Je souhaite utiliser OpenRowset, avec une chaine de connexion OleDB. Mais ... je n'y arrive pas.

Si je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SELECT * FROM OPENROWSET(
          	'sqloledb', 
                'MONSERVEUR';'sa';'pwd',
                'SELECT * FROM MABASE.dbo.MATABLE'
Ca marche, et je suis bien en OleDB, mais je n'utilise pas de chaine de connexion : je passe directement en paramètre le nom du serveur, le login, et je dois préfixer le nom de ma table pour indiquer la base que j'attaque.

Si je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
SELECT * FROM OPENROWSET (
          	'MSDASQL', 
              	'DRIVER=SQL Server;SERVER=MONSERVEUR;
                 UID=sa;PWD=pwd;DATABASE=MABASE',
                'SELECT * FROM MATABLE')
Ca marche aussi, j'utilise bien une chaine de connexion, je n'ai pas besoin de préfixer le nom de ma table (puisque la chaine de connexion contient déjà le nom de la base à attaquer), mais ... il s'agit d'une chaine de connexion ODBC, si je ne m'abuse.

Or moi, j'ai à ma disposition une chaine de connexion OleDB, du type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Provider=SQLOLEDB.1;
Persist Security Info=True;
User ID=sa;
Password=pwd;
Initial Catalog=MABASE;
Data Source=MONSERVEUR
Je souhaiterais donc pouvoir faire une requête comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
SELECT * FROM OPENROWSET(
                 'sqloledb', 
                 'Provider=SQLOLEDB.1;
		 Password=pwd;
		 Persist Security Info=True;
		 User ID=sa;
		 Initial Catalog=MABASE;
		 Data Source=MONSERVEUR',
                'SELECT * FROM MATABLE')
Mais je me fais jeter, avec les messages suivants :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
OLE DB provider "SQLNCLI" for linked server "(null)" returned message "Invalid authorization specification".
OLE DB provider "SQLNCLI" for linked server "(null)" returned message "Invalid connection string attribute".
Msg 7399, Level 16, State 1, Line 12
The OLE DB provider "SQLNCLI" for linked server "(null)" reported an error. Authentication failed.
Msg 7303, Level 16, State 1, Line 12
Cannot initialize the data source object of OLE DB provider "SQLNCLI" for linked server "(null)".
J'imagine que je m'y prends mal avec OpenRowset, mais là je sèche. Si quelqu'un peut m'éclairer, je suis preneur !

Merci