void MyTblFmncAMToolChar::updateRec( FmncAMToolChar* rec ) { unsigned long l[5]; my_bool n[5]; my_bool e[5]; l[1] = rec->x1OsrefFmncKToolchar.length(); l[2] = rec->Val.length(); l[3] = rec->Comment.length(); MYSQL_BIND bind[] = { bindUbigint(&rec->refFmncMTool,&(l[0]),&(n[0]),&(e[0])), bindCstring((char*) (rec->x1OsrefFmncKToolchar.c_str()),&(l[1]),&(n[1]),&(e[1])), bindCstring((char*) (rec->Val.c_str()),&(l[2]),&(n[2]),&(e[2])), bindCstring((char*) (rec->Comment.c_str()),&(l[3]),&(n[3]),&(e[3])), bindUbigint(&rec->ref,&(l[4]),&(n[4]),&(e[4])) }; if (mysql_stmt_bind_param(stmtUpdateRec, bind)) throw DbsException("DbsException / MySQL: error binding to statement! (TblFmncAMToolChar / stmtUpdateRec)\n"); if (mysql_stmt_execute(stmtUpdateRec)) throw DbsException("DbsException / MySQL: error executing statement! (TblFmncAMToolChar / stmtUpdateRec)\n"); };
static void execute_prepare_query(const char *query, ulonglong exp_count) { MYSQL_STMT *stmt; ulonglong affected_rows; int rc; stmt= mysql_simple_prepare(mysql, query); check_stmt(stmt); rc= mysql_stmt_execute(stmt); myquery(rc); affected_rows= mysql_stmt_affected_rows(stmt); if (!opt_silent) fprintf(stdout, "\n total affected rows: `%ld` (expected: `%ld`)", (long) affected_rows, (long) exp_count); DIE_UNLESS(affected_rows == exp_count); mysql_stmt_close(stmt); }
void MyTblPlnrRMFaceMVertex::insertRec( PlnrRMFaceMVertex* rec ) { unsigned long l[6]; my_bool n[6]; my_bool e[6]; MYSQL_BIND bind[] = { bindUbigint(&rec->fceRefPlnrMFace,&(l[0]),&(n[0]),&(e[0])), bindUint(&rec->fceNum,&(l[1]),&(n[1]),&(e[1])), bindUbigint(&rec->refPlnrMVertex,&(l[2]),&(n[2]),&(e[2])), bindUint(&rec->rteIxVTbl,&(l[3]),&(n[3]),&(e[3])), bindUbigint(&rec->rteUref,&(l[4]),&(n[4]),&(e[4])), bindUint(&rec->ixVDir,&(l[5]),&(n[5]),&(e[5])) }; if (mysql_stmt_bind_param(stmtInsertRec, bind)) throw DbsException("DbsException / MySQL: error binding to statement! (TblPlnrRMFaceMVertex / stmtInsertRec)\n"); // IP myInsertRec.execNounq --- BEGIN if (mysql_stmt_execute(stmtInsertRec)) throw DbsException("DbsException / MySQL: error executing statement! (TblPlnrRMFaceMVertex / stmtInsertRec)\n"); rec->ref = mysql_stmt_insert_id(stmtInsertRec); // IP myInsertRec.execNounq --- END };
void MyTblFmncHistRMUserUniversal::updateRec( FmncHistRMUserUniversal* rec ) { unsigned long l[9]; my_bool n[9]; my_bool e[9]; MYSQL_BIND bind[] = { bindUbigint(&rec->refFmncMUser,&(l[0]),&(n[0]),&(e[0])), bindUint(&rec->unvIxFmncVMaintable,&(l[1]),&(n[1]),&(e[1])), bindUbigint(&rec->unvUref,&(l[2]),&(n[2]),&(e[2])), bindUint(&rec->ixFmncVCard,&(l[3]),&(n[3]),&(e[3])), bindUint(&rec->ixFmncVPreset,&(l[4]),&(n[4]),&(e[4])), bindUint(&rec->preIxFmncVMaintable,&(l[5]),&(n[5]),&(e[5])), bindUbigint(&rec->preUref,&(l[6]),&(n[6]),&(e[6])), bindUint(&rec->start,&(l[7]),&(n[7]),&(e[7])), bindUbigint(&rec->ref,&(l[8]),&(n[8]),&(e[8])) }; if (mysql_stmt_bind_param(stmtUpdateRec, bind)) throw DbsException("DbsException / MySQL: error binding to statement! (TblFmncHistRMUserUniversal / stmtUpdateRec)\n"); if (mysql_stmt_execute(stmtUpdateRec)) throw DbsException("DbsException / MySQL: error executing statement! (TblFmncHistRMUserUniversal / stmtUpdateRec)\n"); };
void MyTblFmncQFusMNTool::updateRec( FmncQFusMNTool* rec ) { unsigned long l[7]; my_bool n[7]; my_bool e[7]; l[5] = rec->srefKLvl.length(); MYSQL_BIND bind[] = { bindUbigint(&rec->jref,&(l[0]),&(n[0]),&(e[0])), bindUint(&rec->jnum,&(l[1]),&(n[1]),&(e[1])), bindUbigint(&rec->mref,&(l[2]),&(n[2]),&(e[2])), bindUbigint(&rec->ref,&(l[3]),&(n[3]),&(e[3])), bindUbigint(&rec->trnRefFmncMPerson,&(l[4]),&(n[4]),&(e[4])), bindCstring((char*) (rec->srefKLvl.c_str()),&(l[5]),&(n[5]),&(e[5])), bindUbigint(&rec->qref,&(l[6]),&(n[6]),&(e[6])) }; if (mysql_stmt_bind_param(stmtUpdateRec, bind)) throw DbsException("DbsException / MySQL: error binding to statement! (TblFmncQFusMNTool / stmtUpdateRec)\n"); if (mysql_stmt_execute(stmtUpdateRec)) throw DbsException("DbsException / MySQL: error executing statement! (TblFmncQFusMNTool / stmtUpdateRec)\n"); };
static int test_left_join_view(MYSQL *mysql) { MYSQL_STMT *stmt; int rc, i; const char *query= "select t1.a, v1.x from t1 left join v1 on (t1.a= v1.x);"; rc = mysql_query(mysql, "DROP TABLE IF EXISTS t1,v1"); check_mysql_rc(rc, mysql); rc = mysql_query(mysql, "DROP VIEW IF EXISTS v1,t1"); check_mysql_rc(rc, mysql); rc= mysql_query(mysql,"CREATE TABLE t1 (a int)"); check_mysql_rc(rc, mysql); rc= mysql_query(mysql,"insert into t1 values (1), (2), (3)"); check_mysql_rc(rc, mysql); rc= mysql_query(mysql,"create view v1 (x) as select a from t1 where a > 1"); check_mysql_rc(rc, mysql); stmt= mysql_stmt_init(mysql); rc= mysql_stmt_prepare(stmt, query, strlen(query)); check_stmt_rc(rc, stmt); for (i= 0; i < 3; i++) { int rowcount= 0; rc= mysql_stmt_execute(stmt); check_stmt_rc(rc, stmt); while (mysql_stmt_fetch(stmt) != MYSQL_NO_DATA) rowcount++; FAIL_UNLESS(3 == rowcount, "Expected 3 rows"); } mysql_stmt_close(stmt); rc= mysql_query(mysql, "DROP VIEW v1"); check_mysql_rc(rc, mysql); rc= mysql_query(mysql, "DROP TABLE t1"); check_mysql_rc(rc, mysql); return OK; }
void MyTblPlnrMStructure::updateRec( PlnrMStructure* rec ) { unsigned long l[8]; my_bool n[8]; my_bool e[8]; l[2] = rec->sref.length(); MYSQL_BIND bind[] = { bindUint(&rec->hkIxVTbl,&(l[0]),&(n[0]),&(e[0])), bindUbigint(&rec->hkUref,&(l[1]),&(n[1]),&(e[1])), bindCstring((char*) (rec->sref.c_str()),&(l[2]),&(n[2]),&(e[2])), bindDouble(&rec->x0,&(l[3]),&(n[3]),&(e[3])), bindDouble(&rec->x1,&(l[4]),&(n[4]),&(e[4])), bindDouble(&rec->y0,&(l[5]),&(n[5]),&(e[5])), bindDouble(&rec->y1,&(l[6]),&(n[6]),&(e[6])), bindUbigint(&rec->ref,&(l[7]),&(n[7]),&(e[7])) }; if (mysql_stmt_bind_param(stmtUpdateRec, bind)) throw DbsException("DbsException / MySQL: error binding to statement! (TblPlnrMStructure / stmtUpdateRec)\n"); if (mysql_stmt_execute(stmtUpdateRec)) throw DbsException("DbsException / MySQL: error executing statement! (TblPlnrMStructure / stmtUpdateRec)\n"); };
/// Executes the prepared statement. int SqlStmt_Execute(SqlStmt* self) { if( self == NULL ) return SQL_ERROR; SqlStmt_FreeResult(self); if( (self->bind_params && mysql_stmt_bind_param(self->stmt, self->params)) || mysql_stmt_execute(self->stmt) ) { ShowSQL("DB error - %s\n", mysql_stmt_error(self->stmt)); return SQL_ERROR; } self->bind_columns = false; if( mysql_stmt_store_result(self->stmt) )// store all the data { ShowSQL("DB error - %s\n", mysql_stmt_error(self->stmt)); return SQL_ERROR; } return SQL_SUCCESS; }
void MyTblFmncMUsergroup::insertRec( FmncMUsergroup* rec ) { unsigned long l[4]; my_bool n[4]; my_bool e[4]; l[2] = rec->sref.length(); l[3] = rec->Comment.length(); MYSQL_BIND bind[] = { bindUbigint(&rec->grp,&(l[0]),&(n[0]),&(e[0])), bindUbigint(&rec->own,&(l[1]),&(n[1]),&(e[1])), bindCstring((char*) (rec->sref.c_str()),&(l[2]),&(n[2]),&(e[2])), bindCstring((char*) (rec->Comment.c_str()),&(l[3]),&(n[3]),&(e[3])) }; if (mysql_stmt_bind_param(stmtInsertRec, bind)) throw DbsException("DbsException / MySQL: error binding to statement! (TblFmncMUsergroup / stmtInsertRec)\n"); // IP myInsertRec.execNounq --- BEGIN if (mysql_stmt_execute(stmtInsertRec)) throw DbsException("DbsException / MySQL: error executing statement! (TblFmncMUsergroup / stmtInsertRec)\n"); rec->ref = mysql_stmt_insert_id(stmtInsertRec); // IP myInsertRec.execNounq --- END };
std::pair<unsigned, MError> MMysqlCommand::DoExecuteNonQuery() { int param_count = mysql_stmt_param_count(p_stmt_); if (static_cast<size_t>(param_count) != in_params_.size()) { MLOG(MGetLibLogger(), MERR, "param count is not match need:", param_count, " actual is:", in_params_.size()); return std::pair<unsigned, MError>(0, MError::NotMatch); } if (mysql_stmt_bind_param(p_stmt_, &in_params_[0]) != 0) { MLOG(MGetLibLogger(), MERR, "bind failed errno:", mysql_stmt_errno(p_stmt_), " error:", mysql_stmt_error(p_stmt_)); return std::pair<unsigned, MError>(0, MError::Unknown); } if (mysql_stmt_execute(p_stmt_) != 0) { MLOG(MGetLibLogger(), MERR, "execute failed errorno:", mysql_stmt_errno(p_stmt_), " error:", mysql_stmt_error(p_stmt_)); return std::pair<unsigned, MError>(0, MError::Unknown); } unsigned affect = mysql_stmt_affected_rows(p_stmt_); return std::make_pair(affect, MError::No); }
static int dbd_mysql_pquery_internal(apr_pool_t *pool, apr_dbd_t *sql, int *nrows, apr_dbd_prepared_t *statement, MYSQL_BIND *bind) { int ret; ret = mysql_stmt_bind_param(statement->stmt, bind); if (ret != 0) { *nrows = 0; ret = mysql_stmt_errno(statement->stmt); } else { ret = mysql_stmt_execute(statement->stmt); if (ret != 0) { ret = mysql_stmt_errno(statement->stmt); } *nrows = (int) mysql_stmt_affected_rows(statement->stmt); } return ret; }
void MyTblPlnrQDtpAPar::updateRec( PlnrQDtpAPar* rec ) { unsigned long l[7]; my_bool n[7]; my_bool e[7]; l[3] = rec->x2SrefKKey.length(); l[5] = rec->Val.length(); MYSQL_BIND bind[] = { bindUbigint(&rec->jref,&(l[0]),&(n[0]),&(e[0])), bindUint(&rec->jnum,&(l[1]),&(n[1]),&(e[1])), bindUbigint(&rec->ref,&(l[2]),&(n[2]),&(e[2])), bindCstring((char*) (rec->x2SrefKKey.c_str()),&(l[3]),&(n[3]),&(e[3])), bindUbigint(&rec->refPlnrMFile,&(l[4]),&(n[4]),&(e[4])), bindCstring((char*) (rec->Val.c_str()),&(l[5]),&(n[5]),&(e[5])), bindUbigint(&rec->qref,&(l[6]),&(n[6]),&(e[6])) }; if (mysql_stmt_bind_param(stmtUpdateRec, bind)) throw DbsException("DbsException / MySQL: error binding to statement! (TblPlnrQDtpAPar / stmtUpdateRec)\n"); if (mysql_stmt_execute(stmtUpdateRec)) throw DbsException("DbsException / MySQL: error executing statement! (TblPlnrQDtpAPar / stmtUpdateRec)\n"); };
void MyTblPlnrRMStackMStructure::insertRec( PlnrRMStackMStructure* rec ) { unsigned long l[4]; my_bool n[4]; my_bool e[4]; l[2] = rec->fromSrefPlnrMLayer.length(); l[3] = rec->toSrefPlnrMLayer.length(); MYSQL_BIND bind[] = { bindUbigint(&rec->refPlnrMStack,&(l[0]),&(n[0]),&(e[0])), bindUbigint(&rec->refPlnrMStructure,&(l[1]),&(n[1]),&(e[1])), bindCstring((char*) (rec->fromSrefPlnrMLayer.c_str()),&(l[2]),&(n[2]),&(e[2])), bindCstring((char*) (rec->toSrefPlnrMLayer.c_str()),&(l[3]),&(n[3]),&(e[3])) }; if (mysql_stmt_bind_param(stmtInsertRec, bind)) throw DbsException("DbsException / MySQL: error binding to statement! (TblPlnrRMStackMStructure / stmtInsertRec)\n"); // IP myInsertRec.execNounq --- BEGIN if (mysql_stmt_execute(stmtInsertRec)) throw DbsException("DbsException / MySQL: error executing statement! (TblPlnrRMStackMStructure / stmtInsertRec)\n"); rec->ref = mysql_stmt_insert_id(stmtInsertRec); // IP myInsertRec.execNounq --- END };
void MyTblFmncQPrsMNOrg::updateRec( FmncQPrsMNOrg* rec ) { unsigned long l[8]; my_bool n[8]; my_bool e[8]; l[6] = rec->srefKFunction.length(); MYSQL_BIND bind[] = { bindUbigint(&rec->jref,&(l[0]),&(n[0]),&(e[0])), bindUint(&rec->jnum,&(l[1]),&(n[1]),&(e[1])), bindUbigint(&rec->mref,&(l[2]),&(n[2]),&(e[2])), bindUbigint(&rec->ref,&(l[3]),&(n[3]),&(e[3])), bindUint(&rec->x1Startd,&(l[4]),&(n[4]),&(e[4])), bindUint(&rec->x1Stopd,&(l[5]),&(n[5]),&(e[5])), bindCstring((char*) (rec->srefKFunction.c_str()),&(l[6]),&(n[6]),&(e[6])), bindUbigint(&rec->qref,&(l[7]),&(n[7]),&(e[7])) }; if (mysql_stmt_bind_param(stmtUpdateRec, bind)) throw DbsException("DbsException / MySQL: error binding to statement! (TblFmncQPrsMNOrg / stmtUpdateRec)\n"); if (mysql_stmt_execute(stmtUpdateRec)) throw DbsException("DbsException / MySQL: error executing statement! (TblFmncQPrsMNOrg / stmtUpdateRec)\n"); };
int gsc_mysql_stmt_execute() { int mysql_stmt; int result; int helper = 0; helper += stackGetParamInt(1, &mysql_stmt); #if DEBUG_MYSQL printf_hide("gsc_mysql_stmt_execute(mysql_stmt=%d)\n", mysql_stmt); #endif if (helper != 1) { printf_hide("scriptengine> wrongs args for gsc_mysql_stmt_execute(mysql_stmt);\n"); return stackReturnInt(0); } int ret = mysql_stmt_execute((MYSQL_STMT*)mysql_stmt); return stackReturnInt(ret); }
void message_callback(struct mosquitto *mosq, void *obj, const struct mosquitto_message *message) { // char buffer[255]; // uint8_t payload; MYSQL_BIND bind[3]; memset(bind, 0, sizeof(bind)); bind[0].buffer_type = MYSQL_TYPE_STRING; bind[0].buffer = message->topic; bind[0].buffer_length = strlen(message->topic); bind[1].buffer_type = MYSQL_TYPE_LONG; bind[1].buffer = (void *)&message->payloadlen; bind[1].buffer_length = sizeof(int); // payload = *(uint8_t *)message->payload; // sprintf(buffer, "%d", payload); printf("Topic: %s, " , message->topic ); printf("Payload len: %d\n" , message->payloadlen ); // printf("Payload:"); for (int i=0; i < message->payloadlen;i++) { printf("%0#x ", *((uint8_t *)message->payload+i) ); } printf("\n"); bind[2].buffer_type = MYSQL_TYPE_BLOB; bind[2].buffer = message->payload; bind[2].buffer_length = message->payloadlen; if (mysql_stmt_bind_param(stmt, bind)) { printf("Binding error\n"); } mysql_stmt_execute(stmt); }
void handle_query(ETERM *cmd) { ETERM *query, *resp; MYSQL_STMT *handle; char *q; query = erl_element(2, cmd); q = erl_iolist_to_string(query); erl_free_term(query); logmsg("INFO: got query: %s", q); handle = mysql_stmt_init(&dbh); if (mysql_stmt_prepare(handle, q, strlen(q))) { resp = erl_format("{error, {mysql_error, ~i, ~s}}", mysql_stmt_errno(handle), mysql_stmt_error(handle)); } else if (mysql_stmt_execute(handle)) { resp = erl_format("{error, {mysql_error, ~i, ~s}}", mysql_stmt_errno(handle), mysql_stmt_error(handle)); } else { set_mysql_results(handle); if (results) { resp = handle_mysql_result(); } else { if (mysql_stmt_field_count(handle) == 0) { resp = erl_format("{updated, ~i}", numrows); } else { resp = erl_format("{error, {mysql_error, ~i, ~s}}", mysql_stmt_errno(handle), mysql_stmt_error(handle)); } } } erl_free(q); mysql_stmt_close(handle); write_msg(resp); erl_free_term(resp); }
void MyTblPlnrQRtcList::updateRec( PlnrQRtcList* rec ) { unsigned long l[9]; my_bool n[9]; my_bool e[9]; l[3] = rec->sref.length(); MYSQL_BIND bind[] = { bindUbigint(&rec->jref,&(l[0]),&(n[0]),&(e[0])), bindUint(&rec->jnum,&(l[1]),&(n[1]),&(e[1])), bindUbigint(&rec->ref,&(l[2]),&(n[2]),&(e[2])), bindCstring((char*) (rec->sref.c_str()),&(l[3]),&(n[3]),&(e[3])), bindUint(&rec->hkIxVTbl,&(l[4]),&(n[4]),&(e[4])), bindUbigint(&rec->hkUref,&(l[5]),&(n[5]),&(e[5])), bindUbigint(&rec->refPlnrMDesign,&(l[6]),&(n[6]),&(e[6])), bindUbigint(&rec->refPlnrMLayer,&(l[7]),&(n[7]),&(e[7])), bindUbigint(&rec->qref,&(l[8]),&(n[8]),&(e[8])) }; if (mysql_stmt_bind_param(stmtUpdateRec, bind)) throw DbsException("DbsException / MySQL: error binding to statement! (TblPlnrQRtcList / stmtUpdateRec)\n"); if (mysql_stmt_execute(stmtUpdateRec)) throw DbsException("DbsException / MySQL: error executing statement! (TblPlnrQRtcList / stmtUpdateRec)\n"); };
int sql_exec(struct subdbinfo *info, struct stralloc *q, unsigned int nparams, struct stralloc *params) { int rows; MYSQL_STMT *stmt; stmt = _prepbind(info,q,nparams,params); switch (rows = mysql_stmt_execute(stmt)) { case 0: rows = mysql_stmt_affected_rows(stmt); break; default: if (mysql_stmt_errno(stmt) == ER_DUP_ENTRY) rows = 0; else die_sqlerror(info); } sql_free_result(info,stmt); return rows; }
void _MySQLCallProc(char* ProcName, MYSQL_BIND Parameters[]) { MYSQL_STMT* stmt; int status; if (!ProcName || !Parameters) return; // init statement stmt = mysql_stmt_init(mysql); if (!stmt) return; // execute stored procedure status = mysql_stmt_prepare(stmt, ProcName, strlen(ProcName)); status = mysql_stmt_bind_param(stmt, Parameters); status = mysql_stmt_execute(stmt); // close statement mysql_stmt_close(stmt); };
static int dbd_mysql_pvquery(apr_pool_t *pool, apr_dbd_t *sql, int *nrows, apr_dbd_prepared_t *statement, va_list args) { MYSQL_BIND *bind; char *arg; int ret; int nargs = 0; int i; my_bool is_null = FALSE; if (sql->trans && sql->trans->errnum) { return sql->trans->errnum; } nargs = mysql_stmt_param_count(statement->stmt); bind = apr_palloc(pool, nargs*sizeof(MYSQL_BIND)); for (i=0; i < nargs; ++i) { arg = va_arg(args, char*); bind[i].buffer_type = MYSQL_TYPE_VAR_STRING; bind[i].buffer = arg; bind[i].buffer_length = strlen(arg); bind[i].length = &bind[i].buffer_length; bind[i].is_null = &is_null; bind[i].is_unsigned = 0; } ret = mysql_stmt_bind_param(statement->stmt, bind); if (ret != 0) { *nrows = 0; } else { ret = mysql_stmt_execute(statement->stmt); *nrows = mysql_stmt_affected_rows(statement->stmt); } if (sql->trans) { sql->trans->errnum = ret; } return ret; }
static int test_ps_client_warnings(MYSQL *mysql) { int rc; MYSQL_STMT *stmt; char *query= "DROP TABLE IF EXISTS test_non_exists"; rc= mysql_query(mysql, "DROP TABLE if exists test_non_exists"); check_mysql_rc(rc, mysql); stmt= mysql_stmt_init(mysql); rc= mysql_stmt_prepare(stmt, query, strlen(query)); FAIL_IF(rc, mysql_stmt_error(stmt)); rc= mysql_stmt_execute(stmt); FAIL_IF(rc, mysql_stmt_error(stmt)); FAIL_IF(!mysql_warning_count(mysql), "Warning expected"); mysql_stmt_close(stmt); return OK; }
MError MMysqlCommand::DoExecuteReader() { int param_count = mysql_stmt_param_count(p_stmt_); if (static_cast<size_t>(param_count) != in_params_.size()) { MLOG(MGetLibLogger(), MERR, "param count is not match need:", param_count, " actual is :", in_params_.size()); return MError::NotMatch; } if (mysql_stmt_bind_param(p_stmt_, &in_params_[0]) != 0) { MLOG(MGetLibLogger(), MERR, "bind failed errno:", mysql_stmt_errno(p_stmt_), " error:", mysql_stmt_error(p_stmt_)); return MError::Unknown; } my_bool update_max_length = 1; mysql_stmt_attr_set(p_stmt_, STMT_ATTR_UPDATE_MAX_LENGTH, static_cast<void*>(&update_max_length)); if (mysql_stmt_execute(p_stmt_) != 0) { MLOG(MGetLibLogger(), MERR, "execute failed errno:", mysql_stmt_errno(p_stmt_), " error:", mysql_stmt_error(p_stmt_)); return MError::Unknown; } return BindResult(); }
bool SqlStatement::run() { TRACE("run: %s", query_); if (bindOffset_ != mysql_stmt_param_count(stmt_)) { error_ = "Invalid parameter count"; fprintf(stderr, "Cannot run argument with invalid parameter count.\n"); return false; } if (paramCount_ != 0 && mysql_stmt_bind_param(stmt_, params_) != 0) { error_ = mysql_stmt_error(stmt_); return false; } unsigned i = 0; for (bool done = false; !done; i = 1 + i % 10) { switch (mysql_stmt_execute(stmt_)) { case CR_SERVER_GONE_ERROR: case CR_SERVER_LOST_EXTENDED: case CR_SERVER_LOST: if (i) sleep(i); break; case 0: done = true; break; default: error_ = mysql_stmt_error(stmt_); fprintf(stderr, "sql: statement execution error: %s\n", error_); return false; } } mysql_stmt_store_result(stmt_); error_ = nullptr; return true; }
void MyTblPlnrQStkList::insertRec( PlnrQStkList* rec ) { unsigned long l[9]; my_bool n[9]; my_bool e[9]; l[3] = rec->sref.length(); MYSQL_BIND bind[] = { bindUbigint(&rec->jref,&(l[0]),&(n[0]),&(e[0])), bindUint(&rec->jnum,&(l[1]),&(n[1]),&(e[1])), bindUbigint(&rec->ref,&(l[2]),&(n[2]),&(e[2])), bindCstring((char*) (rec->sref.c_str()),&(l[3]),&(n[3]),&(e[3])), bindUint(&rec->ixVBasetype,&(l[4]),&(n[4]),&(e[4])), bindUbigint(&rec->dsnRefPlnrMDesign,&(l[5]),&(n[5]),&(e[5])), bindUint(&rec->ixVModtype,&(l[6]),&(n[6]),&(e[6])), bindUint(&rec->ixVFlrAligntype,&(l[7]),&(n[7]),&(e[7])), bindUint(&rec->ixVCeilAligntype,&(l[8]),&(n[8]),&(e[8])) }; if (mysql_stmt_bind_param(stmtInsertRec, bind)) throw DbsException("DbsException / MySQL: error binding to statement! (TblPlnrQStkList / stmtInsertRec)\n"); if (mysql_stmt_execute(stmtInsertRec)) throw DbsException("DbsException / MySQL: error executing statement! (TblPlnrQStkList / stmtInsertRec)\n"); rec->qref = mysql_stmt_insert_id(stmtInsertRec); };
ResultSet_T MysqlConnection_executeQuery(T C, const char *sql, va_list ap) { va_list ap_copy; MYSQL_STMT *stmt = NULL; assert(C); StringBuffer_clear(C->sb); va_copy(ap_copy, ap); StringBuffer_vappend(C->sb, sql, ap_copy); va_end(ap_copy); if (prepare(C, StringBuffer_toString(C->sb), StringBuffer_length(C->sb), &stmt)) { #if MYSQL_VERSION_ID >= 50002 unsigned long cursor = CURSOR_TYPE_READ_ONLY; mysql_stmt_attr_set(stmt, STMT_ATTR_CURSOR_TYPE, &cursor); #endif if ((C->lastError = mysql_stmt_execute(stmt))) { StringBuffer_clear(C->sb); StringBuffer_append(C->sb, "%s", mysql_stmt_error(stmt)); mysql_stmt_close(stmt); } else return ResultSet_new(MysqlResultSet_new(stmt, C->maxRows, false), (Rop_T)&mysqlrops); } return NULL; }
void MyTblFmncQSmpList::updateRec( FmncQSmpList* rec ) { unsigned long l[9]; my_bool n[9]; my_bool e[9]; l[3] = rec->sref.length(); l[6] = rec->Material.length(); MYSQL_BIND bind[] = { bindUbigint(&rec->jref,&(l[0]),&(n[0]),&(e[0])), bindUint(&rec->jnum,&(l[1]),&(n[1]),&(e[1])), bindUbigint(&rec->ref,&(l[2]),&(n[2]),&(e[2])), bindCstring((char*) (rec->sref.c_str()),&(l[3]),&(n[3]),&(e[3])), bindUbigint(&rec->supRefFmncMSample,&(l[4]),&(n[4]),&(e[4])), bindUbigint(&rec->refFmncMArticle,&(l[5]),&(n[5]),&(e[5])), bindCstring((char*) (rec->Material.c_str()),&(l[6]),&(n[6]),&(e[6])), bindUint(&rec->ixVState,&(l[7]),&(n[7]),&(e[7])), bindUbigint(&rec->qref,&(l[8]),&(n[8]),&(e[8])) }; if (mysql_stmt_bind_param(stmtUpdateRec, bind)) throw DbsException("DbsException / MySQL: error binding to statement! (TblFmncQSmpList / stmtUpdateRec)\n"); if (mysql_stmt_execute(stmtUpdateRec)) throw DbsException("DbsException / MySQL: error executing statement! (TblFmncQSmpList / stmtUpdateRec)\n"); };
void MyTblPlnrQUsrList::updateRec( PlnrQUsrList* rec ) { unsigned long l[10]; my_bool n[10]; my_bool e[10]; l[4] = rec->sref.length(); MYSQL_BIND bind[] = { bindUbigint(&rec->jref,&(l[0]),&(n[0]),&(e[0])), bindUint(&rec->jnum,&(l[1]),&(n[1]),&(e[1])), bindUbigint(&rec->ref,&(l[2]),&(n[2]),&(e[2])), bindUbigint(&rec->refPlnrMPerson,&(l[3]),&(n[3]),&(e[3])), bindCstring((char*) (rec->sref.c_str()),&(l[4]),&(n[4]),&(e[4])), bindUbigint(&rec->refPlnrMUsergroup,&(l[5]),&(n[5]),&(e[5])), bindUint(&rec->ixVState,&(l[6]),&(n[6]),&(e[6])), bindUint(&rec->ixPlnrVLocale,&(l[7]),&(n[7]),&(e[7])), bindUint(&rec->ixPlnrVUserlevel,&(l[8]),&(n[8]),&(e[8])), bindUbigint(&rec->qref,&(l[9]),&(n[9]),&(e[9])) }; if (mysql_stmt_bind_param(stmtUpdateRec, bind)) throw DbsException("DbsException / MySQL: error binding to statement! (TblPlnrQUsrList / stmtUpdateRec)\n"); if (mysql_stmt_execute(stmtUpdateRec)) throw DbsException("DbsException / MySQL: error executing statement! (TblPlnrQUsrList / stmtUpdateRec)\n"); };
int exec() { id = rand()%10000; // reset statement for reuse if(mysql_stmt_reset(stmt)) throw runtime_error(mysql_stmt_error(stmt)); // create and use input parameter memset(param, 0, sizeof(param)); param[0].buffer_type = MYSQL_TYPE_LONG; param[0].buffer = (char *)&id; param[0].buffer_length = sizeof(id); param[0].is_null = 0; param[0].length = NULL; if(mysql_stmt_bind_param(stmt,param)) throw runtime_error(mysql_stmt_error(stmt)); // create and fill result buffer memset(results, 0, sizeof(results)); results[0].buffer_type= MYSQL_TYPE_LONG; results[0].buffer = &randomNumber; results[0].buffer_length = sizeof(randomNumber); results[0].is_null = 0; results[0].length = &len1; if(mysql_stmt_bind_result(stmt, results)) throw runtime_error(mysql_stmt_error(stmt)); // execute statement if(mysql_stmt_execute(stmt)) throw runtime_error(mysql_stmt_error(stmt)); if(mysql_stmt_fetch(stmt)) randomNumber = 0; // output json JsonObj obj; obj.add("id",id); obj.add("randomNumber",randomNumber); res << obj.to_s(); return res.end(); }
DatabaseResultSPtr CDatabaseConnectionMySql::ExecuteSelect( MYSQL_STMT * statement, DatabaseValuedObjectInfosPtrArray & infos ) { DatabaseResultSPtr result; try { if ( statement ) { MySQLCheck( mysql_stmt_execute( statement ), INFO_MYSQL_STATEMENT_EXECUTION, EDatabaseExceptionCodes_StatementError, _connection ); DatabaseConnectionMySqlSPtr connection = std::static_pointer_cast< CDatabaseConnectionMySql >( shared_from_this() ); MySqlStoreResult( statement, connection ); if ( infos.empty() ) { infos = MySqlGetColumns( statement, connection ); } result = MySqlFetchResult( statement, infos, connection ); } } COMMON_CATCH( ERROR_MYSQL_EXECUTION ) return result; }