0-based col/row, RecordSet metadata, Tuple sample

This commit is contained in:
Aleksandar Fabijanic
2007-05-16 04:17:03 +00:00
parent a768c2e791
commit 6027101fa6
20 changed files with 606 additions and 81 deletions

View File

@@ -43,7 +43,7 @@ namespace Data {
RecordSet::RecordSet(const Statement& rStatement):
Statement(rStatement),
_currentRow(1)
_currentRow(0)
{
}
@@ -81,18 +81,18 @@ DynamicAny RecordSet::value(const std::string& name, std::size_t row) const
switch (columnType(name))
{
case MetaColumn::FDT_BOOL:
case MetaColumn::FDT_INT8: return value<Int8>(name, row); break;
case MetaColumn::FDT_UINT8: return value<UInt8>(name, row); break;
case MetaColumn::FDT_INT16: return value<Int16>(name, row); break;
case MetaColumn::FDT_UINT16: return value<UInt16>(name, row); break;
case MetaColumn::FDT_INT32: return value<Int32>(name, row); break;
case MetaColumn::FDT_UINT32: return value<UInt32>(name, row); break;
case MetaColumn::FDT_INT64: return value<Int64>(name, row); break;
case MetaColumn::FDT_UINT64: return value<UInt64>(name, row); break;
case MetaColumn::FDT_FLOAT: return value<float>(name, row); break;
case MetaColumn::FDT_DOUBLE: return value<double>(name, row); break;
case MetaColumn::FDT_STRING: return value<std::string>(name, row); break;
case MetaColumn::FDT_BLOB: return value<BLOB>(name, row); break;
case MetaColumn::FDT_INT8: return value<Int8>(name, row);
case MetaColumn::FDT_UINT8: return value<UInt8>(name, row);
case MetaColumn::FDT_INT16: return value<Int16>(name, row);
case MetaColumn::FDT_UINT16: return value<UInt16>(name, row);
case MetaColumn::FDT_INT32: return value<Int32>(name, row);
case MetaColumn::FDT_UINT32: return value<UInt32>(name, row);
case MetaColumn::FDT_INT64: return value<Int64>(name, row);
case MetaColumn::FDT_UINT64: return value<UInt64>(name, row);
case MetaColumn::FDT_FLOAT: return value<float>(name, row);
case MetaColumn::FDT_DOUBLE: return value<double>(name, row);
case MetaColumn::FDT_STRING: return value<std::string>(name, row);
case MetaColumn::FDT_BLOB: return value<BLOB>(name, row);
default:
throw Poco::InvalidArgumentException("Data type not supported.");
}
@@ -103,7 +103,7 @@ bool RecordSet::moveFirst()
{
if (rowCount() > 0)
{
_currentRow = 1;
_currentRow = 0;
return true;
}
else return false;
@@ -112,7 +112,7 @@ bool RecordSet::moveFirst()
bool RecordSet::moveNext()
{
if (_currentRow >= rowCount()) return false;
if (_currentRow >= rowCount() - 1) return false;
++_currentRow;
return true;
}
@@ -120,7 +120,7 @@ bool RecordSet::moveNext()
bool RecordSet::movePrevious()
{
if (0 == _currentRow) return false;
if (-1 == _currentRow) return false;
--_currentRow;
return true;
}
@@ -130,7 +130,7 @@ bool RecordSet::moveLast()
{
if (rowCount() > 0)
{
_currentRow = rowCount();
_currentRow = rowCount() - 1;
return true;
}
else return false;