2016-06-22 23:58 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)

* include/dbinfo.ch
    * updated few comments

  * src/rdd/dbf1.c
  * src/rdd/delim1.c
    ! fixed dbInfo( DBI_SETHEADER ) and hb_rddInfo( RDDI_SETHEADER )
      to not changer previous settings
    ! set DB_SETHEADER_APPENDSYNC as default update header mode
This commit is contained in:
Przemysław Czerpak
2016-06-22 23:58:12 +02:00
parent 6df7fc6132
commit 7bc80aaf1d
4 changed files with 41 additions and 18 deletions

View File

@@ -10,6 +10,16 @@
* Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment
*/
2016-06-22 23:58 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/dbinfo.ch
* updated few comments
* src/rdd/dbf1.c
* src/rdd/delim1.c
! fixed dbInfo( DBI_SETHEADER ) and hb_rddInfo( RDDI_SETHEADER )
to not changer previous settings
! set DB_SETHEADER_APPENDSYNC as default update header mode
2016-06-20 21:59 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* doc/cmpopt.txt
* enumeration

View File

@@ -347,17 +347,17 @@
#define FILEPUT_COMPRESS BLOB_IMPORT_COMPRESS
#define FILEPUT_ENCRYPT BLOB_IMPORT_ENCRYPT
/* DBF TYPES */
/* DBF TYPES: RDDI_TABLETYPE, DBI_TABLETYPE */
#define DB_DBF_STD 1
#define DB_DBF_VFP 2
/* MEMO TYPES */
/* MEMO TYPES: RDDI_MEMOTYPE, DBI_MEMOTYPE, */
#define DB_MEMO_NONE 0
#define DB_MEMO_DBT 1
#define DB_MEMO_FPT 2
#define DB_MEMO_SMT 3
/* MEMO EXTENDED TYPES */
/* MEMO EXTENDED TYPES: RDDI_MEMOVERSION, DBI_MEMOVERSION */
#define DB_MEMOVER_STD 1
#define DB_MEMOVER_SIX 2
#define DB_MEMOVER_FLEX 3
@@ -367,7 +367,7 @@
#define DB_CRYPT_NONE 0
#define DB_CRYPT_SIX 1
/* LOCK SCHEMES */
/* LOCK SCHEMES: RDDI_LOCKSCHEME, DBI_LOCKSCHEME */
#define DB_DBFLOCK_DEFAULT 0
#define DB_DBFLOCK_CLIPPER 1 /* default Cl*pper locking scheme */
#define DB_DBFLOCK_COMIX 2 /* COMIX and CL53 DBFCDX hyper locking scheme */
@@ -389,7 +389,7 @@
#define DB_SETHEADER_WRITE 2 /* update in GOCOLD method */
#define DB_SETHEADER_APPEND 0 /* record append sets update header flag (always enabled) */
#define DB_SETHEADER_REPLACE 4 /* record modification sets update header flag */
#define DB_SETHEADER_YYEAR 16 /* store year() % 100 instead of year - 1900 */
#define DB_SETHEADER_YYEAR 16 /* store year() % 100 instead of year - 1900, FoxPro compatibility */
/* update in CLOSE after append only */
#define DB_SETHEADER_MINIMAL DB_SETHEADER_CLOSE

View File

@@ -3780,10 +3780,15 @@ static HB_ERRCODE hb_dbfInfo( DBFAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pItem
}
case DBI_SETHEADER:
{
int iMode = hb_itemGetNI( pItem );
hb_itemPutNI( pItem, pArea->uiSetHeader );
if( ( iMode & ~0xFF ) == 0 )
pArea->uiSetHeader = iMode;
HB_UINT uiSetHeader = pArea->uiSetHeader;
if( HB_IS_NUMERIC( pItem ) )
{
int iMode = hb_itemGetNI( pItem );
if( ( iMode & ~0xFF ) == 0 )
pArea->uiSetHeader = iMode;
}
hb_itemPutNI( pItem, uiSetHeader );
break;
}
case DBI_ROLLBACK:
@@ -6536,6 +6541,7 @@ static void hb_dbfInitTSD( void * Cargo )
( ( LPDBFDATA ) Cargo )->bTableType = DB_DBF_STD;
( ( LPDBFDATA ) Cargo )->bCryptType = DB_CRYPT_NONE;
( ( LPDBFDATA ) Cargo )->uiDirtyRead = HB_IDXREAD_CLEANMASK;
( ( LPDBFDATA ) Cargo )->uiSetHeader = DB_SETHEADER_APPENDSYNC;
}
static void hb_dbfDestroyTSD( void * Cargo )
@@ -6654,11 +6660,15 @@ static HB_ERRCODE hb_dbfRddInfo( LPRDDNODE pRDD, HB_USHORT uiIndex, HB_ULONG ulC
}
case RDDI_SETHEADER:
{
int iMode = hb_itemGetNI( pItem );
HB_USHORT uiSetHeader = pData->uiSetHeader;
hb_itemPutNI( pItem, pData->uiSetHeader );
if( ( iMode & ~0xFF ) == 0 )
pData->uiSetHeader = ( HB_USHORT ) iMode;
if( HB_IS_NUMERIC( pItem ) )
{
int iMode = hb_itemGetNI( pItem );
if( ( iMode & ~0xFF ) == 0 )
pData->uiSetHeader = ( HB_USHORT ) iMode;
}
hb_itemPutNI( pItem, uiSetHeader );
break;
}
case RDDI_DIRTYREAD:

View File

@@ -1649,11 +1649,14 @@ static HB_ERRCODE hb_delimRddInfo( LPRDDNODE pRDD, HB_USHORT uiIndex, HB_ULONG u
case RDDI_SETHEADER:
{
LPDELIMDATA pData = DELIMNODE_DATA( pRDD );
int iMode = hb_itemGetNI( pItem );
hb_itemPutNI( pItem, pData->uiSetHeader );
if( iMode == 0 || iMode == 1 )
pData->uiSetHeader = ( HB_USHORT ) iMode;
HB_USHORT uiSetHeader = pData->uiSetHeader;
if( HB_IS_NUMERIC( pItem ) )
{
int iMode = hb_itemGetNI( pItem );
if( iMode == 0 || iMode == 1 )
pData->uiSetHeader = ( HB_USHORT ) iMode;
}
hb_itemPutNI( pItem, uiSetHeader );
break;
}
default: