C++ unixODBC 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

有时,在插入过程中,我从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-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请提供一个完整的自包含程序来显示问题。在您未显示的代码中可能有太多错误的可能性。具体来说,我们看不到您使用的参数值。请提供一个完整的自包含程序来显示问题。存在太多错误的可能性您未显示的代码中可能存在错误。具体而言,我们无法看到您使用的参数值。