mirror of
https://github.com/pocoproject/poco.git
synced 2025-10-28 03:20:11 +01:00
0-based col/row, RecordSet metadata, Tuple sample
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user