diff options
author | Jens-Heiner Rechtien <hr@openoffice.org> | 2006-04-19 12:16:36 +0000 |
---|---|---|
committer | Jens-Heiner Rechtien <hr@openoffice.org> | 2006-04-19 12:16:36 +0000 |
commit | d4f13567bb9d19480f83ac50805eacc62e1d0c20 (patch) | |
tree | 14c4f896b00d245c5bb74ff463e3c51a7c97855f /connectivity/source/drivers/flat | |
parent | 6ebb817ae97d742b7d81a6b6b14aa8bd0ef5ca55 (diff) |
INTEGRATION: CWS oj17 (1.51.46); FILE MERGED
2006/03/10 08:56:27 oj 1.51.46.1: #131099# check row length
Diffstat (limited to 'connectivity/source/drivers/flat')
-rw-r--r-- | connectivity/source/drivers/flat/ETable.cxx | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/connectivity/source/drivers/flat/ETable.cxx b/connectivity/source/drivers/flat/ETable.cxx index aa438cf33a4b..47741cb6ef19 100644 --- a/connectivity/source/drivers/flat/ETable.cxx +++ b/connectivity/source/drivers/flat/ETable.cxx @@ -4,9 +4,9 @@ * * $RCSfile: ETable.cxx,v $ * - * $Revision: 1.52 $ + * $Revision: 1.53 $ * - * last change: $Author: vg $ $Date: 2006-04-07 13:11:36 $ + * last change: $Author: hr $ $Date: 2006-04-19 13:16:36 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -561,12 +561,13 @@ sal_Bool OFlatTable::fetchRow(OValueRefRow& _rRow,const OSQLColumns & _rCols,sal xub_StrLen nStartPos = 0; String aStr; OSQLColumns::const_iterator aIter = _rCols.begin(); - for (sal_Int32 i = 0; aIter != _rCols.end();++aIter, ++i) + OSQLColumns::const_iterator aEnd = _rCols.end(); + for (sal_Int32 i = 1; aIter != aEnd && i < _rRow->size();++aIter, i++) { m_aCurrentLine.GetTokenSpecial(aStr,nStartPos,pConnection->getFieldDelimiter(),pConnection->getStringDelimiter()); if (aStr.Len() == 0) - (*_rRow)[i+1]->setNull(); + (*_rRow)[i]->setNull(); else { // Laengen je nach Datentyp: @@ -600,18 +601,18 @@ sal_Bool OFlatTable::fetchRow(OValueRefRow& _rRow,const OSQLColumns & _rCols,sal switch(nType) { case DataType::DATE: - *(*_rRow)[i+1] = ::dbtools::DBTypeConversion::toDouble(::dbtools::DBTypeConversion::toDate(nRes,aDate)); + *(*_rRow)[i] = ::dbtools::DBTypeConversion::toDouble(::dbtools::DBTypeConversion::toDate(nRes,aDate)); break; case DataType::TIMESTAMP: - *(*_rRow)[i+1] = ::dbtools::DBTypeConversion::toDouble(::dbtools::DBTypeConversion::toDateTime(nRes,aDate)); + *(*_rRow)[i] = ::dbtools::DBTypeConversion::toDouble(::dbtools::DBTypeConversion::toDateTime(nRes,aDate)); break; default: - *(*_rRow)[i+1] = ::dbtools::DBTypeConversion::toDouble(::dbtools::DBTypeConversion::toTime(nRes)); + *(*_rRow)[i] = ::dbtools::DBTypeConversion::toDouble(::dbtools::DBTypeConversion::toTime(nRes)); } } catch(Exception&) { - (*_rRow)[i+1]->setNull(); + (*_rRow)[i]->setNull(); } } break; case DataType::DOUBLE: @@ -645,15 +646,15 @@ sal_Bool OFlatTable::fetchRow(OValueRefRow& _rRow,const OSQLColumns & _rCols,sal // #99178# OJ if ( DataType::DECIMAL == nType || DataType::NUMERIC == nType ) - *(*_rRow)[i+1] = ORowSetValue(String::CreateFromDouble(nVal)); + *(*_rRow)[i] = ORowSetValue(String::CreateFromDouble(nVal)); else - *(*_rRow)[i+1] = nVal; + *(*_rRow)[i] = nVal; } break; default: { // Wert als String in Variable der Row uebernehmen - *(*_rRow)[i+1] = ORowSetValue(aStr); + *(*_rRow)[i] = ORowSetValue(aStr); } break; } |