我想使用ODBC在C ++中使用Table值参数。有许多用于与带有ODBC的TVP一起工作的间隙样本。例如here
一个非常好的功能是SQLbinparameter。从here表值参数,此函数应如下所示:
r = SQLBindParameter(hstmt,
2,// ParameterNumber
SQL_PARAM_INPUT,// InputOutputType
SQL_C_DEFAULT,// ValueType
SQL_SS_TABLE,// Parametertype
ITEM_ARRAY_SIZE,// ColumnSize: For a table-valued parameter this is the row array size.
0,// DecimalDigits: For a table-valued parameter this is always 0.
TVP,// ParameterValuePtr: For a table-valued parameter this is the type name of the
//table-valued parameter, and also a token returned by SQLParamData.
SQL_NTS,// BufferLength: For a table-valued parameter this is the length of the type name or SQL_NTS.
&cbTVP);// StrLen_or_IndPtr: For a table-valued parameter this is the number of rows actually use
但我收到错误:error C2065: SQL_SS_TABLE undeclared identifier
我该怎么做才能解决这个问题?
答案 0 :(得分:1)
这是一种特定于驱动程序的类型。 SQL Server示例使用位于
的 sqlncli.h 头文件C:\ Program Files \ Microsoft SQL Server \ 110 \ SDK \ Include
它将SQL_SS_TABLE
与其他SQL Server 2012驱动程序特定类型一起定义。包含此文件将解决未声明的标识符错误。
对" Viorel _"的信用;最初在MSDN论坛上回答此问题:Using new ODBC sql data typ SQL_SS_TABLE in c++
答案 1 :(得分:-1)
我猜你在Linux上试图使用这个功能,而最流行的linux ODBC包(unixODBC)根本不支持这个功能。
如果您使用官方Microsoft驱动程序(Linux上的SQL Server的Microsoft ODBC驱动程序),则可能会支持此功能。