ChangeLogTag:Tue Oct 26 12:55:49 1999 Gonzalo A. Diethelm <Gonzalo.Diethelm@jda.cl>

This commit is contained in:
Gonzalo A. Diethelm
1999-10-26 16:09:50 +00:00
parent 6eb090434e
commit 69cd472d59
4 changed files with 219 additions and 3 deletions

View File

@@ -1,3 +1,10 @@
Tue Oct 26 12:55:49 1999 Gonzalo A. Diethelm <Gonzalo.Diethelm@jda.cl>
* 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 <Gonzalo.Diethelm@jda.cl>
* source/vm/cmdarg.c:

View File

@@ -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 );

View File

@@ -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();

View File

@@ -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;