diff --git a/ChangeLog.txt b/ChangeLog.txt index 7de1032cda..6e1bc33cc3 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -10,6 +10,11 @@ * Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment */ +2015-03-05 22:35 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) + * src/rdd/dbf1.c + ! do not refresh ModTime and RowVer fields just copied during transfer + operation + 2015-03-05 20:46 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) * include/hbapi.h * src/vm/garbage.c diff --git a/src/rdd/dbf1.c b/src/rdd/dbf1.c index 2c36ff5741..a15216f385 100644 --- a/src/rdd/dbf1.c +++ b/src/rdd/dbf1.c @@ -358,19 +358,25 @@ static void hb_dbfUpdateStampFields( DBFAREAP pArea ) case HB_FT_MODTIME: { HB_BYTE * pPtr = pArea->pRecord + pArea->pFieldOffset[ uiCount ]; - if( lJulian == 0 ) - hb_timeStampGet( &lJulian, &lMilliSec ); - HB_PUT_LE_UINT32( pPtr, lJulian ); - pPtr += 4; - HB_PUT_LE_UINT32( pPtr, lMilliSec ); + if( !pArea->fTransRec || HB_GET_LE_UINT64( pPtr ) == 0 ) + { + if( lJulian == 0 ) + hb_timeStampGet( &lJulian, &lMilliSec ); + HB_PUT_LE_UINT32( pPtr, lJulian ); + pPtr += 4; + HB_PUT_LE_UINT32( pPtr, lMilliSec ); + } break; } case HB_FT_ROWVER: { HB_BYTE * pPtr = pArea->pRecord + pArea->pFieldOffset[ uiCount ]; - if( nRowVer == 0 ) - hb_dbfRowVerGet( pArea, uiCount, &nRowVer ); - HB_PUT_LE_UINT64( pPtr, nRowVer ); + if( !pArea->fTransRec || HB_GET_LE_UINT64( pPtr ) == 0 ) + { + if( nRowVer == 0 ) + hb_dbfRowVerGet( pArea, uiCount, &nRowVer ); + HB_PUT_LE_UINT64( pPtr, nRowVer ); + } break; } }