2016-03-22 20 views
0

Wir verwenden klassische ASP- und SQL Server 2012-Standard Edition.Befehlsdialekt wird von SQLNCLI11-Provider nicht unterstützt SQL Server 2012

Unsere Verbindungszeichenfolge ist wie unten

provider=SQLNCLI11;Data Source=xxx; MultiSubnetFailover=True; Initial Catalog=xxx; User ID = xxx; Password =xxxxxx; DataTypeCompatibility=80; Integrated Security=SSPI; MARS Connection=true; 

Wir OLE DB-Provider wurden mit und es funktioniert in unserer Anwendung in Ordnung. Als wir versuchen, Anbieter von SQL Server Native Client (SQLNCLI 11) zu ändern, es wirft Fehler

Befehl Dialekt wird nicht von SQLNCLI11 Anbieter SQL Server unterstützt 2012

auf unterhalb der Linie

set ocmd = server.CreateObject("ADODB.Command") 'created command object 
oCmd.Dialect = "{5D531CB2-E6Ed-11D2-B252-00C04F681B71}" ' assigned dialect 
oCmd.Execute , , 1024  'Error line 
+0

Überrascht, wie wenig es im Internet über dieses Problem gibt. – Lankymart

Antwort

0

Musste diesen einen Blick für eine Weile nicht sehen.

Die Dialect Eigenschaft des ADODB.Command Objekt hat diese Beschreibung

Von ADO API Reference - Dialect Property
Gibt den Dialekt der CommandText oder CommandStream Eigenschaften. Der Dialekt definiert die Syntax und die allgemeinen Regeln, die der Provider verwendet, um die Zeichenfolge oder den Stream zu analysieren.

So ist die Dialect an einen Provider bestimmt, jetzt, wo Sie den Anbieter gewechselt haben, ist der Befehl Dialect nicht mehr für diese spezifische GUID Referenz unterstützt, das ist nicht zu sagen, dass SQLNCLI11 nicht andere unterstützen.

Die spezifische Dialect

{5D531CB2-E6Ed-11D2-B252-00C04F681B71} 

Bietet Unterstützung für Applying an XSL Transformation mit dem SQLXMLOLEDB Anbieter.

Ich bezweifle, dass es im SQL Server Native Client eine entsprechende Einstellung gibt, da SQL Server 2012 die Klausel FOR XML für die Rückgabe von XML-Daten unterstützt.