From 69cd472d59c17c6a16bf01ca2b2d442bb100fed7 Mon Sep 17 00:00:00 2001 From: "Gonzalo A. Diethelm" Date: Tue, 26 Oct 1999 16:09:50 +0000 Subject: [PATCH] ChangeLogTag:Tue Oct 26 12:55:49 1999 Gonzalo A. Diethelm --- harbour/ChangeLog | 7 ++ harbour/source/rdd/dbcmd.c | 95 +++++++++++++++++++++++++- harbour/source/rdd/dbf1.c | 100 ++++++++++++++++++++++++++++ harbour/source/rdd/dbfcdx/dbfcdx1.c | 20 ++++++ 4 files changed, 219 insertions(+), 3 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 9f75c5474b..0c4b0514f0 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,10 @@ +Tue Oct 26 12:55:49 1999 Gonzalo A. Diethelm + + * source/rdd/dbcmd.c: + * source/rdd/dbf1.c: + * source/rdd/dbfcdx/dbfcdx1.c: + Added HB_TRACE() calls to the RDD library. + Tue Oct 26 12:15:01 1999 Gonzalo A. Diethelm * source/vm/cmdarg.c: diff --git a/harbour/source/rdd/dbcmd.c b/harbour/source/rdd/dbcmd.c index 37b96ba873..0c86edb8cf 100644 --- a/harbour/source/rdd/dbcmd.c +++ b/harbour/source/rdd/dbcmd.c @@ -149,6 +149,8 @@ static ERRCODE defAddField( AREAP pArea, LPDBFIELDINFO pFieldInfo ) { LPFIELD pField; + HB_TRACE(("defAddField(%p, %p)", pArea, pFieldInfo)); + pField = pArea->lpFields + pArea->uiFieldCount; if( pArea->uiFieldCount > 0 ) { @@ -175,6 +177,8 @@ static ERRCODE defAddField( AREAP pArea, LPDBFIELDINFO pFieldInfo ) static ERRCODE defAlias( AREAP pArea, BYTE * szAlias ) { + HB_TRACE(("defAlias(%p, %p)", pArea, szAlias)); + strncpy( ( char * ) szAlias, ( ( PHB_DYNS ) pArea->atomAlias )->pSymbol->szName, HARBOUR_MAX_RDD_ALIAS_LENGTH ); @@ -183,12 +187,16 @@ static ERRCODE defAlias( AREAP pArea, BYTE * szAlias ) static ERRCODE defBof( AREAP pArea, BOOL * pBof ) { + HB_TRACE(("defBof(%p, %p)", pArea, pBof)); + * pBof = pArea->fBof; return SUCCESS; } static ERRCODE defClearFilter( AREAP pArea ) { + HB_TRACE(("defClearFilter(%p)", pArea)); + if( pArea->dbfi.fFilter ) { hb_itemRelease( pArea->dbfi.itmCobExpr ); @@ -200,6 +208,8 @@ static ERRCODE defClearFilter( AREAP pArea ) static ERRCODE defClearLocate( AREAP pArea ) { + HB_TRACE(("defClearLocate(%p)", pArea)); + if( pArea->dbsi.itmCobFor ) { hb_itemRelease( pArea->dbsi.itmCobFor ); @@ -240,6 +250,8 @@ static ERRCODE defClearLocate( AREAP pArea ) static ERRCODE defClose( AREAP pArea ) { + HB_TRACE(("defClose(%p)", pArea)); + SELF_CLEARFILTER( pArea ); SELF_CLEARLOCATE( pArea ); ( ( PHB_DYNS ) pArea->atomAlias )->hArea = 0; @@ -252,6 +264,8 @@ static ERRCODE defCreateFields( AREAP pArea, PHB_ITEM pStruct ) PHB_ITEM pFieldDesc; DBFIELDINFO pFieldInfo; + HB_TRACE(("defCreateFields(%p, %p)", pArea, pStruct)); + uiItems = hb_arrayLen( pStruct ); SELF_SETFIELDEXTENT( pArea, uiItems ); pFieldInfo.typeExtended = 0; @@ -269,6 +283,8 @@ static ERRCODE defCreateFields( AREAP pArea, PHB_ITEM pStruct ) static ERRCODE defEof( AREAP pArea, BOOL * pEof ) { + HB_TRACE(("defEof(%p, %p)", pArea, pEof)); + * pEof = pArea->fEof; return SUCCESS; } @@ -277,6 +293,8 @@ static ERRCODE defError( AREAP pArea, PHB_ITEM pError ) { char * szRddName; + HB_TRACE(("defError(%p, %p)", pArea, pError)); + szRddName = ( char * ) hb_xgrab( HARBOUR_MAX_RDD_DRIVERNAME_LENGTH + 1 ); SELF_SYSNAME( pArea, ( BYTE * ) szRddName ); hb_errPutSeverity( pError, ES_ERROR ); @@ -287,6 +305,8 @@ static ERRCODE defError( AREAP pArea, PHB_ITEM pError ) static ERRCODE defFieldCount( AREAP pArea, USHORT * uiFields ) { + HB_TRACE(("defFieldCount(%p, %p)", pArea, uiFields)); + * uiFields = pArea->uiFieldCount; return SUCCESS; } @@ -296,6 +316,8 @@ static ERRCODE defFieldInfo( AREAP pArea, USHORT uiIndex, USHORT uiType, PHB_ITE LPFIELD pField; char szType[ 2 ]; + HB_TRACE(("defFieldInfo(%p, %hu, %hu, %p)", pArea, uiIndex, uiType, pItem)); + if( uiIndex > pArea->uiFieldCount ) return FAILURE; @@ -332,6 +354,8 @@ static ERRCODE defFieldName( AREAP pArea, USHORT uiIndex, void * szName ) { LPFIELD pField; + HB_TRACE(("defFieldName(%p, %hu, %p)", pArea, uiIndex, szName)); + if( uiIndex > pArea->uiFieldCount ) return FAILURE; @@ -343,6 +367,8 @@ static ERRCODE defFieldName( AREAP pArea, USHORT uiIndex, void * szName ) static ERRCODE defFilterText( AREAP pArea, PHB_ITEM pFilter ) { + HB_TRACE(("defFilterText(%p, %p)", pArea, pFilter)); + if( pArea->dbfi.fFilter ) hb_itemCopy( pFilter, pArea->dbfi.abFilterText ); return SUCCESS; @@ -350,18 +376,24 @@ static ERRCODE defFilterText( AREAP pArea, PHB_ITEM pFilter ) static ERRCODE defFound( AREAP pArea, BOOL * pFound ) { + HB_TRACE(("defFound(%p, %p)", pArea, pFound)); + * pFound = pArea->fFound; return SUCCESS; } static ERRCODE defGetRec( AREAP pArea, BYTE ** pBuffer ) { + HB_TRACE(("defGetRec(%p, %p)", pArea, pBuffer)); + * pBuffer = pArea->lpExtendInfo->bRecord; return SUCCESS; } static ERRCODE defNewArea( AREAP pArea ) { + HB_TRACE(("defNewArea(%p)", pArea)); + pArea->lpFileInfo = ( LPFILEINFO ) hb_xgrab( sizeof( FILEINFO ) ); memset( pArea->lpFileInfo, 0, sizeof( FILEINFO ) ); pArea->lpFileInfo->hFile = FS_ERROR; @@ -372,6 +404,8 @@ static ERRCODE defNewArea( AREAP pArea ) static ERRCODE defOpen( AREAP pArea, LPDBOPENINFO pOpenInfo ) { + HB_TRACE(("defOpen(%p, %p)", pArea, pOpenInfo)); + pArea->atomAlias = hb_dynsymGet( ( char * ) pOpenInfo->atomAlias ); if( ( ( PHB_DYNS ) pArea->atomAlias )->hArea ) { @@ -390,6 +424,8 @@ static ERRCODE defRelease( AREAP pArea ) { LPFILEINFO pFileInfo; + HB_TRACE(("defRelease(%p)", pArea)); + if( pArea->lpFields ) { hb_xfree( pArea->lpFields ); @@ -417,6 +453,8 @@ static ERRCODE defRelease( AREAP pArea ) static ERRCODE defSetFieldExtent( AREAP pArea, USHORT uiFieldExtent ) { + HB_TRACE(("defSetFieldExtent(%p, %hu)", pArea, uiFieldExtent)); + pArea->uiFieldExtent = uiFieldExtent; pArea->lpFields = ( LPFIELD ) hb_xgrab( uiFieldExtent * sizeof( FIELD ) ); memset( pArea->lpFields, 0, uiFieldExtent * sizeof( FIELD ) ); @@ -425,6 +463,8 @@ static ERRCODE defSetFieldExtent( AREAP pArea, USHORT uiFieldExtent ) static ERRCODE defSetFilter( AREAP pArea, LPDBFILTERINFO pFilterInfo ) { + HB_TRACE(("defSetFilter(%p, %p)", pArea, pFilterInfo)); + if( pArea->dbfi.fFilter ) { hb_itemCopy( pArea->dbfi.itmCobExpr, pFilterInfo->itmCobExpr ); @@ -443,6 +483,8 @@ static ERRCODE defSetFilter( AREAP pArea, LPDBFILTERINFO pFilterInfo ) static ERRCODE defSetLocate( AREAP pArea, LPDBSCOPEINFO pScopeInfo ) { + HB_TRACE(("defSetLocate(%p, %p)", pArea, pScopeInfo)); + if( pArea->dbsi.itmCobFor ) hb_itemRelease( pArea->dbsi.itmCobFor ); pArea->dbsi.itmCobFor = pScopeInfo->itmCobFor; @@ -465,6 +507,8 @@ static ERRCODE defSkip( AREAP pArea, LONG lToSkip ) { BOOL bExit; + HB_TRACE(("defSkip(%p, %ld)", pArea, lToSkip)); + if( pArea->dbfi.fFilter || hb_set.HB_SET_DELETED ) { if( lToSkip > 0 ) @@ -512,6 +556,8 @@ static ERRCODE defSkipFilter( AREAP pArea, LONG lUpDown ) { BOOL bExit, bDeleted; + HB_TRACE(("defSkipFilter(%p, %ld)", pArea, lUpDown)); + if( lUpDown > 0 ) { while( 1 ) @@ -587,11 +633,15 @@ static ERRCODE defSkipFilter( AREAP pArea, LONG lUpDown ) static ERRCODE defSkipRaw( AREAP pArea, LONG lToSkip ) { + HB_TRACE(("defSkipRaw(%p, %ld)", pArea, lToSkip)); + return SELF_GOTO( pArea, pArea->lpExtendInfo->lRecNo + lToSkip ); } static ERRCODE defStructSize( AREAP pArea, USHORT * uiSize ) { + HB_TRACE(("defStrucSize(%p, %p)", pArea, uiSize)); + HB_SYMBOL_UNUSED( pArea ); HB_SYMBOL_UNUSED( uiSize ); @@ -603,6 +653,8 @@ static ERRCODE defSysName( AREAP pArea, BYTE * pBuffer ) USHORT uiCount; LPRDDNODE pRddNode; + HB_TRACE(("defSysName(%p, %p)", pArea, pBuffer)); + pRddNode = pRddList; for( uiCount = 0; uiCount < pArea->rddID; uiCount++ ) pRddNode = pRddNode->pNext; @@ -614,6 +666,8 @@ static ERRCODE defUnSupported( AREAP pArea ) { PHB_ITEM pError; + HB_TRACE(("defUnSupported(%p)", pArea)); + HB_SYMBOL_UNUSED( pArea ); pError = hb_errNew(); @@ -688,6 +742,8 @@ static RDDFUNCS defTable = { defBof, static void hb_rddCheck( void ) { + HB_TRACE(("hb_rddCheck()")); + if( !szDefDriver ) { szDefDriver = ( char * ) hb_xgrab( 1 ); @@ -703,6 +759,8 @@ static void hb_rddCheck( void ) static void hb_rddCloseAll( void ) { + HB_TRACE(("hb_rddCloseAll()")); + pCurrArea = pWorkAreas; while( pWorkAreas ) { @@ -723,6 +781,8 @@ static LPRDDNODE hb_rddFindNode( char * szDriver, USHORT * uiIndex ) LPRDDNODE pRddNode; USHORT uiCount; + HB_TRACE(("hb_rddFindNode(%s, %p)", szDriver, uiIndex)); + uiCount = 0; pRddNode = pRddList; while( pRddNode ) @@ -748,6 +808,8 @@ static int hb_rddRegister( char * szDriver, USHORT uiType ) char * szGetFuncTable; USHORT uiFunctions; + HB_TRACE(("hb_rddRegister(%s, %hu)", szDriver, uiType)); + if( hb_rddFindNode( szDriver, 0 ) ) /* Duplicated RDD */ return 1; @@ -795,6 +857,8 @@ static USHORT hb_rddSelect( char * szAlias ) { PHB_DYNS pSymAlias; + HB_TRACE(("hb_rddSelect(%s)", szAlias)); + pSymAlias = hb_dynsymFindName( szAlias ); if( pSymAlias && pSymAlias->hArea ) return pSymAlias->hArea; @@ -806,6 +870,8 @@ static void hb_rddSelectFirstAvailable( void ) { LPAREANODE pAreaNode; + HB_TRACE(("hb_rddSelectFirstAvailable()")); + uiCurrArea = 1; pAreaNode = pWorkAreas; while( pAreaNode ) @@ -826,6 +892,8 @@ ERRCODE hb_rddInherit( PRDDFUNCS pTable, PRDDFUNCS pSubTable, PRDDFUNCS pSuperTa USHORT uiCount; DBENTRYP_V * pFunction, * pSubFunction; + HB_TRACE(("hb_rddInherit(%p, %p, %p, %s)", pTable, pSubTable, pSuperTable, szDrvName)); + if( !pTable ) return FAILURE; @@ -868,6 +936,8 @@ ERRCODE hb_rddInherit( PRDDFUNCS pTable, PRDDFUNCS pSubTable, PRDDFUNCS pSuperTa int hb_rddGetCurrentWorkAreaNumber( void ) { + HB_TRACE(("hb_rddGetCurrentWorkAreaNumber()")); + return uiCurrArea; } @@ -875,6 +945,8 @@ ERRCODE hb_rddSelectWorkAreaNumber( int iArea ) { LPAREANODE pAreaNode; + HB_TRACE(("hb_rddSelectWorkAreaNumber(%d)", iArea)); + uiCurrArea = iArea; pAreaNode = pWorkAreas; @@ -895,6 +967,8 @@ ERRCODE hb_rddSelectWorkAreaSymbol( PHB_SYMB pSymAlias ) { ERRCODE bResult; + HB_TRACE(("hb_rddSelectWorkAreaSymbol(%p)", pSymAlias)); + if( pSymAlias->pDynSym->hArea ) bResult = hb_rddSelectWorkAreaNumber( pSymAlias->pDynSym->hArea ); else @@ -934,8 +1008,11 @@ ERRCODE hb_rddSelectWorkAreaSymbol( PHB_SYMB pSymAlias ) ERRCODE hb_rddSelectWorkAreaAlias( char * szName ) { ERRCODE bResult; - ULONG ulLen = strlen( szName ); + ULONG ulLen; + HB_TRACE(("hb_rddSelectWorkAreaAlias(%s)", szName)); + + ulLen = strlen( szName ); if( ulLen >= 1 && toupper( szName[ 0 ] ) > '0' && toupper( szName[ 0 ] ) <= '9' ) bResult = hb_rddSelectWorkAreaNumber( atoi( szName ) ); else if( ulLen == 1 && toupper( szName[ 0 ] ) >= 'A' && toupper( szName[ 0 ] ) <= 'K' ) @@ -981,8 +1058,11 @@ ERRCODE hb_rddSelectWorkAreaAlias( char * szName ) ERRCODE hb_rddGetFieldValue( HB_ITEM_PTR pItem, PHB_SYMB pFieldSymbol ) { - ERRCODE bSuccess = hb_rddFieldGet( pItem, pFieldSymbol ); + ERRCODE bSuccess; + HB_TRACE(("hb_rddGetFieldValue(%p, %p)", pItem, pFieldSymbol)); + + bSuccess = hb_rddFieldGet( pItem, pFieldSymbol ); if( bSuccess == FAILURE ) { /* generate an error with retry possibility @@ -1011,8 +1091,11 @@ ERRCODE hb_rddGetFieldValue( HB_ITEM_PTR pItem, PHB_SYMB pFieldSymbol ) ERRCODE hb_rddPutFieldValue( HB_ITEM_PTR pItem, PHB_SYMB pFieldSymbol ) { - ERRCODE bSuccess = hb_rddFieldPut( pItem, pFieldSymbol ); + ERRCODE bSuccess; + HB_TRACE(("hb_rddPutFieldValue(%p, %p)", pItem, pFieldSymbol)); + + bSuccess = hb_rddFieldPut( pItem, pFieldSymbol ); if( bSuccess == FAILURE ) { /* generate an error with retry possibility @@ -1044,6 +1127,8 @@ ERRCODE hb_rddFieldPut( HB_ITEM_PTR pItem, PHB_SYMB pFieldSymbol ) LPFIELD pField; USHORT uiField; + HB_TRACE(("hb_rddFieldPut(%p, %p)", pItem, pFieldSymbol)); + if( pCurrArea ) { uiField = 1; @@ -1067,6 +1152,8 @@ ERRCODE hb_rddFieldGet( HB_ITEM_PTR pItem, PHB_SYMB pFieldSymbol ) LPFIELD pField; USHORT uiField; + HB_TRACE(("hb_rddFieldGet(%p, %p)", pItem, pFieldSymbol)); + if( pCurrArea ) { uiField = 1; @@ -1089,6 +1176,8 @@ void hb_rddShutDown( void ) { LPRDDNODE pRddNode; + HB_TRACE(("hb_rddShutDown()")); + hb_rddCloseAll(); if( szDefDriver ) hb_xfree( szDefDriver ); diff --git a/harbour/source/rdd/dbf1.c b/harbour/source/rdd/dbf1.c index 428569c6b7..3a198b7bbf 100644 --- a/harbour/source/rdd/dbf1.c +++ b/harbour/source/rdd/dbf1.c @@ -117,6 +117,8 @@ static BOOL hb_nltoa( LONG lValue, char * szBuffer, USHORT uiLen ) LONG lAbsNumber; int iCount, iPos; + HB_TRACE(("hb_nltoa(%ld, %p, %hu)", lValue, szBuffer, uiLen)); + lAbsNumber = ( lValue > 0 ) ? lValue : - lValue; iCount = iPos = uiLen; while( iCount-- > 0 ) @@ -163,6 +165,8 @@ static BOOL hb_ndtoa( double dValue, char * szBuffer, USHORT uiLen, USHORT uiDec int iCount; char szEndChar; + HB_TRACE(("hb_ndtoa(%lf, %p, %hu, %hu)", dValue, szBuffer, uiLen, uiDec)); + if( uiLen > 19 ) uiLen = 19; if( uiDec + 2 > uiLen ) @@ -191,6 +195,8 @@ static BOOL hb_dbfUpdateHeader( AREAP pArea, ULONG lRecCount ) time_t t; struct tm * pTime; + HB_TRACE(("hb_dbfUpdateHeader(%p, %lu)", pArea, lRecCount)); + hb_fsSeek( pArea->lpFileInfo->hFile, 0, FS_SET ); if( hb_fsRead( pArea->lpFileInfo->hFile, ( BYTE * ) &pHeader, sizeof( DBFHEADER ) ) != sizeof( DBFHEADER ) ) @@ -220,6 +226,8 @@ static BOOL hb_dbfWriteMemo( AREAP pArea, LPDBFMEMO pMemo, ULONG * lNewRecNo ) BYTE szBuffer[ MEMO_BLOCK ]; MEMOHEADER pMemoHeader; + HB_TRACE(("hb_dbfWriteMemo(%p, %p, %p)", pArea, pMemo, lNewRecNo)); + if( !pArea->lpExtendInfo->fExclusive && !pArea->lpFileInfo->fFileLocked && !hb_fsLock( pArea->lpFileInfo->pNext->hFile, LOCK_APPEND - 1, 1, FL_LOCK ) ) return FALSE; @@ -287,6 +295,8 @@ static BOOL hb_dbfUpdateRecord( AREAP pArea, ULONG lRecNo ) USHORT uiCount; LPFIELD pField; + HB_TRACE(("hb_dbfUpdateRecord(%p, %lu)", pArea, lRecNo)); + if( SELF_RECCOUNT( pArea, &lRecCount ) == FAILURE ) return FALSE; @@ -319,6 +329,8 @@ static void hb_dbfClearBuffer( AREAP pArea ) LPFIELD pField; USHORT uiCount; + HB_TRACE(("hb_dbfClearBuffer(%p)", pArea)); + memset( pArea->lpExtendInfo->bRecord, ' ', pArea->lpExtendInfo->uiRecordLen ); if( pArea->lpExtendInfo->fHasMemo ) @@ -343,6 +355,8 @@ static void hb_dbfReadMemo( AREAP pArea, LPDBFMEMO pMemo, ULONG lMemoBlock ) USHORT uiBytesRead, uiMaxRead, uiRead; BYTE * pData; + HB_TRACE(("hb_dbfReadMemo(%p, %p, %lu)", pArea, pMemo, lMemoBlock)); + hb_fsSeek( pArea->lpFileInfo->pNext->hFile, lMemoBlock, FS_SET ); uiBytesRead = 0; uiMaxRead = pMemo->uiLen; @@ -392,6 +406,8 @@ static ERRCODE hb_dbfReadBuffer( AREAP pArea, ULONG lRecNo ) LPFIELD pField; USHORT uiCount; + HB_TRACE(("hb_dbfReadBuffer(%p, %lu)", pArea, lRecNo)); + if( SELF_GOCOLD( pArea ) == FAILURE ) return FAILURE; @@ -424,6 +440,8 @@ static BOOL hb_dbfIsLocked( AREAP pArea, ULONG lLockPos ) { ULONG lNumLocksPos; + HB_TRACE(("hb_dbfIsLocked(%p, %lu)", pArea, lLockPos)); + lNumLocksPos = pArea->lpFileInfo->lNumLocksPos; while( lNumLocksPos > 0 ) { @@ -439,6 +457,8 @@ static BOOL hb_dbfLockRecord( AREAP pArea, ULONG lRecNum ) { LPFILEINFO pFileInfo; + HB_TRACE(("hb_dbfLockRecord(%p, %lu)", pArea, lRecNum)); + if( pArea->lpExtendInfo->fExclusive || pArea->lpFileInfo->fFileLocked ) return TRUE; @@ -474,6 +494,8 @@ static BOOL hb_dbfUnLockRecord( AREAP pArea, ULONG lRecNum ) LPFILEINFO pFileInfo; ULONG lLockPos, * pList; + HB_TRACE(("hb_dbfUnLockRecord(%p, %lu)", pArea, lRecNum)); + if( pArea->lpExtendInfo->fExclusive || pArea->lpFileInfo->fFileLocked ) return TRUE; @@ -521,6 +543,8 @@ static BOOL hb_dbfUnLockAllRecords( AREAP pArea ) ULONG lPosLocked; BOOL bUnLocked = TRUE; + HB_TRACE(("hb_dbfUnLockAllRecords(%p)", pArea)); + if( SELF_GOCOLD( pArea ) == FAILURE ) return FALSE; @@ -545,6 +569,8 @@ static BOOL hb_dbfUnLockAllRecords( AREAP pArea ) static BOOL hb_dbfLockFile( AREAP pArea ) { + HB_TRACE(("hb_dbfLockFile(%p)", pArea)); + if( pArea->lpExtendInfo->fExclusive || pArea->lpFileInfo->fFileLocked ) return TRUE; @@ -556,6 +582,8 @@ static BOOL hb_dbfLockFile( AREAP pArea ) static BOOL hb_dbfUnLockFile( AREAP pArea ) { + HB_TRACE(("hb_dbfUnLockFile(%p)", pArea)); + if( SELF_GOCOLD( pArea ) == FAILURE ) return FALSE; @@ -576,6 +604,8 @@ static void hb_dbfGetLockArray( AREAP pArea, PHB_ITEM pItem ) { ULONG lLockPos; + HB_TRACE(("hb_GetLockArray(%p, %p)", pArea, pItem)); + for( lLockPos = 1; lLockPos <= pArea->lpFileInfo->lNumLocksPos; lLockPos++ ) hb_arrayAdd( pItem, hb_itemPutNL( NULL, pArea->lpFileInfo->pLocksPos[ lLockPos - 1 ] ) ); @@ -617,6 +647,8 @@ static ERRCODE dbfAddField( AREAP pArea, LPDBFIELDINFO pFieldInfo ) { LPFIELD pField; + HB_TRACE(("dbfAddField(%p, %p)", pArea, pFieldInfo)); + if( SUPER_ADDFIELD( pArea, pFieldInfo ) == SUCCESS ) { if( pArea->lpExtendInfo->fHasMemo ) @@ -635,6 +667,8 @@ static ERRCODE dbfAppend( AREAP pArea, BOOL bUnLockAll ) ULONG lRecCount, lRecNo; PHB_ITEM pError; + HB_TRACE(("dbfAppend(%p, %d)", pArea, (int) bUnLockAll)); + if( SELF_GOCOLD( pArea ) == FAILURE ) return FAILURE; @@ -691,6 +725,8 @@ static ERRCODE dbfAppend( AREAP pArea, BOOL bUnLockAll ) static ERRCODE dbfClose( AREAP pArea ) { + HB_TRACE(("dbfClose(%p)", pArea)); + if( pArea->lpFileInfo->hFile != FS_ERROR ) { SELF_GOCOLD( pArea ); @@ -707,6 +743,8 @@ static ERRCODE dbfClose( AREAP pArea ) static ERRCODE dbfCloseMemFile( AREAP pArea ) { + HB_TRACE(("dbfCloseMemFile(%p)", pArea)); + if( pArea->lpFileInfo->pNext->hFile != FS_ERROR ) { SELF_FLUSH( pArea ); @@ -722,6 +760,8 @@ static ERRCODE dbfCreate( AREAP pArea, LPDBOPENINFO pCreateInfo ) PHB_ITEM pError = NULL; BOOL bRetry; + HB_TRACE(("dbfCreate(%p, %p)", pArea, pCreateInfo)); + do { pArea->lpFileInfo->hFile = hb_fsCreate( pCreateInfo->abName, FC_NORMAL ); @@ -767,6 +807,8 @@ static ERRCODE dbfCreateMemFile( AREAP pArea, LPDBOPENINFO pCreateInfo ) PHB_ITEM pError = NULL; BYTE * pBuffer; + HB_TRACE(("dbfCreateMemFile(%p, %p)", pArea, pCreateInfo)); + lpMemInfo = pArea->lpFileInfo->pNext; do { @@ -811,6 +853,8 @@ static ERRCODE dbfCreateMemFile( AREAP pArea, LPDBOPENINFO pCreateInfo ) static ERRCODE dbfDeleted( AREAP pArea, BOOL * pDeleted ) { + HB_TRACE(("dbfDeleted(%p, %p)", pArea, pDeleted)); + * pDeleted = ( pArea->lpExtendInfo->bRecord[ 0 ] == '*' ); return SUCCESS; @@ -818,6 +862,8 @@ static ERRCODE dbfDeleted( AREAP pArea, BOOL * pDeleted ) static ERRCODE dbfDeleteRec( AREAP pArea ) { + HB_TRACE(("dbfDeleteRec(%p)", pArea)); + if( SELF_GOHOT( pArea ) == FAILURE ) return FAILURE; @@ -833,6 +879,8 @@ static ERRCODE dbfDeleteRec( AREAP pArea ) static ERRCODE dbfFlush( AREAP pArea ) { + HB_TRACE(("dbfFlush(%p)", pArea)); + if( SELF_GOCOLD( pArea ) == FAILURE ) return FAILURE; @@ -848,6 +896,8 @@ static ERRCODE dbfGetValue( AREAP pArea, USHORT uiIndex, PHB_ITEM pItem ) LPFIELD pField; BYTE * szText, szEndChar; + HB_TRACE(("dbfGetValue(%p, %hu, %p)", pArea, uiIndex, pItem)); + if( uiIndex > pArea->uiFieldCount ) return FAILURE; @@ -901,6 +951,8 @@ static ERRCODE dbfGetValueFile( AREAP pArea, USHORT uiIndex, void * pFile ) BYTE * szText, szEndChar; LPFIELD pField; + HB_TRACE(("dbfGetValueFile(%p, %hu, %p)", pArea, uiIndex, pFile)); + if( uiIndex > pArea->uiFieldCount ) return FAILURE; @@ -928,6 +980,8 @@ static ERRCODE dbfGetVarLen( AREAP pArea, USHORT uiIndex, ULONG * ulLen ) { LPFIELD pField; + HB_TRACE(("dbfGetVarLen(%p, %hu, %p)", pArea, uiIndex, ulLen)); + if( uiIndex > pArea->uiFieldCount ) return FAILURE; @@ -943,6 +997,8 @@ static ERRCODE dbfGoBottom( AREAP pArea ) { ULONG lRecCount; + HB_TRACE(("dbfGoBottom(%p)", pArea)); + if( SELF_RECCOUNT( pArea, &lRecCount ) == FAILURE ) return FAILURE; @@ -952,6 +1008,8 @@ static ERRCODE dbfGoBottom( AREAP pArea ) static ERRCODE dbfGoCold( AREAP pArea ) { + HB_TRACE(("dbfGoCold(%p)", pArea)); + if( pArea->lpExtendInfo->fRecordChanged && !hb_dbfUpdateRecord( pArea, pArea->lpExtendInfo->lRecNo ) ) return FAILURE; @@ -965,6 +1023,8 @@ static ERRCODE dbfGoHot( AREAP pArea ) { PHB_ITEM pError; + HB_TRACE(("dbfGoHot(%p)", pArea)); + if( !pArea->lpExtendInfo->fExclusive && !pArea->lpFileInfo->fFileLocked && !hb_dbfIsLocked( pArea, pArea->lpExtendInfo->lRecNo ) ) { @@ -995,6 +1055,8 @@ static ERRCODE dbfGoTo( AREAP pArea, ULONG lRecNo ) { ULONG lRecCount; + HB_TRACE(("dbfGoTo(%p, %lu)", pArea, lRecNo)); + if( SELF_GOCOLD( pArea ) == FAILURE ) return FAILURE; @@ -1038,6 +1100,8 @@ static ERRCODE dbfGoToId( AREAP pArea, PHB_ITEM pItem ) PHB_ITEM pError; ULONG lRecNo; + HB_TRACE(("dbfGoToId(%p, %p)", pArea, pItem)); + if( pItem->type & IT_NUMERIC ) { lRecNo = hb_itemGetNL( pItem ); @@ -1059,6 +1123,8 @@ static ERRCODE dbfGoToId( AREAP pArea, PHB_ITEM pItem ) static ERRCODE dbfGoTop( AREAP pArea ) { + HB_TRACE(("dbfGoTop(%p)", pArea)); + pArea->fBof = 0; SELF_GOTO( pArea, 1 ); return SELF_SKIPFILTER( pArea, 1 ); @@ -1066,6 +1132,8 @@ static ERRCODE dbfGoTop( AREAP pArea ) static ERRCODE dbfInfo( AREAP pArea, USHORT uiIndex, PHB_ITEM pItem ) { + HB_TRACE(("dbfInfo(%p, %hu, %p)", pArea, uiIndex, pItem)); + switch( uiIndex ) { case DBI_DBFILTER: @@ -1110,6 +1178,8 @@ static ERRCODE dbfInfo( AREAP pArea, USHORT uiIndex, PHB_ITEM pItem ) static ERRCODE dbfLock( AREAP pArea, LPDBLOCKINFO pLockInfo ) { + HB_TRACE(("dbfLock(%p, %p)", pArea, pLockInfo)); + if( pLockInfo->itmRecID == 0 ) { hb_dbfUnLockAllRecords( pArea ); @@ -1134,6 +1204,8 @@ static ERRCODE dbfOpen( AREAP pArea, LPDBOPENINFO pOpenInfo ) PHB_ITEM pError = NULL; BOOL bRetry; + HB_TRACE(("dbfOpen(%p, %p)", pArea, pOpenInfo)); + if( SUPER_OPEN( pArea, pOpenInfo ) == FAILURE ) return FAILURE; @@ -1210,6 +1282,8 @@ static ERRCODE dbfOpenMemFile( AREAP pArea, LPDBOPENINFO pOpenInfo ) PHB_ITEM pError = NULL; BOOL bRetry; + HB_TRACE(("dbfOpenMemFile(%p, %p)", pArea, pOpenInfo)); + lpMemInfo = pArea->lpFileInfo->pNext; uiFlags = pOpenInfo->fReadonly ? FO_READ : FO_READWRITE; uiFlags |= pOpenInfo->fShared ? FO_DENYNONE : FO_EXCLUSIVE; @@ -1252,6 +1326,8 @@ static ERRCODE dbfOpenMemFile( AREAP pArea, LPDBOPENINFO pOpenInfo ) static ERRCODE dbfPutRec( AREAP pArea, BYTE * pBuffer ) { + HB_TRACE(("dbfPutRec(%p, %p)", pArea, pBuffer)); + if( SELF_GOHOT( pArea ) == FAILURE ) return FAILURE; @@ -1268,6 +1344,8 @@ static ERRCODE dbfPutValue( AREAP pArea, USHORT uiIndex, PHB_ITEM pItem ) long lDay, lMonth, lYear; PHB_ITEM pError; + HB_TRACE(("dbfPutValue(%p, %hu, %p)", pArea, uiIndex, pItem)); + if( uiIndex > pArea->uiFieldCount ) return FAILURE; @@ -1390,6 +1468,8 @@ static ERRCODE dbfPutValueFile( AREAP pArea, USHORT uiIndex, void * pFile ) BYTE * szText, szEndChar; ULONG lMemoBlock; + HB_TRACE(("dbfPutValueFile(%p, %hu, %p)", pArea, uiIndex, pFile)); + if( uiIndex > pArea->uiFieldCount ) return FAILURE; @@ -1411,6 +1491,8 @@ static ERRCODE dbfPutValueFile( AREAP pArea, USHORT uiIndex, void * pFile ) static ERRCODE dbfRawLock( AREAP pArea, USHORT uiAction, ULONG lRecNo ) { + HB_TRACE(("dbfRawLock(%p, %hu, %lu)", pArea, uiAction, lRecNo)); + if( SELF_GOCOLD( pArea ) == FAILURE ) return FAILURE; @@ -1448,6 +1530,8 @@ static ERRCODE dbfReadDBHeader( AREAP pArea ) char * szBuffer; USHORT uiFields, uiCount; + HB_TRACE(("dbfReadHeader(%p)", pArea)); + hb_fsSeek( pArea->lpFileInfo->hFile, 0, FS_SET ); if( hb_fsRead( pArea->lpFileInfo->hFile, ( BYTE * ) &pHeader, sizeof( DBFHEADER ) ) != sizeof( DBFHEADER ) ) @@ -1520,6 +1604,8 @@ static ERRCODE dbfReadDBHeader( AREAP pArea ) static ERRCODE dbfRecAll( AREAP pArea ) { + HB_TRACE(("dbfRecAll(%p)", pArea)); + if( SELF_GOHOT( pArea ) == FAILURE ) return FAILURE; @@ -1537,6 +1623,8 @@ static ERRCODE dbfRecCount( AREAP pArea, ULONG * pRecCount ) { DBFHEADER pHeader; + HB_TRACE(("dbfRecCount(%p, %p)", pArea, pRecCount)); + hb_fsSeek( pArea->lpFileInfo->hFile, 0, FS_SET ); if( hb_fsRead( pArea->lpFileInfo->hFile, ( BYTE * ) &pHeader, sizeof( DBFHEADER ) ) != sizeof( DBFHEADER ) ) @@ -1549,6 +1637,8 @@ static ERRCODE dbfRecInfo( AREAP pArea, PHB_ITEM pRecNo, USHORT uiType, PHB_ITEM { ULONG lRecNo; + HB_TRACE(("dbfRecInfo(%p, %p, %hu, %p)", pArea, pRecNo, uiType, pItem)); + lRecNo = pArea->lpExtendInfo->lRecNo; if( SELF_GOTOID( pArea, pRecNo ) == SUCCESS ) { @@ -1581,6 +1671,8 @@ static ERRCODE dbfRecInfo( AREAP pArea, PHB_ITEM pRecNo, USHORT uiType, PHB_ITEM static ERRCODE dbfRecNo( AREAP pArea, PHB_ITEM pRecNo ) { + HB_TRACE(("dbfRecNo(%p, %p)", pArea, pRecNo)); + hb_itemPutNL( pRecNo, pArea->lpExtendInfo->lRecNo ); return SUCCESS; } @@ -1590,6 +1682,8 @@ static ERRCODE dbfRelease( AREAP pArea ) USHORT uiCount; LPFIELD pField; + HB_TRACE(("dbfRelease(%p)", pArea)); + if( pArea->lpExtendInfo->fHasMemo ) { for( uiCount = 0; uiCount < pArea->uiFieldCount; uiCount++ ) @@ -1608,6 +1702,8 @@ static ERRCODE dbfRelease( AREAP pArea ) static ERRCODE dbfUnLock( AREAP pArea, ULONG lRecNo ) { + HB_TRACE(("dbfUnLock(%p, %lu)", pArea, lRecNo)); + if( lRecNo == 0 ) hb_dbfUnLockAllRecords( pArea ); else @@ -1624,6 +1720,8 @@ static ERRCODE dbfWriteDBHeader( AREAP pArea ) time_t t; struct tm * pTime; + HB_TRACE(("dbfWriteDBHeader(%p)", pArea)); + memset( &pHeader, 0, sizeof( DBFHEADER ) ); pHeader.uiRecordLen = 1; pHeader.bVersion = 0x03; @@ -1716,6 +1814,8 @@ static ERRCODE dbfZap( AREAP pArea ) DBOPENINFO pInfo; ULONG ulRecCount; + HB_TRACE(("dbfZap(%p)", pArea)); + if( !pArea->lpExtendInfo->fExclusive ) { pError = hb_errNew(); diff --git a/harbour/source/rdd/dbfcdx/dbfcdx1.c b/harbour/source/rdd/dbfcdx/dbfcdx1.c index d235585d5e..b1a8189242 100644 --- a/harbour/source/rdd/dbfcdx/dbfcdx1.c +++ b/harbour/source/rdd/dbfcdx/dbfcdx1.c @@ -118,6 +118,8 @@ static BOOL hb_nltoa( LONG lValue, char * szBuffer, USHORT uiLen ) LONG lAbsNumber; int iCount, iPos; + HB_TRACE(("hb_nltoa(%ld, %p, %hu)", lValue, szBuffer, uiLen)); + lAbsNumber = ( lValue > 0 ) ? lValue : - lValue; iCount = iPos = uiLen; while( iCount-- > 0 ) @@ -162,6 +164,8 @@ static ULONG hb_cdxSwapBytes( ULONG ulValue ) { BYTE * pValue, pByte; + HB_TRACE(("hb_cdxSwapBytes(%lu)", ulValue)); + pValue = ( BYTE * ) &ulValue; pByte = pValue[ 0 ]; pValue[ 0 ] = pValue[ 3 ]; @@ -177,6 +181,8 @@ static void hb_cdxReadMemo( AREAP pArea, LPDBFMEMO pMemo, ULONG lMemoBlock ) ULONG ulSpaceUsed; MEMOHEADER pMemoHeader; + HB_TRACE(("hb_cdxReadMemo(%p, %p, %lu)", pArea, pMemo, lMemoBlock)); + hb_fsSeek( pArea->lpFileInfo->pNext->hFile, lMemoBlock * MEMO_BLOCK, FS_SET ); hb_fsRead( pArea->lpFileInfo->pNext->hFile, ( BYTE * ) &pMemoHeader, sizeof( MEMOHEADER ) ); @@ -198,6 +204,8 @@ static BOOL hb_cdxWriteMemo( AREAP pArea, LPDBFMEMO pMemo, ULONG * lNewRecNo ) MEMOHEADER pMemoHeader; BYTE * pBuffer; + HB_TRACE(("hb_cdxWriteMemo(%p, %p, %p)", pArea, pMemo, lNewRecNo)); + if( !pArea->lpExtendInfo->fExclusive && !pArea->lpFileInfo->fFileLocked && !hb_fsLock( pArea->lpFileInfo->pNext->hFile, LOCK_APPEND - 1, 1, FL_LOCK ) ) return FALSE; @@ -316,6 +324,8 @@ static ERRCODE cdxCreateMemFile( AREAP pArea, LPDBOPENINFO pCreateInfo ) BOOL bError; PHB_ITEM pError = NULL; + HB_TRACE(("cdxCreateMemFile(%p, %p)", pArea, pCreateInfo)); + lpMemInfo = pArea->lpFileInfo->pNext; do { @@ -362,6 +372,8 @@ static ERRCODE cdxGetValueFile( AREAP pArea, USHORT uiIndex, void * pFile ) BYTE * szText, szEndChar; LPFIELD pField; + HB_TRACE(("cdxGetValueFile(%p, %hu, %p)", pArea, uiIndex, pFile)); + HB_SYMBOL_UNUSED( pFile ); if( uiIndex > pArea->uiFieldCount ) return FAILURE; @@ -388,6 +400,8 @@ static ERRCODE cdxGetValueFile( AREAP pArea, USHORT uiIndex, void * pFile ) static ERRCODE cdxInfo( AREAP pArea, USHORT uiIndex, PHB_ITEM pItem ) { + HB_TRACE(("cdxInfo(%p, %hu, %p)", pArea, uiIndex, pItem)); + if( uiIndex == DBI_MEMOEXT ) { hb_itemPutC( pItem, ".fpt" ); @@ -405,6 +419,8 @@ static ERRCODE cdxOpenMemFile( AREAP pArea, LPDBOPENINFO pOpenInfo ) PHB_ITEM pError = NULL; BOOL bRetry; + HB_TRACE(("cdxOpenMemFile(%p, %p)", pArea, pOpenInfo)); + lpMemInfo = pArea->lpFileInfo->pNext; uiFlags = pOpenInfo->fReadonly ? FO_READ : FO_READWRITE; uiFlags |= pOpenInfo->fShared ? FO_DENYNONE : FO_EXCLUSIVE; @@ -449,6 +465,8 @@ static ERRCODE cdxPutValueFile( AREAP pArea, USHORT uiIndex, void * pFile ) BYTE * szText, szEndChar; ULONG lMemoBlock; + HB_TRACE(("cdxPutValueFile(%p, %hu, %p)", pArea, uiIndex, pFile)); + HB_SYMBOL_UNUSED( pFile ); if( uiIndex > pArea->uiFieldCount ) @@ -479,6 +497,8 @@ static ERRCODE cdxWriteDBHeader( AREAP pArea ) time_t t; struct tm * pTime; + HB_TRACE(("cdxWriteDBHeader(%p)", pArea)); + memset( &pHeader, 0, sizeof( DBFHEADER ) ); pHeader.uiRecordLen = 1; pHeader.bVersion = 0x03;