SQLネイティブクライアントでフェールオーバーパートナーパラメータのみを提供できるため、SQL Native Clientを使用するようにASPコードを切り替えるので、フェールオーバーパートナーと共にミラーリングされたデータベースに接続できます。 Driver = {SQL Server}のnvarchar(max)列を返すprocを実行すると、すべて正常に動作します。 Driver = {SQL Server Native Client 10.0}で小文字を返すprocsを実行すると問題なく動作します。 Driver = {SQL Server Native Client 10.0}を使用しているときにnvarchar(max)列を返すprocを実行しようとするときだけです。私はエラーを取得します。私たちは、だから私は偶数列に言及していないよデータプロバイダまたは他のサービスがE_FAILステータスを返したのはなぜですか? SQLネイティブクライアント
rs.Open cmdTemplate
を打つように、エラーはすぐに起こります。このようCONNの文字列を設定:このような
if bUseSQLNative then
connString = "Driver={SQL Server Native Client 10.0}; Network=DBMSSOCN; server=" & rs("SERVER_NAME") & "," & rs("PORT_NUM") & ";database=" & rs("DATABASE_NAME")
connString = connString & ";uid=" & rs("USER_NAME") & ";pwd=" & UnProtectValueEx(ConnSaltForDBPwd(), rs("CONNECTION_NAME"), rs("PASSWORD"))
else
connString = "Driver={SQL Server}; Network=DBMSSOCN; server=" & rs("SERVER_NAME") & "," & rs("PORT_NUM") & ";database=" & rs("DATABASE_NAME")
connString = connString & ";uid=" & rs("USER_NAME") & ";password=" & UnProtectValueEx(ConnSaltForDBPwd(), rs("CONNECTION_NAME"), rs("PASSWORD"))
end if
connString = connString & ";"
そして、開口部:
set rs = server.CreateObject("ADODB.RecordSet")
rs.CursorLocation = 3
rs.CursorType = 3
rs.CacheSize = 50
on error resume next
rs.Open cmdTemplate
エラーは次のとおりです。 のMicrosoftカーソルエンジン(0x800A0001) データプロバイダまたは他のサービスがE_FAILステータスを返しました。
http://social.msdn.microsoft.com/forums/en-US/sqldataaccess/thread/ac06f814-1814-4861-b2cd-8d5e507a7ee3/ - 関連性がありますか?しかし、それは入力パラメータでした。これは、nvarchar(max)の列を選択するだけです。 –
これは間違いなく関連しています。ストアドプロシージャにキャスト(SEND_TEXTをntextとして)[SEND_TEXT]を追加すると、エラーなく動作します。だから、それは何かADOのデータ型で、ntextとnvarchar(max)が違って見えますか? –
この問題を報告している他の人も見つかりました。これはASP classicにとってユニークではありません。 Visual Foxproにも影響を及ぼすプロバイダーまたはドライバーの制限のいずれかが表示されます。 http://www.bsslimited.com/articles/classic-asp-and-sql-server-2008/およびhttp://connect.microsoft.com/SQLServer/feedback/details/467300/problem-with-varchar-max -via-sql-native-client – HK1