on Windows.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2180 c06c8d41-db1a-0410-9941-cceddc491573
EQSTP45V42QB7BRYM7LX3AIKXYWFLGW3V5XSKNFAZXGDEU5BJYYAC
std::auto_ptr<std::string> SQL_DBM::nextkey()
{
std::auto_ptr<std::string> result;
if (s_iterator)
{
int err = SQLITE_OK;
if ((err = ec(sqlite3_step(s_iterator))) == SQLITE_ROW)
result.reset(
new std::string(
(const char *) sqlite3_column_text(s_iterator, 0) ));
else
sqlite3_reset(s_iterator);
}
return (result);
}
static sql_datum dbm_key(
SQL_DBM *db,
std::auto_ptr<std::string> (SQL_DBM::*key)())
{
std::auto_ptr<std::string> res = (db->*key)();
if (res.get())
return sql_datum(*res.get());
else
{
sql_datum dummy;
return dummy;
}
}
sql_datum dbm_firstkey(SQL_DBM *db)
{
return dbm_key(db, &SQL_DBM::firstkey);
}
sql_datum dbm_nextkey(SQL_DBM *db)
{
return dbm_key(db, &SQL_DBM::nextkey);
}