Main Page | Class Hierarchy | Class List | Directories | File List | Class Members | File Members | Related Pages

Functionality Summary

This is a summary of the DatabaseLayer functionality

Initializing the database layer
SQLite:
 DatabaseLayer* pDatabase = new SqliteDatabaseLayer(_("mydb.db"));
Firebird:
 DatabaseLayer* pDatabase = new FirebirdDatabaseLayer(_("mydb.db"));

Inserting data
pDatabase->RunQuery(_("INSERT INTO table1 (column1, column2) VALUES ('One', 'Two')"));

Inserting data with a prepared statement
PreparedStatement* pStatement = pDatabase->PrepareStatement(_("INSERT INTO table1 (column1, column2) VALUES (?, ?)"));
if (pStatement)
{
 pStatement->SetParamString(1, _("One"));
 pStatement->SetParamString(2, _("Two"));
 pStatement->RunQuery():
 pDatabase->CloseStatement(pStatement);
}

Retrieving data
DatabaseResultSet* pResults = pDatabaseLayer->RunQueryWithResults(_("SELECT * FROM table1"));
if (pResults)
{
 while (pResults->Next())
 {
  wxString strOne = pResults->GetResultString(_("column1"));
  wxString strTwo = pResults->GetResultString(_("column2"));
 }
 pDatabase->CloseResultSet(pResults);
}

Retrieving data with a prepared statement
PreparedStatement* pStatement = pDatabase->PrepareStatement(_("SELECT * FROM table1 WHERE column1 - ?)"));
if (pStatement)
{
 pStatement->SetParamString(1, _("One"));
 DatabaseResultSet* pResults = pStatement->RunQueryWithResults():
 if (pResults)
 {
  while (pResults->Next())
  {
   wxString strOne = pResults->GetResultString(_("column1"));
   wxString strTwo = pResults->GetResultString(_("column2"));
  }
  pDatabase->CloseResultSet(pResults);
 }
 pDatabase->CloseStatement(pStatement);
}

Transactions - (If the database backend doesn't support transactions, then these won't do anything)
Start the transaction
 pDatabase->BeginTransaction();
Commit the transaction
 pDatabase->Commit();
Rollback the transaction
 pDatabase->RollBack();

Perl DBD style Prepared Statement usage:
PreparedStatement* pStatement = pDatabase->prepare('INSERT INTO table1 (column1) VALUES (?)');
for (unsigned int i=0; i<array.size(); i++)
{
 pStatement->SetParamString(1, array[i]);
 pStatement->RunQuery();
}
pDatabase->CloseStatement(pStatement);

Shutting down a database connection
pDatabase->Close();

Exception Handling:
DatabaseLayer methods can throw exceptions of type DatabaseLayerException
try
{
 ...
}
catch (DatabaseLayerException& e)
{
 wxLogError(wxString::Format(_("Error (%d): %s"), e.GetErrorCode(), e.GetErrorMessage().c_str()));
}


Generated on Sat May 13 17:31:38 2006 for databaselayer by  doxygen 1.4.1