SqliteDBResultSet.cpp
From Giona
(Difference between revisions)
Line 1: | Line 1: | ||
<pre> | <pre> | ||
- | |||
/* | /* | ||
* This class represents a Result set obtained by making a query on a Sqlite Database | * This class represents a Result set obtained by making a query on a Sqlite Database | ||
+ | * ------------------------------------------------------------------------------------ | ||
* Author: Rosario Marino | * Author: Rosario Marino | ||
*/ | */ | ||
Line 69: | Line 69: | ||
if((columnNumber<0)||(columnNumber>=this->columns->getLength())) | if((columnNumber<0)||(columnNumber>=this->columns->getLength())) | ||
{ | { | ||
- | Debug:: | + | Debug::debugError("char* SqliteDBResultSet::getColumnName(int columnNumber)","ERROR_INDEX_OUT_OF_RANGE","parameter: columnNumber"); |
this->lastError = ERROR_INDEX_OUT_OF_RANGE; | this->lastError = ERROR_INDEX_OUT_OF_RANGE; | ||
return NULL; | return NULL; | ||
Line 90: | Line 90: | ||
if((columnNumber<0)||(columnNumber>=this->columns->getLength())) | if((columnNumber<0)||(columnNumber>=this->columns->getLength())) | ||
{ | { | ||
- | Debug:: | + | Debug::debugError("char* SqliteDBResultSet::getFieldValue(int rowNumber, int columnNumber)","ERROR_INDEX_OUT_OF_RANGE","parameter: columnNumber"); |
this->lastError = ERROR_INDEX_OUT_OF_RANGE; | this->lastError = ERROR_INDEX_OUT_OF_RANGE; | ||
return NULL; | return NULL; | ||
Line 97: | Line 97: | ||
if((rowNumber<0)||(rowNumber>=this->getNRows())) | if((rowNumber<0)||(rowNumber>=this->getNRows())) | ||
{ | { | ||
- | Debug:: | + | Debug::debugError("char* SqliteDBResultSet::getFieldValue(int rowNumber, int columnNumber)","ERROR_INDEX_OUT_OF_RANGE","parameter: rowNumber"); |
this->lastError = ERROR_INDEX_OUT_OF_RANGE; | this->lastError = ERROR_INDEX_OUT_OF_RANGE; | ||
return NULL; | return NULL; | ||
Line 135: | Line 135: | ||
return this->data->addNode(node); | return this->data->addNode(node); | ||
} | } | ||
- | |||
</pre> | </pre> | ||
[[Creazione di applicazioni con SQLite | BACK]] | [[Creazione di applicazioni con SQLite | BACK]] | ||
[[Category:Codice Sorgente]] | [[Category:Codice Sorgente]] |
Current revision as of 17:43, 17 December 2007
/* * This class represents a Result set obtained by making a query on a Sqlite Database * ------------------------------------------------------------------------------------ * Author: Rosario Marino */ #include "SqliteDBResultSet.h" using namespace std; /* * Constructor */ SqliteDBResultSet::SqliteDBResultSet() { Debug::debug("SqliteDBResultSet::SqliteDBResultSet()"); this->columns=new GenericList(); this->data=new GenericList(); this->lastError=NO_ERROR; } /* * Destructor */ SqliteDBResultSet::~SqliteDBResultSet() { Debug::debug("SqliteDBResultSet::~SqliteDBResultSet()"); delete (this->data); delete (this->columns); } /* * Returns last error code */ int SqliteDBResultSet::getLastError() { Debug::debug("int SqliteDBResultSet::getLastError()"); return this->lastError; } /* * Returns the number of columns of the table */ int SqliteDBResultSet::getNColumns() { Debug::debug("int SqliteDBResultSet::getNColumns()"); return this->columns->getLength(); } /* * Returns the number of rows of the table */ int SqliteDBResultSet::getNRows() { Debug::debug("int SqliteDBResultSet::getNRows()"); if(this->columns->getLength()==0) return 0; int nRows=this->data->getLength()/this->columns->getLength(); return nRows; } /* * Returns the name of a column in the specified position * Returns NULL in case of error */ char* SqliteDBResultSet::getColumnName(int columnNumber) { Debug::debug("char* SqliteDBResultSet::getColumnName(int columnNumber)"); if((columnNumber<0)||(columnNumber>=this->columns->getLength())) { Debug::debugError("char* SqliteDBResultSet::getColumnName(int columnNumber)","ERROR_INDEX_OUT_OF_RANGE","parameter: columnNumber"); this->lastError = ERROR_INDEX_OUT_OF_RANGE; return NULL; } GenericListNode * columnNode= this->columns->getHead(); for(int i=0; i<columnNumber;i++) columnNode=columnNode->getNext(); return (char*)(columnNode->getElem()); } /* * Returns the value of the field in the specified rows and cols * Returns NULL in case of error */ char* SqliteDBResultSet::getFieldValue(int rowNumber, int columnNumber) { Debug::debug("char* SqliteDBResultSet::getFieldValue(int rowNumber, int columnNumber)"); if((columnNumber<0)||(columnNumber>=this->columns->getLength())) { Debug::debugError("char* SqliteDBResultSet::getFieldValue(int rowNumber, int columnNumber)","ERROR_INDEX_OUT_OF_RANGE","parameter: columnNumber"); this->lastError = ERROR_INDEX_OUT_OF_RANGE; return NULL; } if((rowNumber<0)||(rowNumber>=this->getNRows())) { Debug::debugError("char* SqliteDBResultSet::getFieldValue(int rowNumber, int columnNumber)","ERROR_INDEX_OUT_OF_RANGE","parameter: rowNumber"); this->lastError = ERROR_INDEX_OUT_OF_RANGE; return NULL; } int position=(rowNumber*this->getNColumns())+columnNumber; GenericListNode * fieldNode= this->data->getHead(); for(int i=0; i<position;i++) fieldNode=fieldNode->getNext(); return (char*)(fieldNode->getElem()); } /* * Adds a column to the table * WARNING: This method should NEVER BE CALLED */ bool SqliteDBResultSet::addColumn(char* columnName) { Debug::debug("bool SqliteDBResultSet::addColumn(char* columnName)"); GenericListNode* node=new GenericListNode(); node->setElem((genericListElemT)columnName); node->setNotAnObject(); return this->columns->addNode(node); } /* * Adds a field in the specified row of the table. * WARNING: This method should NEVER BE CALLED */ bool SqliteDBResultSet::addField(char* field) { Debug::debug("bool SqliteDBResultSet::addField(char* field)"); GenericListNode* node=new GenericListNode(); node->setElem((genericListElemT)field); node->setNotAnObject(); return this->data->addNode(node); }