BufferLength
SQLGetDiagRecW API 在输出缓冲区中返回诊断信息,在此,BufferLength 参数是分配
的缓冲区的长度。
BufferLength 的缺省值是分配的字节数。将
SQL_INFX_ATTR_LENGTHINCHARFORDIAGRECW 属性设置为 TRUE 之后,处理
BufferLength 为特定的字符数。
作为 Widechar API,
一个字符 = sizeof(SQLWCHAR) 字
节。
以下列方式设置该属性:
SQLSetEnvAttr (henv,
SQL_INFX_ATTR_LENGTHINCHARFORDIAGRECW,
(SQLPOINTER)SQL_TRUE, SQL_IS_UINTEGER);
SQLSetConnectAttr (hdbc,
SQL_INFX_ATTR_LENGTHINCHARFORDIAGRECW,
(SQLPOINTER)SQL_TRUE, SQL_IS_UINTEGER);
SQLSetStmtAttr (hstmt,
SQL_INFX_ATTR_LENGTHINCHARFORDIAGRECW,
(SQLPOINTER)SQL_TRUE, SQL_IS_UINTEGER);
在连接字符串中设置 LENGTHINCHARFORDIAGRECW=1。
在 UNIX™ 系统上,在 odbc.ini 中设置 LENGTHINCHARFORDIAGRECW=1
设置 SQL_INFX_ATTR_LENGTHINCHARFORDIAGRECW 的优先顺序为:
SQLSetEnvAttr 属性的设置反映 henv、hdbc 和 hstmt 句柄。
重置 hdbc 和 hstmt 句柄,通过
o
设置 SQLSetConnectAttr
o
在连接字符串中传递属性
o
在 DSN 中启用 Length in Chars for SQLGetDiagRecW 选项
如果以前面提及的方法设置或未设置 hstmt 句柄,则设置 SQLSetStmtAttr 会
重置它。