Frage

Wir migrieren ASP-Code, die ADO verwendet, um SQL Server zu verbinden 2000. Zum größten Teil wanderte der Code ohne Probleme auf SQL Server 2008, nachdem die Verbindung zu definieren, sondern eine Art der Abfrage einen Fehler wirft, die mir ein Rätsel.

Vor SQL 2000, würden wir folgenden Code verwenden:

set oCommand = Server.CreateObject("ADODB.Command")
oCommand.ActiveConnection = oConn 'already established
oCommand.CommandType = adCmdText 

'This is simplified over the real code, but the wrapper is what we use.
oCommand.CommandText = "<Root xmlns:sql='urn:schemas-microsoft-com:xml-sql'><sql:query>" 
+ Server.HTMLEncode(sql) 
+ "</sql:query></Root>" 

oCommand.Dialect = "{5D531CB2-E6ED-11D2-B252-00C04F681B71}" 'SQL Dialect GUID
oCommand.Properties("Output Stream").Value = oXMLDoc 'Already created
oCommand.Execute , , adExecuteStream 'The point of error

Die SQL ist eine gespeicherte Prozedur-Aufruf, wenn normalerweise als funktioniert. Dieser Code setzt gegen SQL 2000 arbeiten, aber gegen SQL 2008 kehrt:

  

ERR_OPENSQLXML XMLDB.openSQLXML fehlgeschlagen. Error ‚-2147217898‘: ‚Befehl Dialekt wird von diesem Anbieter nicht unterstützt.‘

Meine erste Vermutung ist, dass SQL 2008 basiert auf MSXML Version 6, und ich brauche ein neues guid. My MSDN und Google-Fu hat mich im Stich gelassen. Alle Ergebnisse Ich finde diese GUID verwenden

Gibt es eine neue GUID? Gibt es einen besseren Weg? Ist das besser Weise weniger Aufwand als Umkodierung in ASP.NET (das Schicksal vielen Seiten bereits).

EDIT: Ich frage mich, den SQLNCLI10 Client bei Verwendung dies zu verhindern, arbeitet

?
configConnString = 
"Provider=SQLNCLI10;DataTypeCompatibility=80;Server=XYZZY;Database=ucpm;MARS Connection=True;Trusted_Connection=Yes;"
War es hilfreich?

Lösung

Anstatt sich auf die Sprache, die ich nicht gesehen habe, wie geändert dokumentiert - ASP.dll ist nach wie vor in der nächsten Version von Windows Server von der letzten Prüfung unterstützt i gemacht.

können Sie den Client überprüfen Sie verbinden die MSSQL Native Client 10 nicht installiert ist, als die alten SQL 2000 odbc / oledb Kunden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top