src/PreparedStatement.cpp
branchv_0
changeset 53 cc6ffeba0fe5
parent 48 c83119110c7b
equal deleted inserted replaced
52:656b5aecd4a2 53:cc6ffeba0fe5
    61 	SQLRETURN result = SQLBindParameter(statement, parameterNumber, SQL_PARAM_INPUT, SQL_C_BIT, SQL_INTEGER, 0, 0, &booleanParameters.back(), 0, nullptr);
    61 	SQLRETURN result = SQLBindParameter(statement, parameterNumber, SQL_PARAM_INPUT, SQL_C_BIT, SQL_INTEGER, 0, 0, &booleanParameters.back(), 0, nullptr);
    62 	if (OdbcCommon::isNotSuccessful(result)) throw SqlException(L"Unable to set boolean parameter in prepared statement", result, SQL_HANDLE_STMT, statement);
    62 	if (OdbcCommon::isNotSuccessful(result)) throw SqlException(L"Unable to set boolean parameter in prepared statement", result, SQL_HANDLE_STMT, statement);
    63 }
    63 }
    64 
    64 
    65 void PreparedStatement::setInteger(int parameterNumber, relpipe::reader::integer_t value) {
    65 void PreparedStatement::setInteger(int parameterNumber, relpipe::reader::integer_t value) {
    66 	integerParameters.emplace_back(value);
    66 	integerParameters.emplace_back(std::to_string(value));
    67 	SQLRETURN result = SQLBindParameter(statement, parameterNumber, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &integerParameters.back(), 0, nullptr);
    67 	SQLRETURN result = SQLBindParameter(statement, parameterNumber, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_BIGINT, 0, 0, (void *) integerParameters.back().c_str(), 0, nullptr);
    68 	if (OdbcCommon::isNotSuccessful(result)) throw SqlException(L"Unable to set integer parameter in prepared statement", result, SQL_HANDLE_STMT, statement);
    68 	if (OdbcCommon::isNotSuccessful(result)) throw SqlException(L"Unable to set integer parameter in prepared statement", result, SQL_HANDLE_STMT, statement);
    69 }
    69 }
    70 
    70 
    71 void PreparedStatement::setString(int parameterNumber, relpipe::reader::string_t value) {
    71 void PreparedStatement::setString(int parameterNumber, relpipe::reader::string_t value) {
    72 	std::string valueBytes = convertor.to_bytes(value);
    72 	std::string valueBytes = convertor.to_bytes(value);