int new_artefact (db_t *database, int artefactClassID) { db_result_t *result; dstring_t *ds; /* get artefact class */ ds = dstring_new("SELECT * FROM " DB_TABLE_ARTEFACT_CLASS " WHERE artefactClassID = %d", artefactClassID); result = db_query_dstring(database, ds); debug(DEBUG_ARTEFACT, "new_artefact: %s", dstring_str(ds)); /* no such class */ if (db_affected_rows(database) != 1) throw(SQL_EXCEPTION, "new_artefact: no such artefact class"); ds = dstring_new("INSERT INTO " DB_TABLE_ARTEFACT " (artefactClassID, caveID, initiated)" " VALUES (%d, 0, 0)", artefactClassID); db_query_dstring(database, ds); debug(DEBUG_ARTEFACT, "new_artefact: %s", dstring_str(ds)); /* successfully inserted? */ if (db_affected_rows(database) != 1) throw(SQL_EXCEPTION, "new_artefact: could not insert artefact"); return db_sequence_value(database, "Artefact_artefactID_seq"); }
int new_artefact (db_t *database, int artefactClassID) { db_result_t *result; /* get artefact class */ result = db_query(database, "SELECT * FROM Artefact_class " "WHERE artefactClassID = %d", artefactClassID); /* no such class */ if (db_affected_rows(database) != 1) throw(SQL_EXCEPTION, "new_artefact: no such artefact class"); db_query(database, "INSERT INTO " DB_TABLE_ARTEFACT " (artefactClassID, caveID, initiated)" " VALUES (%d, 0, 0)", artefactClassID); /* successfully inserted? */ if (db_affected_rows(database) != 1) throw(SQL_EXCEPTION, "new_artefact: could not insert artefact"); return db_sequence_value(database, "Artefact_artefactID_seq"); }