我正在使用 odbc 在本机 c++ 中创建一个应用程序。我正在调用具有十进制参数的 sql server 存储过程。我将浮点数传递给该参数。到目前为止的代码:
SQLDECIMAL *sql_param = new SQLDECIMAL( param);
if( SQL_ERROR == ( result = SQLBindParameter( statement_handle, 5, SQL_PARAM_INPUT, SQL_C_FLOAT, SQL_DECIMAL, 12, 6, sql_param, 0, NULL ) ) ){
std::wstring error = get_error_message( SQL_HANDLE_STMT, statement_handle );
throw GenericException( error );
}
参数是一个浮点数。
存储在表中的始终为 0,而不是实际值 1.45。我猜正在发生一些转换,但我无法弄清楚正确的转换。SQL_C_FLOAT -> SQL_DECIMAL?