0

我们使用的是经典的 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
4

1 回答 1

0

不得不看这个,有一段时间没看到了。

对象的Dialect属性ADODB.Command有这个描述

来自ADO API 参考 - 方言属性
表示CommandTextCommandStream属性的方言。方言定义了提供者用来解析字符串或流的语法和一般规则。

因此,这Dialect是特定于提供者的,既然您已经更改了提供者,则该特定 GUID 引用不再支持命令方言,这并不是说 SQLNCLI11 不支持其他提供者。

具体的Dialect

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

提供对使用SQLXMLOLEDB 提供程序应用 XSL 转换的支持。

我怀疑 SQL Server Native Client 中是否存在等效设置,因为 SQL Server 2012 支持FOR XML返回 XML 数据的子句。

于 2016-03-22T11:15:45.580 回答