C++ unixODBC SQLExecute()错误
有时,在插入过程中,我从SQLExecute()收到非常奇怪的错误消息。我不知道如何处理这个问题,其他问题都可以 日志C++ unixODBC SQLExecute()错误,c++,postgresql,odbc,unixodbc,C++,Postgresql,Odbc,Unixodbc,有时,在插入过程中,我从SQLExecute()收到非常奇怪的错误消息。我不知道如何处理这个问题,其他问题都可以 日志 [ODBC][67383][1485443238.457802][SQLPrepare.c][196] Entry: Statement = 0x101022600 SQL = [INSERT INTO Core_Message(channel_id, date, member_id, reply_id) VALUES(25, '2017
[ODBC][67383][1485443238.457802][SQLPrepare.c][196]
Entry:
Statement = 0x101022600
SQL = [INSERT INTO Core_Message(channel_id, date, member_id, reply_id) VALUES(25, '2017-01-26 18:07:18', 4, NULL)
][length = 109 (SQL_NTS)]
[ODBC][67383][1485443238.457893][SQLPrepare.c][377]
Exit:[SQL_SUCCESS]
[ODBC][67383][1485443238.458014][SQLExecute.c][187]
Entry:
Statement = 0x101022600
[ODBC][67383][1485443238.458189][SQLExecute.c][357]
Exit:[SQL_ERROR]
DIAG [HY000] no error information;
Error while preparing parameters
[ODBC][67383][1485443238.458543][SQLFreeHandle.c][381]
Entry:
Handle Type = 3
Input Handle = 0x101022600
[ODBC][67383][1485443238.458670][SQLFreeHandle.c][494]
Exit:[SQL_SUCCESS]
代码
SQLLEN length(0);
if (!isSuccess(SQLPrepare(_statement, (unsigned char *)query.c_str(), SQL_NTS))) {
_status = StatementStatus::Fault;
return false;
}
for (std::size_t i=0; i<reference_vector.size(); i++) {
length = reference_vector.at(i).get().length();
if (!isSuccess(SQLBindParameter(_statement, i + 1, SQL_PARAM_INPUT, SQL_C_BINARY, SQL_VARBINARY, reference_vector.at(i).get().length(), 0, (char *)reference_vector.at(i).get().c_str(), (SQLLEN)reference_vector.at(i).get().length(), &length))) {
_status = StatementStatus::Fault;
return false;
}
}
if (!isSuccess(SQLExecute(_statement))) {
_status = StatementStatus::Fault;
return false;
}
SQLLEN长度(0);
if(!issucess(SQLPrepare(_语句,(unsigned char*)query.c_str(),SQL_NTS))){
_状态=语句状态::故障;
返回false;
}
对于(std::size_t i=0;i请提供一个完整的自包含程序来显示问题。在您未显示的代码中可能有太多错误的可能性。具体来说,我们看不到您使用的参数值。请提供一个完整的自包含程序来显示问题。存在太多错误的可能性您未显示的代码中可能存在错误。具体而言,我们无法看到您使用的参数值。