mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-20 19:15:54 +00:00
194 lines
3.2 KiB
C++
194 lines
3.2 KiB
C++
//------------------------------------------------------------------------------
|
|
/*
|
|
Copyright (c) 2011-2013, OpenCoin, Inc.
|
|
*/
|
|
//==============================================================================
|
|
|
|
Database::Database (const char* host)
|
|
: mNumCol (0)
|
|
{
|
|
mHost = host;
|
|
}
|
|
|
|
Database::~Database ()
|
|
{
|
|
}
|
|
|
|
bool Database::getNull (const char* colName)
|
|
{
|
|
int index;
|
|
|
|
if (getColNumber (colName, &index))
|
|
{
|
|
return getNull (index);
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
char* Database::getStr (const char* colName, std::string& retStr)
|
|
{
|
|
int index;
|
|
|
|
if (getColNumber (colName, &index))
|
|
{
|
|
return getStr (index, retStr);
|
|
}
|
|
|
|
return NULL;
|
|
}
|
|
|
|
int32 Database::getInt (const char* colName)
|
|
{
|
|
int index;
|
|
|
|
if (getColNumber (colName, &index))
|
|
{
|
|
return getInt (index);
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
float Database::getFloat (const char* colName)
|
|
{
|
|
int index;
|
|
|
|
if (getColNumber (colName, &index))
|
|
{
|
|
return getFloat (index);
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
bool Database::getBool (const char* colName)
|
|
{
|
|
int index;
|
|
|
|
if (getColNumber (colName, &index))
|
|
{
|
|
return getBool (index);
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
int Database::getBinary (const char* colName, unsigned char* buf, int maxSize)
|
|
{
|
|
int index;
|
|
|
|
if (getColNumber (colName, &index))
|
|
{
|
|
return (getBinary (index, buf, maxSize));
|
|
}
|
|
|
|
return (0);
|
|
}
|
|
|
|
Blob Database::getBinary (const std::string& strColName)
|
|
{
|
|
int index;
|
|
|
|
if (getColNumber (strColName.c_str (), &index))
|
|
{
|
|
return getBinary (index);
|
|
}
|
|
|
|
return Blob ();
|
|
}
|
|
|
|
std::string Database::getStrBinary (const std::string& strColName)
|
|
{
|
|
// YYY Could eliminate a copy if getStrBinary was a template.
|
|
return strCopy (getBinary (strColName.c_str ()));
|
|
}
|
|
|
|
uint64 Database::getBigInt (const char* colName)
|
|
{
|
|
int index;
|
|
|
|
if (getColNumber (colName, &index))
|
|
{
|
|
return getBigInt (index);
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
// returns false if can't find col
|
|
bool Database::getColNumber (const char* colName, int* retIndex)
|
|
{
|
|
for (unsigned int n = 0; n < mColNameTable.size (); n++)
|
|
{
|
|
if (strcmp (colName, mColNameTable[n].c_str ()) == 0)
|
|
{
|
|
*retIndex = n;
|
|
return (true);
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
#if 0
|
|
int Database::getSingleDBValueInt (const char* sql)
|
|
{
|
|
int ret;
|
|
|
|
if ( executeSQL (sql) && startIterRows ()
|
|
{
|
|
ret = getInt (0);
|
|
endIterRows ();
|
|
}
|
|
else
|
|
{
|
|
//theUI->statusMsg("ERROR with database: %s",sql);
|
|
ret = 0;
|
|
}
|
|
return (ret);
|
|
}
|
|
#endif
|
|
|
|
#if 0
|
|
float Database::getSingleDBValueFloat (const char* sql)
|
|
{
|
|
float ret;
|
|
|
|
if (executeSQL (sql) && startIterRows () && getNextRow ())
|
|
{
|
|
ret = getFloat (0);
|
|
endIterRows ();
|
|
}
|
|
else
|
|
{
|
|
//theUI->statusMsg("ERROR with database: %s",sql);
|
|
ret = 0;
|
|
}
|
|
|
|
return (ret);
|
|
}
|
|
#endif
|
|
|
|
#if 0
|
|
char* Database::getSingleDBValueStr (const char* sql, std::string& retStr)
|
|
{
|
|
char* ret;
|
|
|
|
if (executeSQL (sql) && startIterRows ())
|
|
{
|
|
ret = getStr (0, retStr);
|
|
endIterRows ();
|
|
}
|
|
else
|
|
{
|
|
//theUI->statusMsg("ERROR with database: %s",sql);
|
|
ret = 0;
|
|
}
|
|
|
|
return (ret);
|
|
}
|
|
#endif
|
|
|
|
// vim:ts=4
|