Пример #1
0
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");
}
Пример #2
0
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");
}