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 ネイティブ クライアント (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 変換の適用のサポートを提供します。

FOR XMLSQL Server 2012 はXML データを返す句をサポートしているため、SQL Server Native Client に同等の設定があるとは思えません。

于 2016-03-22T11:15:45.580 に答える