From 4bd466537c56cb2ff99dc7d0f04f6f3b918b8b37 Mon Sep 17 00:00:00 2001 From: angelo Date: Wed, 3 Jan 1996 15:54:04 +0000 Subject: [PATCH] Rif. mod. 96/2. Correzione metodo TRectype::operator=(). La correzione riguarda la copia dei campi memo (prima non c'era). git-svn-id: svn://10.65.10.50/trunk@2383 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- include/isam.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/include/isam.cpp b/include/isam.cpp index ca4d15258..272f57547 100755 --- a/include/isam.cpp +++ b/include/isam.cpp @@ -2902,8 +2902,22 @@ TRectype& TRectype::operator =(const TRectype& rec) { CHECK(num() == rec.num(), "Can't assign records of different file"); - - memcpy(_rec, rec._rec, _length); // Copy contents + + memcpy(_rec, rec._rec, _length); // Copy contents + if (_memoinfo) + { + TTrec r; + r.get(_logicnum); + RecDes* rd = r.rec(); + const int nfields = r.fields( ); + for( int i = 0; i < nfields; i ++ ) + { + const char* name = rd->Fd[i].Name; + const unsigned int offset = rd->Fd[i].RecOff; + if ( rd->Fd[i].TypeF == _memofld ) + _memoinfo->put(name,rec.get(name)); // Copy memo fields + } + } setempty(rec.empty()); // Copy emptiness status return *this; }