void do_sqlite3_raise_error(VALUE self, sqlite3 *result, VALUE query) { int errnum = sqlite3_errcode(result); const char *message = sqlite3_errmsg(result); VALUE sql_state = rb_str_new2(""); data_objects_raise_error(self, do_sqlite3_errors, errnum, message, query, sql_state); }
void do_postgres_raise_error(VALUE self, PGresult *result, VALUE query) { const char *message = PQresultErrorMessage(result); char *sql_state = PQresultErrorField(result, PG_DIAG_SQLSTATE); int postgres_errno = MAKE_SQLSTATE(sql_state[0], sql_state[1], sql_state[2], sql_state[3], sql_state[4]); PQclear(result); data_objects_raise_error(self, do_postgres_errors, postgres_errno, message, query, rb_str_new2(sql_state)); }
void do_mysql_raise_error(VALUE self, MYSQL *db, VALUE query) { int errnum = mysql_errno(db); const char *message = mysql_error(db); VALUE sql_state = Qnil; #ifdef HAVE_MYSQL_SQLSTATE sql_state = rb_str_new2(mysql_sqlstate(db)); #endif data_objects_raise_error(self, do_mysql_errors, errnum, message, query, sql_state); }