2009-01-05 18:20 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rdd/dbsql.c
* harbour/source/rdd/dbfntx/dbfntx1.c
* harbour/source/rdd/dbfnsx/dbfnsx1.c
* harbour/source/rdd/dbfcdx/dbfcdx1.c
* harbour/contrib/rddads/ads1.c
! reuse the same error object when CANRETRY flag is set for valid
TRIES member update
This commit is contained in:
@@ -8,6 +8,15 @@
|
||||
2008-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org)
|
||||
*/
|
||||
|
||||
2009-01-05 18:20 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
* harbour/source/rdd/dbsql.c
|
||||
* harbour/source/rdd/dbfntx/dbfntx1.c
|
||||
* harbour/source/rdd/dbfnsx/dbfnsx1.c
|
||||
* harbour/source/rdd/dbfcdx/dbfcdx1.c
|
||||
* harbour/contrib/rddads/ads1.c
|
||||
! reuse the same error object when CANRETRY flag is set for valid
|
||||
TRIES member update
|
||||
|
||||
2009-01-05 13:33 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
* harbour/include/hbgtcore.h
|
||||
* harbour/source/rtl/hbgtcore.c
|
||||
|
||||
@@ -149,24 +149,35 @@ static void adsSetSend( void )
|
||||
}
|
||||
|
||||
static ERRCODE commonError( ADSAREAP pArea, USHORT uiGenCode, USHORT uiSubCode,
|
||||
USHORT uiOsCode, char * szFileName, USHORT uiFlags )
|
||||
USHORT uiOsCode, const char * szFileName,
|
||||
USHORT uiFlags, PHB_ITEM * pErrorPtr )
|
||||
{
|
||||
ERRCODE errCode;
|
||||
PHB_ITEM pError;
|
||||
ERRCODE errCode = FAILURE;
|
||||
|
||||
pError = hb_errNew();
|
||||
hb_errPutGenCode( pError, uiGenCode );
|
||||
hb_errPutSubCode( pError, uiSubCode );
|
||||
hb_errPutDescription( pError, hb_langDGetErrorDesc( uiGenCode ) );
|
||||
if( uiOsCode )
|
||||
hb_errPutOsCode( pError, uiOsCode );
|
||||
if( szFileName )
|
||||
hb_errPutFileName( pError, szFileName );
|
||||
if( uiFlags )
|
||||
hb_errPutFlags( pError, uiFlags );
|
||||
errCode = SUPER_ERROR( ( AREAP ) pArea, pError );
|
||||
hb_itemRelease( pError );
|
||||
|
||||
if( hb_vmRequestQuery() == 0 )
|
||||
{
|
||||
if( pErrorPtr )
|
||||
{
|
||||
if( ! *pErrorPtr )
|
||||
*pErrorPtr = hb_errNew();
|
||||
pError = *pErrorPtr;
|
||||
}
|
||||
else
|
||||
pError = hb_errNew();
|
||||
hb_errPutGenCode( pError, uiGenCode );
|
||||
hb_errPutSubCode( pError, uiSubCode );
|
||||
hb_errPutDescription( pError, hb_langDGetErrorDesc( uiGenCode ) );
|
||||
if( uiOsCode )
|
||||
hb_errPutOsCode( pError, uiOsCode );
|
||||
if( szFileName )
|
||||
hb_errPutFileName( pError, szFileName );
|
||||
if( uiFlags )
|
||||
hb_errPutFlags( pError, uiFlags );
|
||||
errCode = SUPER_ERROR( ( AREAP ) pArea, pError );
|
||||
if( !pErrorPtr )
|
||||
hb_itemRelease( pError );
|
||||
}
|
||||
return errCode;
|
||||
}
|
||||
|
||||
@@ -388,7 +399,7 @@ static ERRCODE hb_adsCheckLock( ADSAREAP pArea )
|
||||
}
|
||||
if( !u16Locked )
|
||||
{
|
||||
commonError( pArea, EG_UNLOCKED, EDBF_UNLOCKED, 0, NULL, 0 );
|
||||
commonError( pArea, EG_UNLOCKED, EDBF_UNLOCKED, 0, NULL, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
}
|
||||
@@ -860,7 +871,7 @@ static ERRCODE adsGoToId( ADSAREAP pArea, PHB_ITEM pItem )
|
||||
}
|
||||
else
|
||||
{
|
||||
commonError( pArea, EG_DATATYPE, 1020, 0, NULL, 0 );
|
||||
commonError( pArea, EG_DATATYPE, 1020, 0, NULL, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
}
|
||||
@@ -899,7 +910,7 @@ static ERRCODE adsSeek( ADSAREAP pArea, BOOL bSoftSeek, PHB_ITEM pKey, BOOL bFin
|
||||
|
||||
if( ! pArea->hOrdCurrent )
|
||||
{
|
||||
commonError( pArea, EG_NOORDER, 1201, 0, NULL, EF_CANDEFAULT );
|
||||
commonError( pArea, EG_NOORDER, 1201, 0, NULL, EF_CANDEFAULT, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
@@ -946,7 +957,7 @@ static ERRCODE adsSeek( ADSAREAP pArea, BOOL bSoftSeek, PHB_ITEM pKey, BOOL bFin
|
||||
}
|
||||
else
|
||||
{
|
||||
commonError( pArea, EG_DATATYPE, 1020, 0, NULL, 0 );
|
||||
commonError( pArea, EG_DATATYPE, 1020, 0, NULL, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
@@ -1335,13 +1346,13 @@ static ERRCODE adsAppend( ADSAREAP pArea, BOOL fUnLockAll )
|
||||
}
|
||||
else if( u32RetVal == AE_TABLE_READONLY )
|
||||
{
|
||||
commonError( pArea, EG_READONLY, EDBF_READONLY, 0, NULL, 0 );
|
||||
commonError( pArea, EG_READONLY, EDBF_READONLY, 0, NULL, 0, NULL );
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 1001 and 7008 are standard ADS Open Errors that will usually be sharing issues */
|
||||
USHORT uiOsCOde = u32RetVal == 1001 || u32RetVal == 7008 ? 32 : 0;
|
||||
commonError( pArea, EG_APPENDLOCK, ( USHORT ) u32RetVal, uiOsCOde, NULL, EF_CANDEFAULT );
|
||||
commonError( pArea, EG_APPENDLOCK, ( USHORT ) u32RetVal, uiOsCOde, NULL, EF_CANDEFAULT, NULL );
|
||||
}
|
||||
|
||||
return FAILURE;
|
||||
@@ -2347,20 +2358,20 @@ static ERRCODE adsPutValue( ADSAREAP pArea, USHORT uiIndex, PHB_ITEM pItem )
|
||||
|
||||
if( bTypeError )
|
||||
{
|
||||
commonError( pArea, EG_DATATYPE, 1020, 0, NULL, 0 );
|
||||
commonError( pArea, EG_DATATYPE, 1020, 0, NULL, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
if( ulRetVal != AE_SUCCESS )
|
||||
{
|
||||
if( ulRetVal == AE_LOCK_FAILED || ulRetVal == AE_RECORD_NOT_LOCKED )
|
||||
commonError( pArea, EG_UNLOCKED, EDBF_UNLOCKED, 0, NULL, 0 );
|
||||
commonError( pArea, EG_UNLOCKED, EDBF_UNLOCKED, 0, NULL, 0, NULL );
|
||||
else if( ulRetVal == AE_TABLE_READONLY )
|
||||
commonError( pArea, EG_READONLY, EDBF_READONLY, 0, NULL, 0 );
|
||||
commonError( pArea, EG_READONLY, EDBF_READONLY, 0, NULL, 0, NULL );
|
||||
else if( ulRetVal == AE_DATA_TOO_LONG )
|
||||
commonError( pArea, EG_DATAWIDTH, EDBF_DATAWIDTH, 0, NULL, 0 );
|
||||
commonError( pArea, EG_DATAWIDTH, EDBF_DATAWIDTH, 0, NULL, 0, NULL );
|
||||
else
|
||||
commonError( pArea, EG_WRITE, ( USHORT ) ulRetVal, 0, NULL, 0 );
|
||||
commonError( pArea, EG_WRITE, ( USHORT ) ulRetVal, 0, NULL, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
@@ -2952,12 +2963,13 @@ static ERRCODE adsOpen( ADSAREAP pArea, LPDBOPENINFO pOpenInfo )
|
||||
}
|
||||
else
|
||||
{
|
||||
commonError( pArea, EG_OPEN, ( USHORT ) u32RetVal, 0, ( char * ) pOpenInfo->abName, 0 );
|
||||
commonError( pArea, EG_OPEN, ( USHORT ) u32RetVal, 0, ( char * ) pOpenInfo->abName, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
PHB_ITEM pError = NULL;
|
||||
BOOL fRetry;
|
||||
|
||||
/* Use an Advantage Data Dictionary
|
||||
@@ -2980,14 +2992,17 @@ static ERRCODE adsOpen( ADSAREAP pArea, LPDBOPENINFO pOpenInfo )
|
||||
/* 1001 and 7008 are standard ADS Open Errors that will usually be sharing issues */
|
||||
USHORT uiOsCOde = u32RetVal == 1001 || u32RetVal == 7008 ? 32 : 0;
|
||||
fRetry = commonError( pArea, EG_OPEN, ( USHORT ) u32RetVal, uiOsCOde,
|
||||
( char * ) pOpenInfo->abName,
|
||||
EF_CANRETRY | EF_CANDEFAULT ) == E_RETRY;
|
||||
( const char * ) pOpenInfo->abName,
|
||||
EF_CANRETRY | EF_CANDEFAULT, &pError ) == E_RETRY;
|
||||
}
|
||||
else
|
||||
fRetry = FALSE;
|
||||
}
|
||||
while( fRetry );
|
||||
|
||||
if( pError )
|
||||
hb_errRelease( pError );
|
||||
|
||||
if( u32RetVal != AE_SUCCESS )
|
||||
return FAILURE;
|
||||
}
|
||||
@@ -3226,12 +3241,12 @@ static ERRCODE adsPack( ADSAREAP pArea )
|
||||
|
||||
if( pArea->fReadonly )
|
||||
{
|
||||
commonError( pArea, EG_READONLY, EDBF_READONLY, 0, NULL, 0 );
|
||||
commonError( pArea, EG_READONLY, EDBF_READONLY, 0, NULL, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
if( pArea->fShared )
|
||||
{
|
||||
commonError( pArea, EG_SHARED, EDBF_SHARED, 0, NULL, 0 );
|
||||
commonError( pArea, EG_SHARED, EDBF_SHARED, 0, NULL, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
@@ -3251,12 +3266,12 @@ static ERRCODE adsZap( ADSAREAP pArea )
|
||||
|
||||
if( pArea->fReadonly )
|
||||
{
|
||||
commonError( pArea, EG_READONLY, EDBF_READONLY, 0, NULL, 0 );
|
||||
commonError( pArea, EG_READONLY, EDBF_READONLY, 0, NULL, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
if( pArea->fShared )
|
||||
{
|
||||
commonError( pArea, EG_SHARED, EDBF_SHARED, 0, NULL, 0 );
|
||||
commonError( pArea, EG_SHARED, EDBF_SHARED, 0, NULL, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
@@ -3387,7 +3402,8 @@ static ERRCODE adsOrderListAdd( ADSAREAP pArea, LPDBORDERINFO pOrderInfo )
|
||||
/* 1001 and 7008 are standard ADS Open Errors that will usually be sharing issues */
|
||||
USHORT uiOsCOde = u32RetVal == 1001 || u32RetVal == 7008 ? 32 : 0;
|
||||
commonError( pArea, EG_OPEN, ( USHORT ) u32RetVal, uiOsCOde,
|
||||
( char * ) hb_itemGetCPtr( pOrderInfo->atomBagName ), EF_CANDEFAULT );
|
||||
( char * ) hb_itemGetCPtr( pOrderInfo->atomBagName ),
|
||||
EF_CANDEFAULT, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
if( !pArea->hOrdCurrent && u16ArrayLen > 0 )
|
||||
@@ -3628,7 +3644,7 @@ static ERRCODE adsOrderCreate( ADSAREAP pArea, LPDBORDERCREATEINFO pOrderInfo )
|
||||
|
||||
if( u32RetVal != AE_SUCCESS )
|
||||
{
|
||||
commonError( pArea, EG_CREATE, ( USHORT ) u32RetVal, 0, ( char * ) pOrderInfo->abBagName, 0 );
|
||||
commonError( pArea, EG_CREATE, ( USHORT ) u32RetVal, 0, ( char * ) pOrderInfo->abBagName, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
else
|
||||
@@ -4357,7 +4373,7 @@ static ERRCODE adsGetValueFile( ADSAREAP pArea, USHORT uiIndex, BYTE * szFile, U
|
||||
( UNSIGNED8* ) szFile );
|
||||
if( u32RetVal != AE_SUCCESS )
|
||||
{
|
||||
/* commonError( pArea, EG_READ, ( USHORT ) u32RetVal, 0, NULL, 0 ); */
|
||||
/* commonError( pArea, EG_READ, ( USHORT ) u32RetVal, 0, NULL, 0, NULL ); */
|
||||
return FAILURE;
|
||||
}
|
||||
return SUCCESS;
|
||||
@@ -4394,7 +4410,7 @@ static ERRCODE adsPutValueFile( ADSAREAP pArea, USHORT uiIndex, BYTE * szFile, U
|
||||
( UNSIGNED8* ) szFile );
|
||||
if( u32RetVal != AE_SUCCESS )
|
||||
{
|
||||
commonError( pArea, EG_WRITE, ( USHORT ) u32RetVal, 0, NULL, 0 );
|
||||
commonError( pArea, EG_WRITE, ( USHORT ) u32RetVal, 0, NULL, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
return SUCCESS;
|
||||
|
||||
@@ -349,24 +349,34 @@ static void hb_cdxErrInternal( const char * szMsg )
|
||||
/*
|
||||
* generate Run-Time error
|
||||
*/
|
||||
static ERRCODE hb_cdxErrorRT( CDXAREAP pArea, USHORT uiGenCode, USHORT uiSubCode, const char * filename, USHORT uiOsCode, USHORT uiFlags )
|
||||
static ERRCODE hb_cdxErrorRT( CDXAREAP pArea, USHORT uiGenCode, USHORT uiSubCode,
|
||||
const char * filename, USHORT uiOsCode,
|
||||
USHORT uiFlags, PHB_ITEM * pErrorPtr )
|
||||
{
|
||||
PHB_ITEM pError;
|
||||
ERRCODE iRet = FAILURE;
|
||||
|
||||
if ( hb_vmRequestQuery() == 0 )
|
||||
if( hb_vmRequestQuery() == 0 )
|
||||
{
|
||||
pError = hb_errNew();
|
||||
if( pErrorPtr )
|
||||
{
|
||||
if( ! *pErrorPtr )
|
||||
*pErrorPtr = hb_errNew();
|
||||
pError = *pErrorPtr;
|
||||
}
|
||||
else
|
||||
pError = hb_errNew();
|
||||
hb_errPutGenCode( pError, uiGenCode );
|
||||
hb_errPutSubCode( pError, uiSubCode );
|
||||
hb_errPutOsCode( pError, uiOsCode );
|
||||
hb_errPutDescription( pError, hb_langDGetErrorDesc( uiGenCode ) );
|
||||
if ( filename )
|
||||
if( filename )
|
||||
hb_errPutFileName( pError, filename );
|
||||
if ( uiFlags )
|
||||
if( uiFlags )
|
||||
hb_errPutFlags( pError, uiFlags );
|
||||
iRet = SELF_ERROR( ( AREAP ) pArea, pError );
|
||||
hb_errRelease( pError );
|
||||
if( !pErrorPtr )
|
||||
hb_errRelease( pError );
|
||||
}
|
||||
return iRet;
|
||||
}
|
||||
@@ -1293,7 +1303,7 @@ static BOOL hb_cdxIndexLockRead( LPCDXINDEX pIndex )
|
||||
ret = hb_dbfLockIdxFile( pIndex->pFile, pIndex->pArea->bLockType,
|
||||
FL_LOCK | FLX_SHARED | FLX_WAIT, &pIndex->ulLockPos );
|
||||
if ( !ret )
|
||||
hb_cdxErrorRT( pIndex->pArea, EG_LOCK, EDBF_LOCK, pIndex->szFileName, hb_fsError(), 0 );
|
||||
hb_cdxErrorRT( pIndex->pArea, EG_LOCK, EDBF_LOCK, pIndex->szFileName, hb_fsError(), 0, NULL );
|
||||
|
||||
if ( ret )
|
||||
{
|
||||
@@ -1335,7 +1345,7 @@ static BOOL hb_cdxIndexLockWrite( LPCDXINDEX pIndex )
|
||||
FL_LOCK | FLX_EXCLUSIVE | FLX_WAIT, &pIndex->ulLockPos );
|
||||
}
|
||||
if ( !ret )
|
||||
hb_cdxErrorRT( pIndex->pArea, EG_LOCK, EDBF_LOCK, pIndex->szFileName, hb_fsError(), 0 );
|
||||
hb_cdxErrorRT( pIndex->pArea, EG_LOCK, EDBF_LOCK, pIndex->szFileName, hb_fsError(), 0, NULL );
|
||||
|
||||
if ( ret )
|
||||
{
|
||||
@@ -3467,7 +3477,7 @@ static void hb_cdxTagHeaderStore( LPCDXTAG pTag )
|
||||
|
||||
if( uiKeyLen + uiForLen > CDX_HEADEREXPLEN - 2 )
|
||||
{
|
||||
hb_cdxErrorRT( pTag->pIndex->pArea, EG_DATAWIDTH, EDBF_KEYLENGTH, NULL, 0, 0 );
|
||||
hb_cdxErrorRT( pTag->pIndex->pArea, EG_DATAWIDTH, EDBF_KEYLENGTH, NULL, 0, 0, NULL );
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -6530,7 +6540,7 @@ static ERRCODE hb_cdxSeek( CDXAREAP pArea, BOOL fSoftSeek, PHB_ITEM pKeyItm, BOO
|
||||
|
||||
if ( ! pTag )
|
||||
{
|
||||
hb_cdxErrorRT( pArea, EG_NOORDER, EDBF_NOTINDEXED, NULL, 0, EF_CANDEFAULT );
|
||||
hb_cdxErrorRT( pArea, EG_NOORDER, EDBF_NOTINDEXED, NULL, 0, EF_CANDEFAULT, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
else
|
||||
@@ -7180,6 +7190,7 @@ static ERRCODE hb_cdxOrderListAdd( CDXAREAP pArea, LPDBORDERINFO pOrderInfo )
|
||||
char szFileName[ _POSIX_PATH_MAX + 1 ];
|
||||
LPCDXINDEX pIndex, * pIndexPtr;
|
||||
BOOL fProd, bRetry;
|
||||
PHB_ITEM pError = NULL;
|
||||
|
||||
HB_TRACE(HB_TR_DEBUG, ("hb_cdxOrderListAdd(%p, %p)", pArea, pOrderInfo));
|
||||
|
||||
@@ -7215,10 +7226,11 @@ static ERRCODE hb_cdxOrderListAdd( CDXAREAP pArea, LPDBORDERINFO pOrderInfo )
|
||||
{
|
||||
pFile = hb_fileExtOpen( ( BYTE * ) szFileName, NULL, uiFlags |
|
||||
FXO_DEFAULTS | FXO_SHARELOCK | FXO_COPYNAME,
|
||||
NULL, NULL );
|
||||
NULL, pError );
|
||||
if( !pFile )
|
||||
bRetry = ( hb_cdxErrorRT( pArea, EG_OPEN, EDBF_OPEN_INDEX, szFileName,
|
||||
hb_fsError(), EF_CANRETRY | EF_CANDEFAULT ) == E_RETRY );
|
||||
bRetry = hb_cdxErrorRT( pArea, EG_OPEN, EDBF_OPEN_INDEX, szFileName,
|
||||
hb_fsError(), EF_CANRETRY | EF_CANDEFAULT,
|
||||
&pError ) == E_RETRY;
|
||||
else
|
||||
{
|
||||
if( hb_fileSize( pFile ) <= ( HB_FOFFSET ) sizeof( CDXTAGHEADER ) )
|
||||
@@ -7226,13 +7238,16 @@ static ERRCODE hb_cdxOrderListAdd( CDXAREAP pArea, LPDBORDERINFO pOrderInfo )
|
||||
hb_fileClose( pFile );
|
||||
pFile = NULL;
|
||||
hb_cdxErrorRT( pArea, EG_CORRUPTION, EDBF_CORRUPT,
|
||||
szFileName, hb_fsError(), EF_CANDEFAULT );
|
||||
szFileName, hb_fsError(), EF_CANDEFAULT, NULL );
|
||||
}
|
||||
bRetry = FALSE;
|
||||
}
|
||||
|
||||
} while( bRetry );
|
||||
|
||||
if( pError )
|
||||
hb_errRelease( pError );
|
||||
|
||||
if( !pFile )
|
||||
{
|
||||
return FAILURE;
|
||||
@@ -7255,7 +7270,7 @@ static ERRCODE hb_cdxOrderListAdd( CDXAREAP pArea, LPDBORDERINFO pOrderInfo )
|
||||
*pIndexPtr = NULL;
|
||||
hb_cdxIndexFree( pIndex );
|
||||
hb_cdxErrorRT( pArea, EG_CORRUPTION, EDBF_CORRUPT,
|
||||
szFileName, hb_fsError(), EF_CANDEFAULT );
|
||||
szFileName, hb_fsError(), EF_CANDEFAULT, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
@@ -7373,12 +7388,12 @@ static ERRCODE hb_cdxOrderListRebuild( CDXAREAP pArea )
|
||||
|
||||
if ( pArea->fShared )
|
||||
{
|
||||
hb_cdxErrorRT( pArea, EG_SHARED, EDBF_SHARED, pArea->szDataFileName, 0, 0 );
|
||||
hb_cdxErrorRT( pArea, EG_SHARED, EDBF_SHARED, pArea->szDataFileName, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
if ( pArea->fReadonly )
|
||||
{
|
||||
hb_cdxErrorRT( pArea, EG_READONLY, EDBF_READONLY, pArea->szDataFileName, 0, 0 );
|
||||
hb_cdxErrorRT( pArea, EG_READONLY, EDBF_READONLY, pArea->szDataFileName, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
@@ -7440,7 +7455,7 @@ static ERRCODE hb_cdxOrderCreate( CDXAREAP pArea, LPDBORDERCREATEINFO pOrderInfo
|
||||
hb_strlentrim( ( const char * ) pArea->lpdbOrdCondInfo->abFor ) : 0 ) >
|
||||
CDX_HEADEREXPLEN - 2 )
|
||||
{
|
||||
hb_cdxErrorRT( pArea, EG_DATAWIDTH, EDBF_KEYLENGTH, NULL, 0, 0 );
|
||||
hb_cdxErrorRT( pArea, EG_DATAWIDTH, EDBF_KEYLENGTH, NULL, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
@@ -7496,13 +7511,13 @@ static ERRCODE hb_cdxOrderCreate( CDXAREAP pArea, LPDBORDERCREATEINFO pOrderInfo
|
||||
{
|
||||
hb_vmDestroyBlockOrMacro( pKeyExp );
|
||||
SELF_GOTO( ( AREAP ) pArea, ulRecNo );
|
||||
hb_cdxErrorRT( pArea, bType == 'U' ? EG_DATATYPE : EG_DATAWIDTH, EDBF_INVALIDKEY, NULL, 0, 0 );
|
||||
hb_cdxErrorRT( pArea, bType == 'U' ? EG_DATATYPE : EG_DATAWIDTH, EDBF_INVALIDKEY, NULL, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
#if defined(HB_COMPAT_C53) && defined(HB_C52_STRICT)
|
||||
else if ( bType == 'C' && uiLen > CDX_MAXKEY )
|
||||
{
|
||||
if( hb_cdxErrorRT( pArea, EG_DATAWIDTH, EDBF_INVALIDKEY, NULL, 0, EF_CANDEFAULT ) == E_DEFAULT )
|
||||
if( hb_cdxErrorRT( pArea, EG_DATAWIDTH, EDBF_INVALIDKEY, NULL, 0, EF_CANDEFAULT, NULL ) == E_DEFAULT )
|
||||
uiLen = CDX_MAXKEY;
|
||||
else
|
||||
{
|
||||
@@ -7560,7 +7575,7 @@ static ERRCODE hb_cdxOrderCreate( CDXAREAP pArea, LPDBORDERCREATEINFO pOrderInfo
|
||||
hb_vmDestroyBlockOrMacro( pKeyExp );
|
||||
hb_vmDestroyBlockOrMacro( pForExp );
|
||||
SELF_GOTO( ( AREAP ) pArea, ulRecNo );
|
||||
hb_cdxErrorRT( pArea, EG_DATATYPE, EDBF_INVALIDFOR, NULL, 0, 0 );
|
||||
hb_cdxErrorRT( pArea, EG_DATATYPE, EDBF_INVALIDFOR, NULL, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
}
|
||||
@@ -7617,6 +7632,7 @@ static ERRCODE hb_cdxOrderCreate( CDXAREAP pArea, LPDBORDERCREATEINFO pOrderInfo
|
||||
{
|
||||
PHB_FILE pFile;
|
||||
BOOL bRetry, fShared = pArea->fShared && !fTemporary && !fExclusive;
|
||||
PHB_ITEM pError = NULL;
|
||||
|
||||
do
|
||||
{
|
||||
@@ -7631,11 +7647,12 @@ static ERRCODE hb_cdxOrderCreate( CDXAREAP pArea, LPDBORDERCREATEINFO pOrderInfo
|
||||
( fShared ? FO_DENYNONE : FO_EXCLUSIVE ) |
|
||||
( fNewFile ? FXO_TRUNCATE : FXO_APPEND ) |
|
||||
FXO_DEFAULTS | FXO_SHARELOCK | FXO_COPYNAME,
|
||||
NULL, NULL );
|
||||
NULL, pError );
|
||||
}
|
||||
if( !pFile )
|
||||
bRetry = ( hb_cdxErrorRT( pArea, EG_CREATE, EDBF_CREATE, szFileName,
|
||||
hb_fsError(), EF_CANRETRY | EF_CANDEFAULT ) == E_RETRY );
|
||||
bRetry = hb_cdxErrorRT( pArea, EG_CREATE, EDBF_CREATE, szFileName,
|
||||
hb_fsError(), EF_CANRETRY | EF_CANDEFAULT,
|
||||
&pError ) == E_RETRY;
|
||||
else
|
||||
{
|
||||
bRetry = FALSE;
|
||||
@@ -7645,6 +7662,9 @@ static ERRCODE hb_cdxOrderCreate( CDXAREAP pArea, LPDBORDERCREATEINFO pOrderInfo
|
||||
}
|
||||
while( bRetry );
|
||||
|
||||
if( pError )
|
||||
hb_errRelease( pError );
|
||||
|
||||
if( pFile )
|
||||
{
|
||||
pIndex = hb_cdxIndexNew( pArea );
|
||||
@@ -7667,7 +7687,7 @@ static ERRCODE hb_cdxOrderCreate( CDXAREAP pArea, LPDBORDERCREATEINFO pOrderInfo
|
||||
hb_fileClose( pFile );
|
||||
pFile = NULL;
|
||||
hb_cdxErrorRT( pArea, EG_CORRUPTION, EDBF_CORRUPT,
|
||||
szFileName, hb_fsError(), EF_CANDEFAULT );
|
||||
szFileName, hb_fsError(), EF_CANDEFAULT, NULL );
|
||||
*/
|
||||
hb_cdxIndexFreeTags( pIndex );
|
||||
fNewFile = TRUE;
|
||||
@@ -8422,7 +8442,7 @@ static ERRCODE hb_cdxOrderInfo( CDXAREAP pArea, USHORT uiIndex, LPDBORDERINFO pI
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_cdxErrorRT( pArea, 0, EDBF_NOTCUSTOM, NULL, 0, 0 );
|
||||
hb_cdxErrorRT( pArea, 0, EDBF_NOTCUSTOM, NULL, 0, 0, NULL );
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -8470,7 +8490,7 @@ static ERRCODE hb_cdxOrderInfo( CDXAREAP pArea, USHORT uiIndex, LPDBORDERINFO pI
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_cdxErrorRT( pArea, 0, EDBF_NOTCUSTOM, NULL, 0, 0 );
|
||||
hb_cdxErrorRT( pArea, 0, EDBF_NOTCUSTOM, NULL, 0, 0, NULL );
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -451,14 +451,23 @@ static USHORT hb_nsxLeafPutKey( LPTAGINFO pTag, LPPAGEINFO pPage, USHORT uiOffse
|
||||
/*
|
||||
* generate Run-Time error
|
||||
*/
|
||||
static ERRCODE hb_nsxErrorRT( NSXAREAP pArea, USHORT uiGenCode, USHORT uiSubCode, const char * szFileName, USHORT uiOsCode, USHORT uiFlags )
|
||||
static ERRCODE hb_nsxErrorRT( NSXAREAP pArea, USHORT uiGenCode, USHORT uiSubCode,
|
||||
const char * szFileName, USHORT uiOsCode,
|
||||
USHORT uiFlags, PHB_ITEM * pErrorPtr )
|
||||
{
|
||||
PHB_ITEM pError;
|
||||
ERRCODE iRet = FAILURE;
|
||||
|
||||
if( hb_vmRequestQuery() == 0 )
|
||||
{
|
||||
pError = hb_errNew();
|
||||
if( pErrorPtr )
|
||||
{
|
||||
if( ! *pErrorPtr )
|
||||
*pErrorPtr = hb_errNew();
|
||||
pError = *pErrorPtr;
|
||||
}
|
||||
else
|
||||
pError = hb_errNew();
|
||||
hb_errPutGenCode( pError, uiGenCode );
|
||||
hb_errPutSubCode( pError, uiSubCode );
|
||||
hb_errPutOsCode( pError, uiOsCode );
|
||||
@@ -468,7 +477,8 @@ static ERRCODE hb_nsxErrorRT( NSXAREAP pArea, USHORT uiGenCode, USHORT uiSubCode
|
||||
if( uiFlags )
|
||||
hb_errPutFlags( pError, uiFlags );
|
||||
iRet = SELF_ERROR( ( AREAP ) pArea, pError );
|
||||
hb_errRelease( pError );
|
||||
if( !pErrorPtr )
|
||||
hb_errRelease( pError );
|
||||
}
|
||||
return iRet;
|
||||
}
|
||||
@@ -476,7 +486,7 @@ static ERRCODE hb_nsxErrorRT( NSXAREAP pArea, USHORT uiGenCode, USHORT uiSubCode
|
||||
static void hb_nsxCorruptError( LPNSXINDEX pIndex )
|
||||
{
|
||||
hb_nsxErrorRT( pIndex->pArea, EG_CORRUPTION, EDBF_CORRUPT,
|
||||
pIndex->IndexName, 0, 0 );
|
||||
pIndex->IndexName, 0, 0, NULL );
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1117,7 +1127,7 @@ static BOOL hb_nsxBlockRead( LPNSXINDEX pIndex, ULONG ulBlock, BYTE *buffer, int
|
||||
hb_nsxFileOffset( pIndex, ulBlock ) ) != ( ULONG ) iSize )
|
||||
{
|
||||
hb_nsxErrorRT( pIndex->pArea, EG_READ, EDBF_READ,
|
||||
pIndex->IndexName, hb_fsError(), 0 );
|
||||
pIndex->IndexName, hb_fsError(), 0, NULL );
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
@@ -1135,7 +1145,7 @@ static BOOL hb_nsxBlockWrite( LPNSXINDEX pIndex, ULONG ulBlock, BYTE *buffer, in
|
||||
hb_nsxFileOffset( pIndex, ulBlock ) ) != ( ULONG ) iSize )
|
||||
{
|
||||
hb_nsxErrorRT( pIndex->pArea, EG_WRITE, EDBF_WRITE,
|
||||
pIndex->IndexName, hb_fsError(), 0 );
|
||||
pIndex->IndexName, hb_fsError(), 0, NULL );
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
@@ -2093,7 +2103,7 @@ static BOOL hb_nsxIndexLockRead( LPNSXINDEX pIndex )
|
||||
}
|
||||
}
|
||||
if( !fOK )
|
||||
hb_nsxErrorRT( pIndex->pArea, EG_LOCK, EDBF_LOCK, pIndex->IndexName, hb_fsError(), 0 );
|
||||
hb_nsxErrorRT( pIndex->pArea, EG_LOCK, EDBF_LOCK, pIndex->IndexName, hb_fsError(), 0, NULL );
|
||||
|
||||
return fOK;
|
||||
}
|
||||
@@ -2136,7 +2146,7 @@ static BOOL hb_nsxIndexLockWrite( LPNSXINDEX pIndex, BOOL fCheck )
|
||||
}
|
||||
}
|
||||
if( !fOK )
|
||||
hb_nsxErrorRT( pIndex->pArea, EG_LOCK, EDBF_LOCK, pIndex->IndexName, hb_fsError(), 0 );
|
||||
hb_nsxErrorRT( pIndex->pArea, EG_LOCK, EDBF_LOCK, pIndex->IndexName, hb_fsError(), 0, NULL );
|
||||
|
||||
return fOK;
|
||||
}
|
||||
@@ -4943,7 +4953,7 @@ static void hb_nsxSortBufferFlush( LPNSXSORTINFO pSort )
|
||||
hb_nsxFileOffset( pIndex, pSort->ulFirstIO ) ) != ulSize )
|
||||
{
|
||||
hb_nsxErrorRT( pIndex->pArea, EG_WRITE, EDBF_WRITE,
|
||||
pIndex->IndexName, hb_fsError(), 0 );
|
||||
pIndex->IndexName, hb_fsError(), 0, NULL );
|
||||
}
|
||||
pSort->ulPagesIO = 0;
|
||||
pIndex->fFlush = TRUE;
|
||||
@@ -5077,7 +5087,7 @@ static void hb_nsxSortWritePage( LPNSXSORTINFO pSort )
|
||||
pSort->hTempFile = hb_fsCreateTemp( NULL, NULL, FC_NORMAL, szName );
|
||||
if( pSort->hTempFile == FS_ERROR )
|
||||
hb_nsxErrorRT( pSort->pTag->pIndex->pArea, EG_CREATE, EDBF_CREATE_TEMP,
|
||||
( const char * ) szName, 0, 0 );
|
||||
( const char * ) szName, 0, 0, NULL );
|
||||
else
|
||||
pSort->szTempFileName = hb_strdup( ( const char * ) szName );
|
||||
}
|
||||
@@ -5088,7 +5098,7 @@ static void hb_nsxSortWritePage( LPNSXSORTINFO pSort )
|
||||
pSort->pSwapPage[ pSort->ulCurPage ].nOffset = hb_fsSeekLarge( pSort->hTempFile, 0, FS_END );
|
||||
if( hb_fsWriteLarge( pSort->hTempFile, pSort->pStartKey, ulSize ) != ulSize )
|
||||
hb_nsxErrorRT( pSort->pTag->pIndex->pArea, EG_WRITE, EDBF_WRITE_TEMP,
|
||||
pSort->szTempFileName, 0, 0 );
|
||||
pSort->szTempFileName, 0, 0, NULL );
|
||||
}
|
||||
else
|
||||
pSort->pSwapPage[ pSort->ulCurPage ].nOffset = 0;
|
||||
@@ -5111,7 +5121,7 @@ static void hb_nsxSortGetPageKey( LPNSXSORTINFO pSort, ULONG ulPage,
|
||||
hb_fsReadLarge( pSort->hTempFile, pSort->pSwapPage[ ulPage ].pKeyPool, ulSize ) != ulSize ) )
|
||||
{
|
||||
hb_nsxErrorRT( pSort->pTag->pIndex->pArea, EG_READ, EDBF_READ_TEMP,
|
||||
pSort->szTempFileName, 0, 0 );
|
||||
pSort->szTempFileName, 0, 0, NULL );
|
||||
}
|
||||
pSort->pSwapPage[ ulPage ].nOffset += ulSize;
|
||||
pSort->pSwapPage[ ulPage ].ulKeyBuf = ulKeys;
|
||||
@@ -5809,7 +5819,7 @@ static ERRCODE hb_nsxTagCreate( LPTAGINFO pTag, BOOL fReindex )
|
||||
|
||||
default:
|
||||
hb_nsxErrorRT( pArea, EG_DATATYPE, EDBF_INVALIDKEY,
|
||||
pTag->pIndex->IndexName, 0, 0 );
|
||||
pTag->pIndex->IndexName, 0, 0, NULL );
|
||||
errCode = FAILURE;
|
||||
pTag->Partial = TRUE;
|
||||
pEvalItem = NULL;
|
||||
@@ -5990,7 +6000,7 @@ static ERRCODE hb_nsxSeek( NSXAREAP pArea, BOOL fSoftSeek, PHB_ITEM pItem, BOOL
|
||||
|
||||
if( ! pArea->lpCurTag )
|
||||
{
|
||||
hb_nsxErrorRT( pArea, EG_NOORDER, EDBF_NOTINDEXED, NULL, 0, EF_CANDEFAULT );
|
||||
hb_nsxErrorRT( pArea, EG_NOORDER, EDBF_NOTINDEXED, NULL, 0, EF_CANDEFAULT, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
else
|
||||
@@ -6555,7 +6565,7 @@ static ERRCODE hb_nsxOrderCreate( NSXAREAP pArea, LPDBORDERCREATEINFO pOrderInfo
|
||||
hb_vmDestroyBlockOrMacro( pKeyExp );
|
||||
SELF_GOTO( ( AREAP ) pArea, ulRecNo );
|
||||
hb_nsxErrorRT( pArea, bType == 'U' ? EG_DATATYPE : EG_DATAWIDTH,
|
||||
1026, NULL, 0, 0 );
|
||||
1026, NULL, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
@@ -6606,7 +6616,7 @@ static ERRCODE hb_nsxOrderCreate( NSXAREAP pArea, LPDBORDERCREATEINFO pOrderInfo
|
||||
hb_vmDestroyBlockOrMacro( pKeyExp );
|
||||
hb_vmDestroyBlockOrMacro( pForExp );
|
||||
SELF_GOTO( ( AREAP ) pArea, ulRecNo );
|
||||
hb_nsxErrorRT( pArea, EG_DATATYPE, EDBF_INVALIDFOR, NULL, 0, 0 );
|
||||
hb_nsxErrorRT( pArea, EG_DATATYPE, EDBF_INVALIDFOR, NULL, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
}
|
||||
@@ -6634,7 +6644,7 @@ static ERRCODE hb_nsxOrderCreate( NSXAREAP pArea, LPDBORDERCREATEINFO pOrderInfo
|
||||
hb_vmDestroyBlockOrMacro( pKeyExp );
|
||||
if( pForExp != NULL )
|
||||
hb_vmDestroyBlockOrMacro( pForExp );
|
||||
hb_nsxErrorRT( pArea, EG_READONLY, EDBF_READONLY, pIndex->IndexName, 0, 0 );
|
||||
hb_nsxErrorRT( pArea, EG_READONLY, EDBF_READONLY, pIndex->IndexName, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
#if 0 /* enable this code if you want to forbid tag deleting in shared mode */
|
||||
@@ -6643,7 +6653,7 @@ static ERRCODE hb_nsxOrderCreate( NSXAREAP pArea, LPDBORDERCREATEINFO pOrderInfo
|
||||
hb_vmDestroyBlockOrMacro( pKeyExp );
|
||||
if( pForExp != NULL )
|
||||
hb_vmDestroyBlockOrMacro( pForExp );
|
||||
hb_nsxErrorRT( pArea, EG_SHARED, EDBF_SHARED, pIndex->IndexName, 0, 0 );
|
||||
hb_nsxErrorRT( pArea, EG_SHARED, EDBF_SHARED, pIndex->IndexName, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
#endif
|
||||
@@ -6653,6 +6663,7 @@ static ERRCODE hb_nsxOrderCreate( NSXAREAP pArea, LPDBORDERCREATEINFO pOrderInfo
|
||||
PHB_FILE pFile;
|
||||
BOOL bRetry, fShared = pArea->fShared && !fTemporary && !fExclusive;
|
||||
USHORT uiFlags = FO_READWRITE | ( fShared ? FO_DENYNONE : FO_EXCLUSIVE );
|
||||
PHB_ITEM pError = NULL;
|
||||
|
||||
do
|
||||
{
|
||||
@@ -6666,11 +6677,12 @@ static ERRCODE hb_nsxOrderCreate( NSXAREAP pArea, LPDBORDERCREATEINFO pOrderInfo
|
||||
pFile = hb_fileExtOpen( ( BYTE * ) szFileName, NULL, uiFlags |
|
||||
( fNewFile ? FXO_TRUNCATE : FXO_APPEND ) |
|
||||
FXO_DEFAULTS | FXO_SHARELOCK | FXO_COPYNAME,
|
||||
NULL, NULL );
|
||||
NULL, pError );
|
||||
}
|
||||
if( !pFile )
|
||||
bRetry = ( hb_nsxErrorRT( pArea, EG_CREATE, EDBF_CREATE, szFileName,
|
||||
hb_fsError(), EF_CANRETRY | EF_CANDEFAULT ) == E_RETRY );
|
||||
bRetry = hb_nsxErrorRT( pArea, EG_CREATE, EDBF_CREATE, szFileName,
|
||||
hb_fsError(), EF_CANRETRY | EF_CANDEFAULT,
|
||||
&pError ) == E_RETRY;
|
||||
else
|
||||
{
|
||||
bRetry = FALSE;
|
||||
@@ -6680,6 +6692,9 @@ static ERRCODE hb_nsxOrderCreate( NSXAREAP pArea, LPDBORDERCREATEINFO pOrderInfo
|
||||
}
|
||||
while( bRetry );
|
||||
|
||||
if( pError )
|
||||
hb_errRelease( pError );
|
||||
|
||||
if( !pFile )
|
||||
{
|
||||
hb_vmDestroyBlockOrMacro( pKeyExp );
|
||||
@@ -6719,7 +6734,7 @@ static ERRCODE hb_nsxOrderCreate( NSXAREAP pArea, LPDBORDERCREATEINFO pOrderInfo
|
||||
if( pForExp != NULL )
|
||||
hb_vmDestroyBlockOrMacro( pForExp );
|
||||
/* hb_nsxSetTagNumbers() */
|
||||
hb_nsxErrorRT( pArea, EG_CORRUPTION, EDBF_CORRUPT, szFileName, 0, 0 );
|
||||
hb_nsxErrorRT( pArea, EG_CORRUPTION, EDBF_CORRUPT, szFileName, 0, 0, NULL );
|
||||
return errCode;
|
||||
}
|
||||
}
|
||||
@@ -6747,7 +6762,7 @@ static ERRCODE hb_nsxOrderCreate( NSXAREAP pArea, LPDBORDERCREATEINFO pOrderInfo
|
||||
if( pForExp != NULL )
|
||||
hb_vmDestroyBlockOrMacro( pForExp );
|
||||
/* hb_nsxSetTagNumbers() */
|
||||
hb_nsxErrorRT( pArea, EG_LIMIT, EDBF_LIMITEXCEEDED, pIndex->IndexName, 0, 0 );
|
||||
hb_nsxErrorRT( pArea, EG_LIMIT, EDBF_LIMITEXCEEDED, pIndex->IndexName, 0, 0, NULL );
|
||||
errCode = FAILURE;
|
||||
}
|
||||
|
||||
@@ -6880,13 +6895,13 @@ static ERRCODE hb_nsxOrderDestroy( NSXAREAP pArea, LPDBORDERINFO pOrderInfo )
|
||||
}
|
||||
else if( pIndex->fReadonly )
|
||||
{
|
||||
hb_nsxErrorRT( pArea, EG_READONLY, EDBF_READONLY, pIndex->IndexName, 0, 0 );
|
||||
hb_nsxErrorRT( pArea, EG_READONLY, EDBF_READONLY, pIndex->IndexName, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
#if 0 /* enable this code if you want to forbid tag deleting in shared mode */
|
||||
else if( pIndex->fShared )
|
||||
{
|
||||
hb_nsxErrorRT( pArea, EG_SHARED, EDBF_SHARED, pIndex->IndexName, 0, 0 );
|
||||
hb_nsxErrorRT( pArea, EG_SHARED, EDBF_SHARED, pIndex->IndexName, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
#endif
|
||||
@@ -7287,7 +7302,7 @@ static ERRCODE hb_nsxOrderInfo( NSXAREAP pArea, USHORT uiIndex, LPDBORDERINFO pI
|
||||
case DBOI_KEYADD:
|
||||
if( pTag->pIndex->fReadonly )
|
||||
{
|
||||
hb_nsxErrorRT( pArea, EG_READONLY, EDBF_READONLY, pTag->pIndex->IndexName, 0, 0 );
|
||||
hb_nsxErrorRT( pArea, EG_READONLY, EDBF_READONLY, pTag->pIndex->IndexName, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
if( pTag->Custom )
|
||||
@@ -7297,14 +7312,14 @@ static ERRCODE hb_nsxOrderInfo( NSXAREAP pArea, USHORT uiIndex, LPDBORDERINFO pI
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_nsxErrorRT( pArea, 0, 1052, NULL, 0, 0 );
|
||||
hb_nsxErrorRT( pArea, 0, 1052, NULL, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
break;
|
||||
case DBOI_KEYDELETE:
|
||||
if( pTag->pIndex->fReadonly )
|
||||
{
|
||||
hb_nsxErrorRT( pArea, EG_READONLY, EDBF_READONLY, pTag->pIndex->IndexName, 0, 0 );
|
||||
hb_nsxErrorRT( pArea, EG_READONLY, EDBF_READONLY, pTag->pIndex->IndexName, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
if( pTag->Custom )
|
||||
@@ -7314,7 +7329,7 @@ static ERRCODE hb_nsxOrderInfo( NSXAREAP pArea, USHORT uiIndex, LPDBORDERINFO pI
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_nsxErrorRT( pArea, 0, 1052, NULL, 0, 0 );
|
||||
hb_nsxErrorRT( pArea, 0, 1052, NULL, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
break;
|
||||
@@ -7609,6 +7624,7 @@ static ERRCODE hb_nsxOrderListAdd( NSXAREAP pArea, LPDBORDERINFO pOrderInfo )
|
||||
|
||||
if( ! pIndex )
|
||||
{
|
||||
PHB_ITEM pError = NULL;
|
||||
fReadonly = pArea->fReadonly;
|
||||
fShared = pArea->fShared;
|
||||
uiFlags = ( fReadonly ? FO_READ : FO_READWRITE ) |
|
||||
@@ -7618,15 +7634,19 @@ static ERRCODE hb_nsxOrderListAdd( NSXAREAP pArea, LPDBORDERINFO pOrderInfo )
|
||||
fRetry = FALSE;
|
||||
pFile = hb_fileExtOpen( ( BYTE * ) szFileName, NULL, uiFlags |
|
||||
FXO_DEFAULTS | FXO_SHARELOCK | FXO_COPYNAME,
|
||||
NULL, NULL );
|
||||
NULL, pError );
|
||||
if( !pFile )
|
||||
{
|
||||
fRetry = ( hb_nsxErrorRT( pArea, EG_OPEN, EDBF_OPEN_INDEX, szFileName,
|
||||
hb_fsError(), EF_CANRETRY | EF_CANDEFAULT ) == E_RETRY );
|
||||
fRetry = hb_nsxErrorRT( pArea, EG_OPEN, EDBF_OPEN_INDEX, szFileName,
|
||||
hb_fsError(), EF_CANRETRY | EF_CANDEFAULT,
|
||||
&pError ) == E_RETRY;
|
||||
}
|
||||
}
|
||||
while( fRetry );
|
||||
|
||||
if( pError )
|
||||
hb_errRelease( pError );
|
||||
|
||||
if( !pFile )
|
||||
return FAILURE;
|
||||
|
||||
@@ -7648,7 +7668,7 @@ static ERRCODE hb_nsxOrderListAdd( NSXAREAP pArea, LPDBORDERINFO pOrderInfo )
|
||||
if( errCode != SUCCESS )
|
||||
{
|
||||
hb_nsxIndexFree( pIndex );
|
||||
hb_nsxErrorRT( pArea, EG_CORRUPTION, EDBF_CORRUPT, szFileName, 0, 0 );
|
||||
hb_nsxErrorRT( pArea, EG_CORRUPTION, EDBF_CORRUPT, szFileName, 0, 0, NULL );
|
||||
return errCode;
|
||||
}
|
||||
|
||||
@@ -7776,12 +7796,12 @@ static ERRCODE hb_nsxOrderListRebuild( NSXAREAP pArea )
|
||||
|
||||
if( pArea->fShared )
|
||||
{
|
||||
hb_nsxErrorRT( pArea, EG_SHARED, EDBF_SHARED, pArea->szDataFileName, 0, 0 );
|
||||
hb_nsxErrorRT( pArea, EG_SHARED, EDBF_SHARED, pArea->szDataFileName, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
if( pArea->fReadonly )
|
||||
{
|
||||
hb_nsxErrorRT( pArea, EG_READONLY, EDBF_READONLY, pArea->szDataFileName, 0, 0 );
|
||||
hb_nsxErrorRT( pArea, EG_READONLY, EDBF_READONLY, pArea->szDataFileName, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
|
||||
@@ -252,14 +252,23 @@ static ULONG hb_ntxGetKeyRec( LPPAGEINFO pPage, SHORT iKey )
|
||||
/*
|
||||
* generate Run-Time error
|
||||
*/
|
||||
static ERRCODE hb_ntxErrorRT( NTXAREAP pArea, USHORT uiGenCode, USHORT uiSubCode, char * szFileName, USHORT uiOsCode, USHORT uiFlags )
|
||||
static ERRCODE hb_ntxErrorRT( NTXAREAP pArea, USHORT uiGenCode, USHORT uiSubCode,
|
||||
const char * szFileName, USHORT uiOsCode,
|
||||
USHORT uiFlags, PHB_ITEM * pErrorPtr )
|
||||
{
|
||||
PHB_ITEM pError;
|
||||
ERRCODE iRet = FAILURE;
|
||||
|
||||
if( hb_vmRequestQuery() == 0 )
|
||||
{
|
||||
pError = hb_errNew();
|
||||
if( pErrorPtr )
|
||||
{
|
||||
if( ! *pErrorPtr )
|
||||
*pErrorPtr = hb_errNew();
|
||||
pError = *pErrorPtr;
|
||||
}
|
||||
else
|
||||
pError = hb_errNew();
|
||||
hb_errPutGenCode( pError, uiGenCode );
|
||||
hb_errPutSubCode( pError, uiSubCode );
|
||||
hb_errPutOsCode( pError, uiOsCode );
|
||||
@@ -269,7 +278,8 @@ static ERRCODE hb_ntxErrorRT( NTXAREAP pArea, USHORT uiGenCode, USHORT uiSubCode
|
||||
if( uiFlags )
|
||||
hb_errPutFlags( pError, uiFlags );
|
||||
iRet = SELF_ERROR( ( AREAP ) pArea, pError );
|
||||
hb_errRelease( pError );
|
||||
if( !pErrorPtr )
|
||||
hb_errRelease( pError );
|
||||
}
|
||||
return iRet;
|
||||
}
|
||||
@@ -908,7 +918,7 @@ static BOOL hb_ntxBlockRead( LPNTXINDEX pIndex, ULONG ulBlock, BYTE *buffer, int
|
||||
hb_ntxFileOffset( pIndex, ulBlock ) ) != ( ULONG ) iSize )
|
||||
{
|
||||
hb_ntxErrorRT( pIndex->Owner, EG_READ, EDBF_READ,
|
||||
pIndex->IndexName, hb_fsError(), 0 );
|
||||
pIndex->IndexName, hb_fsError(), 0, NULL );
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
@@ -929,7 +939,7 @@ static BOOL hb_ntxBlockWrite( LPNTXINDEX pIndex, ULONG ulBlock, BYTE *buffer, in
|
||||
hb_ntxFileOffset( pIndex, ulBlock ) ) != ( ULONG ) iSize )
|
||||
{
|
||||
hb_ntxErrorRT( pIndex->Owner, EG_WRITE, EDBF_WRITE,
|
||||
pIndex->IndexName, hb_fsError(), 0 );
|
||||
pIndex->IndexName, hb_fsError(), 0, NULL );
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
@@ -1221,7 +1231,7 @@ static LPPAGEINFO hb_ntxPageLoad( LPTAGINFO pTag, ULONG ulPage )
|
||||
if( !ulPage )
|
||||
{
|
||||
hb_ntxErrorRT( pTag->Owner->Owner, EG_CORRUPTION, EDBF_CORRUPT,
|
||||
pTag->Owner->IndexName, 0, 0 );
|
||||
pTag->Owner->IndexName, 0, 0, NULL );
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
@@ -1321,7 +1331,7 @@ static LPPAGEINFO hb_ntxPageNew( LPTAGINFO pTag, BOOL fNull )
|
||||
if( pPage->uiKeys != 0 )
|
||||
{
|
||||
hb_ntxErrorRT( pTag->Owner->Owner, EG_CORRUPTION, EDBF_CORRUPT,
|
||||
pTag->Owner->IndexName, 0, 0 );
|
||||
pTag->Owner->IndexName, 0, 0, NULL );
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
@@ -1890,7 +1900,7 @@ static ERRCODE hb_ntxIndexHeaderRead( LPNTXINDEX pIndex )
|
||||
{
|
||||
#if defined( HB_NTX_NOMULTITAG )
|
||||
hb_ntxErrorRT( pIndex->Owner, EG_CORRUPTION, EDBF_CORRUPT,
|
||||
pIndex->IndexName, hb_fsError(), 0 );
|
||||
pIndex->IndexName, hb_fsError(), 0, NULL );
|
||||
return FAILURE;
|
||||
#else
|
||||
LPCTXHEADER lpCTX = ( LPCTXHEADER ) pIndex->HeaderBuff;
|
||||
@@ -1928,7 +1938,7 @@ static ERRCODE hb_ntxIndexHeaderRead( LPNTXINDEX pIndex )
|
||||
if( pIndex->Compound )
|
||||
{
|
||||
hb_ntxErrorRT( pIndex->Owner, EG_CORRUPTION, EDBF_CORRUPT,
|
||||
pIndex->IndexName, hb_fsError(), 0 );
|
||||
pIndex->IndexName, hb_fsError(), 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
pTag = pIndex->iTags ? pIndex->lpTags[0] : NULL;
|
||||
@@ -2021,7 +2031,8 @@ static BOOL hb_ntxIndexLockRead( LPNTXINDEX pIndex )
|
||||
}
|
||||
}
|
||||
if( !fOK )
|
||||
hb_ntxErrorRT( pIndex->Owner, EG_LOCK, EDBF_LOCK, pIndex->IndexName, hb_fsError(), 0 );
|
||||
hb_ntxErrorRT( pIndex->Owner, EG_LOCK, EDBF_LOCK,
|
||||
pIndex->IndexName, hb_fsError(), 0, NULL );
|
||||
|
||||
return fOK;
|
||||
}
|
||||
@@ -2064,7 +2075,8 @@ static BOOL hb_ntxIndexLockWrite( LPNTXINDEX pIndex, BOOL fCheck )
|
||||
}
|
||||
}
|
||||
if( !fOK )
|
||||
hb_ntxErrorRT( pIndex->Owner, EG_LOCK, EDBF_LOCK, pIndex->IndexName, hb_fsError(), 0 );
|
||||
hb_ntxErrorRT( pIndex->Owner, EG_LOCK, EDBF_LOCK,
|
||||
pIndex->IndexName, hb_fsError(), 0, NULL );
|
||||
|
||||
return fOK;
|
||||
}
|
||||
@@ -2154,7 +2166,7 @@ static BOOL hb_ntxTagLockRead( LPTAGINFO pTag )
|
||||
{
|
||||
hb_ntxIndexUnLockRead( pTag->Owner );
|
||||
hb_ntxErrorRT( pTag->Owner->Owner, EG_CORRUPTION, EDBF_CORRUPT,
|
||||
pTag->Owner->IndexName, 0, 0 );
|
||||
pTag->Owner->IndexName, 0, 0, NULL );
|
||||
}
|
||||
}
|
||||
return fOK;
|
||||
@@ -2174,7 +2186,7 @@ static BOOL hb_ntxTagLockWrite( LPTAGINFO pTag )
|
||||
{
|
||||
hb_ntxIndexUnLockWrite( pTag->Owner );
|
||||
hb_ntxErrorRT( pTag->Owner->Owner, EG_CORRUPTION, EDBF_CORRUPT,
|
||||
pTag->Owner->IndexName, 0, 0 );
|
||||
pTag->Owner->IndexName, 0, 0, NULL );
|
||||
}
|
||||
}
|
||||
return fOK;
|
||||
@@ -4668,7 +4680,7 @@ static void hb_ntxSortBufferFlush( LPNTXSORTINFO pSort )
|
||||
hb_ntxFileOffset( pIndex, pSort->ulFirstIO ) ) != ulSize )
|
||||
{
|
||||
hb_ntxErrorRT( pIndex->Owner, EG_WRITE, EDBF_WRITE,
|
||||
pIndex->IndexName, hb_fsError(), 0 );
|
||||
pIndex->IndexName, hb_fsError(), 0, NULL );
|
||||
}
|
||||
pSort->ulPagesIO = 0;
|
||||
pIndex->fFlush = TRUE;
|
||||
@@ -4750,9 +4762,9 @@ static void hb_ntxSortWritePage( LPNTXSORTINFO pSort )
|
||||
pSort->hTempFile = hb_fsCreateTemp( NULL, NULL, FC_NORMAL, szName );
|
||||
if( pSort->hTempFile == FS_ERROR )
|
||||
hb_ntxErrorRT( pSort->pTag->Owner->Owner, EG_CREATE, EDBF_CREATE_TEMP,
|
||||
( char * ) szName, 0, 0 );
|
||||
( const char * ) szName, 0, 0, NULL );
|
||||
else
|
||||
pSort->szTempFileName = hb_strdup( ( char * ) szName );
|
||||
pSort->szTempFileName = hb_strdup( ( const char * ) szName );
|
||||
}
|
||||
|
||||
pSort->pSwapPage[ pSort->ulCurPage ].ulKeys = pSort->ulKeys;
|
||||
@@ -4761,7 +4773,7 @@ static void hb_ntxSortWritePage( LPNTXSORTINFO pSort )
|
||||
pSort->pSwapPage[ pSort->ulCurPage ].nOffset = hb_fsSeekLarge( pSort->hTempFile, 0, FS_END );
|
||||
if( hb_fsWriteLarge( pSort->hTempFile, pSort->pStartKey, ulSize ) != ulSize )
|
||||
hb_ntxErrorRT( pSort->pTag->Owner->Owner, EG_WRITE, EDBF_WRITE_TEMP,
|
||||
pSort->szTempFileName, 0, 0 );
|
||||
pSort->szTempFileName, 0, 0, NULL );
|
||||
}
|
||||
else
|
||||
pSort->pSwapPage[ pSort->ulCurPage ].nOffset = 0;
|
||||
@@ -4784,7 +4796,7 @@ static void hb_ntxSortGetPageKey( LPNTXSORTINFO pSort, ULONG ulPage,
|
||||
hb_fsReadLarge( pSort->hTempFile, pSort->pSwapPage[ ulPage ].pKeyPool, ulSize ) != ulSize ) )
|
||||
{
|
||||
hb_ntxErrorRT( pSort->pTag->Owner->Owner, EG_READ, EDBF_READ_TEMP,
|
||||
pSort->szTempFileName, 0, 0 );
|
||||
pSort->szTempFileName, 0, 0, NULL );
|
||||
}
|
||||
pSort->pSwapPage[ ulPage ].nOffset += ulSize;
|
||||
pSort->pSwapPage[ ulPage ].ulKeyBuf = ulKeys;
|
||||
@@ -5424,7 +5436,7 @@ static ERRCODE hb_ntxTagCreate( LPTAGINFO pTag, BOOL fReindex )
|
||||
|
||||
default:
|
||||
hb_ntxErrorRT( pArea, EG_DATATYPE, EDBF_INVALIDKEY,
|
||||
pTag->Owner->IndexName, 0, 0 );
|
||||
pTag->Owner->IndexName, 0, 0, NULL );
|
||||
errCode = FAILURE;
|
||||
pTag->Partial = TRUE;
|
||||
pEvalItem = NULL;
|
||||
@@ -5605,7 +5617,7 @@ static ERRCODE ntxSeek( NTXAREAP pArea, BOOL fSoftSeek, PHB_ITEM pItem, BOOL fFi
|
||||
|
||||
if( ! pArea->lpCurTag )
|
||||
{
|
||||
hb_ntxErrorRT( pArea, EG_NOORDER, EDBF_NOTINDEXED, NULL, 0, EF_CANDEFAULT );
|
||||
hb_ntxErrorRT( pArea, EG_NOORDER, EDBF_NOTINDEXED, NULL, 0, EF_CANDEFAULT, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
else
|
||||
@@ -5885,7 +5897,7 @@ static ERRCODE ntxGoCold( NTXAREAP pArea )
|
||||
else if( !pTag->Partial && !pTag->UniqueKey )
|
||||
hb_ntxErrorRT( pTag->Owner->Owner,
|
||||
EG_CORRUPTION, EDBF_CORRUPT,
|
||||
pTag->Owner->IndexName, 0, 0 );
|
||||
pTag->Owner->IndexName, 0, 0, NULL );
|
||||
}
|
||||
}
|
||||
if( fAdd )
|
||||
@@ -6167,7 +6179,7 @@ static ERRCODE ntxOrderCreate( NTXAREAP pArea, LPDBORDERCREATEINFO pOrderInfo )
|
||||
hb_vmDestroyBlockOrMacro( pKeyExp );
|
||||
SELF_GOTO( ( AREAP ) pArea, ulRecNo );
|
||||
hb_ntxErrorRT( pArea, bType == 'U' ? EG_DATATYPE : EG_DATAWIDTH,
|
||||
1026, NULL, 0, 0 );
|
||||
1026, NULL, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
@@ -6218,7 +6230,7 @@ static ERRCODE ntxOrderCreate( NTXAREAP pArea, LPDBORDERCREATEINFO pOrderInfo )
|
||||
hb_vmDestroyBlockOrMacro( pKeyExp );
|
||||
hb_vmDestroyBlockOrMacro( pForExp );
|
||||
SELF_GOTO( ( AREAP ) pArea, ulRecNo );
|
||||
hb_ntxErrorRT( pArea, EG_DATATYPE, EDBF_INVALIDFOR, NULL, 0, 0 );
|
||||
hb_ntxErrorRT( pArea, EG_DATATYPE, EDBF_INVALIDFOR, NULL, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
}
|
||||
@@ -6272,7 +6284,7 @@ static ERRCODE ntxOrderCreate( NTXAREAP pArea, LPDBORDERCREATEINFO pOrderInfo )
|
||||
hb_vmDestroyBlockOrMacro( pKeyExp );
|
||||
if( pForExp != NULL )
|
||||
hb_vmDestroyBlockOrMacro( pForExp );
|
||||
hb_ntxErrorRT( pArea, EG_READONLY, EDBF_READONLY, pIndex->IndexName, 0, 0 );
|
||||
hb_ntxErrorRT( pArea, EG_READONLY, EDBF_READONLY, pIndex->IndexName, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
#if 0 /* enable this code if you want to forbid tag deleting in shared mode */
|
||||
@@ -6281,7 +6293,7 @@ static ERRCODE ntxOrderCreate( NTXAREAP pArea, LPDBORDERCREATEINFO pOrderInfo )
|
||||
hb_vmDestroyBlockOrMacro( pKeyExp );
|
||||
if( pForExp != NULL )
|
||||
hb_vmDestroyBlockOrMacro( pForExp );
|
||||
hb_ntxErrorRT( pArea, EG_SHARED, EDBF_SHARED, pIndex->IndexName, 0, 0 );
|
||||
hb_ntxErrorRT( pArea, EG_SHARED, EDBF_SHARED, pIndex->IndexName, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
#endif
|
||||
@@ -6291,6 +6303,7 @@ static ERRCODE ntxOrderCreate( NTXAREAP pArea, LPDBORDERCREATEINFO pOrderInfo )
|
||||
PHB_FILE pFile;
|
||||
BOOL bRetry, fOld, fShared = pArea->fShared && !fTemporary && !fExclusive;
|
||||
USHORT uiFlags = FO_READWRITE | ( fShared ? FO_DENYNONE : FO_EXCLUSIVE );
|
||||
PHB_ITEM pError = NULL;
|
||||
|
||||
fOld = fCompound;
|
||||
do
|
||||
@@ -6305,20 +6318,24 @@ static ERRCODE ntxOrderCreate( NTXAREAP pArea, LPDBORDERCREATEINFO pOrderInfo )
|
||||
pFile = hb_fileExtOpen( ( BYTE * ) szFileName, NULL, uiFlags |
|
||||
( fOld ? FXO_APPEND : FXO_TRUNCATE ) |
|
||||
FXO_DEFAULTS | FXO_SHARELOCK | FXO_COPYNAME,
|
||||
NULL, NULL );
|
||||
NULL, pError );
|
||||
}
|
||||
if( !pFile )
|
||||
bRetry = ( hb_ntxErrorRT( pArea, EG_CREATE, EDBF_CREATE, szFileName,
|
||||
hb_fsError(), EF_CANRETRY | EF_CANDEFAULT ) == E_RETRY );
|
||||
bRetry = hb_ntxErrorRT( pArea, EG_CREATE, EDBF_CREATE, szFileName,
|
||||
hb_fsError(), EF_CANRETRY | EF_CANDEFAULT,
|
||||
&pError ) == E_RETRY;
|
||||
else
|
||||
{
|
||||
bRetry = FALSE;
|
||||
if( fOld )
|
||||
fOld = ( hb_fileSize( pFile ) != 0 );
|
||||
fOld = hb_fileSize( pFile ) != 0;
|
||||
}
|
||||
}
|
||||
while( bRetry );
|
||||
|
||||
if( pError )
|
||||
hb_errRelease( pError );
|
||||
|
||||
if( !pFile )
|
||||
{
|
||||
hb_vmDestroyBlockOrMacro( pKeyExp );
|
||||
@@ -6363,7 +6380,7 @@ static ERRCODE ntxOrderCreate( NTXAREAP pArea, LPDBORDERCREATEINFO pOrderInfo )
|
||||
if( pForExp != NULL )
|
||||
hb_vmDestroyBlockOrMacro( pForExp );
|
||||
/* hb_ntxSetTagNumbers() */
|
||||
hb_ntxErrorRT( pArea, EG_CORRUPTION, EDBF_CORRUPT, szFileName, 0, 0 );
|
||||
hb_ntxErrorRT( pArea, EG_CORRUPTION, EDBF_CORRUPT, szFileName, 0, 0, NULL );
|
||||
return errCode;
|
||||
}
|
||||
}
|
||||
@@ -6384,7 +6401,7 @@ static ERRCODE ntxOrderCreate( NTXAREAP pArea, LPDBORDERCREATEINFO pOrderInfo )
|
||||
if( pForExp != NULL )
|
||||
hb_vmDestroyBlockOrMacro( pForExp );
|
||||
/* hb_ntxSetTagNumbers() */
|
||||
hb_ntxErrorRT( pArea, EG_LIMIT, EDBF_LIMITEXCEEDED, pIndex->IndexName, 0, 0 );
|
||||
hb_ntxErrorRT( pArea, EG_LIMIT, EDBF_LIMITEXCEEDED, pIndex->IndexName, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
@@ -6540,13 +6557,13 @@ static ERRCODE ntxOrderDestroy( NTXAREAP pArea, LPDBORDERINFO pOrderInfo )
|
||||
}
|
||||
else if( pIndex->fReadonly )
|
||||
{
|
||||
hb_ntxErrorRT( pArea, EG_READONLY, EDBF_READONLY, pIndex->IndexName, 0, 0 );
|
||||
hb_ntxErrorRT( pArea, EG_READONLY, EDBF_READONLY, pIndex->IndexName, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
#if 0 /* enable this code if you want to forbid tag deleting in shared mode */
|
||||
else if( pIndex->fShared )
|
||||
{
|
||||
hb_ntxErrorRT( pArea, EG_SHARED, EDBF_SHARED, pIndex->IndexName, 0, 0 );
|
||||
hb_ntxErrorRT( pArea, EG_SHARED, EDBF_SHARED, pIndex->IndexName, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
#endif
|
||||
@@ -6929,7 +6946,8 @@ static ERRCODE ntxOrderInfo( NTXAREAP pArea, USHORT uiIndex, LPDBORDERINFO pInfo
|
||||
case DBOI_KEYADD:
|
||||
if( pTag->Owner->fReadonly )
|
||||
{
|
||||
hb_ntxErrorRT( pArea, EG_READONLY, EDBF_READONLY, pTag->Owner->IndexName, 0, 0 );
|
||||
hb_ntxErrorRT( pArea, EG_READONLY, EDBF_READONLY,
|
||||
pTag->Owner->IndexName, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
if( pTag->Custom )
|
||||
@@ -6939,14 +6957,15 @@ static ERRCODE ntxOrderInfo( NTXAREAP pArea, USHORT uiIndex, LPDBORDERINFO pInfo
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_ntxErrorRT( pArea, 0, 1052, NULL, 0, 0 );
|
||||
hb_ntxErrorRT( pArea, 0, 1052, NULL, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
break;
|
||||
case DBOI_KEYDELETE:
|
||||
if( pTag->Owner->fReadonly )
|
||||
{
|
||||
hb_ntxErrorRT( pArea, EG_READONLY, EDBF_READONLY, pTag->Owner->IndexName, 0, 0 );
|
||||
hb_ntxErrorRT( pArea, EG_READONLY, EDBF_READONLY,
|
||||
pTag->Owner->IndexName, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
if( pTag->Custom )
|
||||
@@ -6956,7 +6975,7 @@ static ERRCODE ntxOrderInfo( NTXAREAP pArea, USHORT uiIndex, LPDBORDERINFO pInfo
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_ntxErrorRT( pArea, 0, 1052, NULL, 0, 0 );
|
||||
hb_ntxErrorRT( pArea, 0, 1052, NULL, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
break;
|
||||
@@ -7274,6 +7293,8 @@ static ERRCODE ntxOrderListAdd( NTXAREAP pArea, LPDBORDERINFO pOrderInfo )
|
||||
|
||||
if( ! pIndex )
|
||||
{
|
||||
PHB_ITEM pError = NULL;
|
||||
|
||||
fReadonly = pArea->fReadonly;
|
||||
fShared = pArea->fShared;
|
||||
uiFlags = ( fReadonly ? FO_READ : FO_READWRITE ) |
|
||||
@@ -7283,15 +7304,19 @@ static ERRCODE ntxOrderListAdd( NTXAREAP pArea, LPDBORDERINFO pOrderInfo )
|
||||
fRetry = FALSE;
|
||||
pFile = hb_fileExtOpen( ( BYTE * ) szFileName, NULL, uiFlags |
|
||||
FXO_DEFAULTS | FXO_SHARELOCK | FXO_COPYNAME,
|
||||
NULL, NULL );
|
||||
NULL, pError );
|
||||
if( !pFile )
|
||||
{
|
||||
fRetry = ( hb_ntxErrorRT( pArea, EG_OPEN, EDBF_OPEN_INDEX, szFileName,
|
||||
hb_fsError(), EF_CANRETRY | EF_CANDEFAULT ) == E_RETRY );
|
||||
fRetry = hb_ntxErrorRT( pArea, EG_OPEN, EDBF_OPEN_INDEX, szFileName,
|
||||
hb_fsError(), EF_CANRETRY | EF_CANDEFAULT,
|
||||
&pError ) == E_RETRY;
|
||||
}
|
||||
}
|
||||
while( fRetry );
|
||||
|
||||
if( pError )
|
||||
hb_errRelease( pError );
|
||||
|
||||
if( !pFile )
|
||||
return FAILURE;
|
||||
|
||||
@@ -7319,7 +7344,7 @@ static ERRCODE ntxOrderListAdd( NTXAREAP pArea, LPDBORDERINFO pOrderInfo )
|
||||
{
|
||||
*pIndexPtr = pIndex->pNext;
|
||||
hb_ntxIndexFree( pIndex );
|
||||
hb_ntxErrorRT( pArea, EG_CORRUPTION, EDBF_CORRUPT, szFileName, 0, 0 );
|
||||
hb_ntxErrorRT( pArea, EG_CORRUPTION, EDBF_CORRUPT, szFileName, 0, 0, NULL );
|
||||
return errCode;
|
||||
}
|
||||
/* hb_ntxSetTagNumbers() */
|
||||
@@ -7441,12 +7466,12 @@ static ERRCODE ntxOrderListRebuild( NTXAREAP pArea )
|
||||
|
||||
if( pArea->fShared )
|
||||
{
|
||||
hb_ntxErrorRT( pArea, EG_SHARED, EDBF_SHARED, pArea->szDataFileName, 0, 0 );
|
||||
hb_ntxErrorRT( pArea, EG_SHARED, EDBF_SHARED, pArea->szDataFileName, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
if( pArea->fReadonly )
|
||||
{
|
||||
hb_ntxErrorRT( pArea, EG_READONLY, EDBF_READONLY, pArea->szDataFileName, 0, 0 );
|
||||
hb_ntxErrorRT( pArea, EG_READONLY, EDBF_READONLY, pArea->szDataFileName, 0, 0, NULL );
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
|
||||
@@ -388,8 +388,8 @@ HB_FUNC( __DBSQL )
|
||||
hb_errPutFileName( pError, szFileName );
|
||||
hb_errPutFlags( pError, EF_CANRETRY | EF_CANDEFAULT );
|
||||
hb_errPutSubSystem( pError, "DBF2SQL" );
|
||||
hb_errPutOsCode( pError, hb_fsError() );
|
||||
}
|
||||
hb_errPutOsCode( pError, hb_fsError() );
|
||||
fRetry = hb_errLaunch( pError ) == E_RETRY;
|
||||
}
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user