diff options
Diffstat (limited to 'connectivity/source/drivers/dbase')
-rw-r--r-- | connectivity/source/drivers/dbase/DTable.cxx | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/connectivity/source/drivers/dbase/DTable.cxx b/connectivity/source/drivers/dbase/DTable.cxx index f6409d5c6909..e84d61aafa51 100644 --- a/connectivity/source/drivers/dbase/DTable.cxx +++ b/connectivity/source/drivers/dbase/DTable.cxx @@ -2,9 +2,9 @@ * * $RCSfile: DTable.cxx,v $ * - * $Revision: 1.61 $ + * $Revision: 1.62 $ * - * last change: $Author: oj $ $Date: 2001-08-24 06:05:37 $ + * last change: $Author: fs $ $Date: 2001-08-28 08:58:03 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -1490,6 +1490,9 @@ BOOL ODbaseTable::UpdateBuffer(OValueVector& rRow, OValueRow pOrgRow,const Refer nByteOffset += nLen; continue; } + + sal_Bool bHadError = sal_False; + Any aSQLError; try { switch (nType) @@ -1581,7 +1584,10 @@ BOOL ODbaseTable::UpdateBuffer(OValueVector& rRow, OValueRow pOrgRow,const Refer } break; } } - catch ( Exception& ) + catch( SQLException& e ) { aSQLError <<= e; bHadError = sal_True; } + catch ( Exception& ) { bHadError = sal_True; } + + if ( bHadError ) { m_pColumns->getByIndex(i) >>= xCol; OSL_ENSURE(xCol.is(),"ODbaseTable::UpdateBuffer column is null!"); @@ -1590,7 +1596,14 @@ BOOL ODbaseTable::UpdateBuffer(OValueVector& rRow, OValueRow pOrgRow,const Refer ::rtl::OUString sMsg = ::rtl::OUString::createFromAscii("Invalid value for column: "); sMsg += aColName; sMsg += ::rtl::OUString::createFromAscii("!"); - throw SQLException(sMsg,*this,OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_HY0000),1000,Any()); + + throw SQLException( + sMsg, + *this, + OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_HY0000), + 1000, + aSQLError + ); } // Und weiter ... nByteOffset += nLen; |