3

SQL2012 データベースを使用した従来の ASP アプリケーションがあります。必要なデータを格納するのに十分な大きさではなかったため、最近、テーブルの列を varchar(8000) から varchar(max) に変更しました。

格納する必要があるすべてのデータで列を更新できますが、出力パラメーターとして列データを返すために使用する SP は 4000 文字しか返していません (少なくとも、次のコードの結果はそれを示しています:

Len(cmd.Parameters("@detail").Value)

SP への呼び出しの一部として、次のパラメーター宣言を使用しています。

cmd.Parameters.Append cmd.CreateParameter("@detail", 8, 2,  -1, strDetail)

8 は adBStr の値です。8 を 200、201、203 に変更しようとしましたが、次のエラーが発生します。

エラー: 800a0e7c

説明:
パラメータ オブジェクトが正しく定義されていません。一貫性のない、または不完全な情報が提供されました。

データの更新は難しいと思いましたが、列の内容全体を取得する方法がわかりません。

列の DATALENGTH を返していますが、長さは 10,536 と表示されていますが、出力パラメーターを介して返されるスペースを含めて 4,000 文字しか取得できません。Visual Studio からすべてのデータ (10k 文字) を見ることができるので、そこにあることがわかります。

私の接続文字列 Provider=SQLOLEDB.1. これは問題になる可能性がありますか?新しい SQL Server Native Client 11.0 OLE DB Provider - SQLNCLI11 を使用する必要がありますか??

誰でもアイデアはありますか?

乾杯、マイク。

4

1 に答える 1