2 votes

la préparation différée n'a pas pu être achevée, 3 serveurs SQL

J'ai 3 serveurs SQL et j'obtiens un comportement étrange avec OpenRowset.

Compte tenu de ce qui précède :

  • Serveur 1 = 192.168.1.1,
  • Serveur 2 = 192.168.1.2,
  • Serveur 3 = 192.168.1.3,
  • Serveur 4 = 192.168.1.4

SQL :

SELECT a.* 
FROM OPENROWSET('SQLOLEDB', 
                'Data Source=192.168.1.1;Persist Security 
Info=True;uid=sa;pwd=password',  
                'SELECT * FROM  dfs_database.dbo.dfs_vehicledata ') AS a; 

Voici ce qui est étrange : si j'exécute l'instruction SQL ci-dessus sur les serveurs .3 et .4, tout fonctionne correctement.

Cependant, si j'exécute l'instruction SQL sur le serveur .2, j'obtiens :

Le fournisseur OLE DB "SQLNCLI11" pour le serveur lié "(null)" a renvoyé le message "Deferred prepare could not be completed".

Msg 8180, Niveau 16, État 1, Ligne 7
La (les) déclaration(s) n'a (n'ont) pas pu être préparée(s).

Msg 208, Niveau 16, État 1, Ligne 7
Le nom de l'objet 'dfs_database.dbo.dfs_vehicledata' n'est pas valide.

Qu'est-ce qui fait qu'une relation ne fonctionne pas alors que les autres fonctionnent bien ? Vous avez des idées ? Il s'agit de SQL Server express, et tous ont des fournisseurs SQLNCLI11.

0voto

Vijunav Vastivch Points 2906

Utilisation OpenRowSet il se présente comme suit :

sp_configure 'Show Advanced Options', 1
GO
RECONFIGURE
GO
sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE
GO
OPENROWSET('SQLNCLI', 
'Server=ipHere\ExtentionNameifHas;Database=DBName;Uid=userName;PWD=Password;'
,'SET FMTONLY OFF;SET NOCOUNT ON;SELECT * FROM  
dfs_database.dbo.dfs_vehicledata'

0voto

Abhinav Vanam Points 1

Dans le journal des erreurs, essayez de changer le nom du fournisseur OLE DB de 'SQLOLEDB' à 'SQLNCLI11' et aussi vérifier l'emplacement de l'objet. Veillez à indiquer l'emplacement complet avec la base de données, la table, etc.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X