Exemple #1
0
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);
}
Exemple #2
0
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));
}
Exemple #3
0
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);
}