我们使用的是经典的ASP和SQL Server 2012标准版。
我们的连接字符串如下
provider=SQLNCLI11;Data Source=xxx; MultiSubnetFailover=True; Initial Catalog=xxx; User ID = xxx; Password =xxxxxx; DataTypeCompatibility=80; Integrated Security=SSPI; MARS Connection=true;
我们使用的是SQLOLEDB提供程序,它在我们的应用程序中运行良好。当我们试图将提供程序更改为SQL Native客户端(SQLNCLI 11)时,它抛出了错误
SQLNCLI11提供程序SQL Server 2012 不支持命令方言
在线下
set ocmd = server.CreateObject("ADODB.Command") 'created command object
oCmd.Dialect = "{5D531CB2-E6Ed-11D2-B252-00C04F681B71}" ' assigned dialect
oCmd.Execute , , 1024 'Error line
不得不查找这个,但有一段时间没有看到它。
ADODB.Command
对象的Dialect
属性具有以下描述
来自ADO API参考-方言属性
指示CommandText
或CommandStream
属性的方言。方言定义提供程序用于解析字符串或流的语法和一般规则
因此,Dialect
是特定于某个提供程序的,现在您已经更改了该提供程序,该特定GUID引用不再支持Command Dialect,也就是说SQLNCLI11不会支持其他提供程序。
特定的Dialect
{5D531CB2-E6Ed-11D2-B252-00C04F681B71}
提供对使用SQLXMLOLEDB提供程序应用XSL转换的支持。
我怀疑SQL Server Native Client中是否有等效的设置,因为SQL Server 2012支持返回XML数据的FOR XML
子句。