我的表格中有一列([To]
)定义为nvarchar(max)
。根据{{3}},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 Server详细信息:
Microsoft SQL Server Express Edition with Advanced Services (64-bit)
10.50.2550.0
Windows 7 64 bit
我做错了什么?
答案 0 :(得分:3)
答案是,在绑定长字符串时,我需要使用SQL_WLONGVARCHAR而不是SQL_WVARCHAR。