[To]
として定義されている列 ( ) を持つテーブルがありますnvarchar(max)
。http://msdn.microsoft.com/en-gb/library/ms186939.aspxによると、列の最大長nvarchar(max)
は 2^32 です。
4000 文字を超える文字列をバインドしようとしています (成功のしきい値は 4000 であると推測していますが、実際にはそれを証明していません) この列と HY104:1:0 で失敗します
SQLBindParameter:HY104:1:0:[Microsoft][SQL Server Native Client 11.0]無効な精度値
バインドしようとしている文字列の長さの例は 21707 です。
次の ODBC ドライバーを使用して実行しようとしましたが、結果はすべて同じです。
{SQL Server}
{SQL Server Native Client 10.0}
{SQL Server Native Client 11.0}
私が行っている実際の呼び出しは次のとおりです。
Q->ret = SQLBindParameter(Q->stmt, i, SQL_PARAM_INPUT, SQL_C_WCHAR, SQL_WVARCHAR,
(SQLINTEGER) (len ? len : 1), 0, data, (SQLINTEGER) len, 0);
どこ:-
len = 21707
data = unicode string of length 21708 characters (43414 bytes) followed by (WORD)0
SQL サーバーの詳細:
Microsoft SQL Server Express Edition with Advanced Services (64-bit)
10.50.2550.0
Windows 7 64 bit
私は何を間違っていますか?