diff options
Diffstat (limited to 'connectivity/source/drivers/dbase/DTable.cxx')
-rw-r--r-- | connectivity/source/drivers/dbase/DTable.cxx | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/connectivity/source/drivers/dbase/DTable.cxx b/connectivity/source/drivers/dbase/DTable.cxx index 1c5210bfcdc6..a6ee377e586e 100644 --- a/connectivity/source/drivers/dbase/DTable.cxx +++ b/connectivity/source/drivers/dbase/DTable.cxx @@ -2785,13 +2785,13 @@ BOOL ODbaseTable::ReadMemo(ULONG nBlockNo, ORowSetValue& aVariable) if ( bIsText ) { // char cChar; - ::rtl::OUString aStr; + ::rtl::OUStringBuffer aStr; while ( nLength > STRING_MAXLEN ) { ByteString aBStr; aBStr.Expand(STRING_MAXLEN); m_pMemoStream->Read(aBStr.AllocBuffer(STRING_MAXLEN),STRING_MAXLEN); - aStr += ::rtl::OUString(aBStr.GetBuffer(),aBStr.Len(), m_eEncoding); + aStr.append(::rtl::OUString(aBStr.GetBuffer(),aBStr.Len(), m_eEncoding)); nLength -= STRING_MAXLEN; } if ( nLength > 0 ) @@ -2800,12 +2800,10 @@ BOOL ODbaseTable::ReadMemo(ULONG nBlockNo, ORowSetValue& aVariable) aBStr.Expand(static_cast<xub_StrLen>(nLength)); m_pMemoStream->Read(aBStr.AllocBuffer(static_cast<xub_StrLen>(nLength)),nLength); // aBStr.ReleaseBufferAccess(); - - aStr += ::rtl::OUString(aBStr.GetBuffer(),aBStr.Len(), m_eEncoding); - + aStr.append(::rtl::OUString(aBStr.GetBuffer(),aBStr.Len(), m_eEncoding)); } if ( aStr.getLength() ) - aVariable = aStr; + aVariable = aStr.makeStringAndClear(); } // if ( bIsText ) else { |