2010-03-05 14:59 UTC+0200 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)

* harbour/contrib/rddads/ads1.c
    * changed errSubCode values. Now errSubCode ir equal to:
      = ADS error value, if error is returned from ADS. Values
        of error subcodes are > 1000.
      = EDBF_* - 900, if error is generated by RDD. Values of 
        error subcodes are < 1000.
    + added a detailed error description for ADS errors
This commit is contained in:
Mindaugas Kavaliauskas
2010-03-05 13:00:10 +00:00
parent 23f4d52dda
commit 36db9d2adf
2 changed files with 37 additions and 18 deletions

View File

@@ -17,6 +17,15 @@
past entries belonging to author(s): Viktor Szakats.
*/
2010-03-05 14:59 UTC+0200 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* harbour/contrib/rddads/ads1.c
* changed errSubCode values. Now errSubCode ir equal to:
= ADS error value, if error is returned from ADS. Values
of error subcodes are > 1000.
= EDBF_* - 900, if error is generated by RDD. Values of
error subcodes are < 1000.
+ added a detailed error description for ADS errors
2010-03-05 13:48 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/common/hbver.c
* include/hbapi.h

View File

@@ -162,9 +162,19 @@ static HB_ERRCODE commonError( ADSAREAP pArea,
}
else
pError = hb_errNew();
hb_errPutGenCode( pError, errGenCode );
hb_errPutSubCode( pError, errSubCode );
hb_errPutDescription( pError, hb_langDGetErrorDesc( errGenCode ) );
if( errSubCode > 1000 )
{
UNSIGNED8 aucError[ ADS_MAX_ERROR_LEN + 1 ] = {0};
UNSIGNED16 usLength = ADS_MAX_ERROR_LEN + 1;
AdsGetErrorString( ( UNSIGNED32 ) errSubCode, aucError, &usLength );
hb_errPutDescription( pError, ( char * ) aucError );
}
else
hb_errPutDescription( pError, hb_langDGetErrorDesc( errGenCode ) );
if( errOsCode )
hb_errPutOsCode( pError, errOsCode );
if( szFileName )
@@ -384,12 +394,12 @@ static HB_ERRCODE hb_adsCheckLock( ADSAREAP pArea )
u32RetVal = AdsIsRecordLocked( pArea->hTable, 0, &u16Locked );
if( u32RetVal != AE_SUCCESS )
{
hb_errRT_DBCMD( EG_UNLOCKED, u32RetVal, "Lock Required by ADSTESTRECLOCKS()", HB_ERR_FUNCNAME );
commonError( pArea, EG_UNLOCKED, ( HB_ERRCODE ) u32RetVal, 0, NULL, 0, NULL );
return HB_FAILURE;
}
if( !u16Locked )
{
commonError( pArea, EG_UNLOCKED, EDBF_UNLOCKED, 0, NULL, 0, NULL );
commonError( pArea, EG_UNLOCKED, EDBF_UNLOCKED - 900, 0, NULL, 0, NULL );
return HB_FAILURE;
}
}
@@ -924,7 +934,7 @@ static HB_ERRCODE adsGoToId( ADSAREAP pArea, PHB_ITEM pItem )
}
else
{
commonError( pArea, EG_DATATYPE, 1020, 0, NULL, 0, NULL );
commonError( pArea, EG_DATATYPE, EDBF_DATATYPE - 900, 0, NULL, 0, NULL );
return HB_FAILURE;
}
}
@@ -973,7 +983,7 @@ static HB_ERRCODE adsSeek( ADSAREAP pArea, HB_BOOL bSoftSeek, PHB_ITEM pKey, HB_
if( ! pArea->hOrdCurrent )
{
commonError( pArea, EG_NOORDER, 1201, 0, NULL, EF_CANDEFAULT, NULL );
commonError( pArea, EG_NOORDER, EDBF_NOTINDEXED - 900, 0, NULL, EF_CANDEFAULT, NULL );
return HB_FAILURE;
}
@@ -1036,7 +1046,7 @@ static HB_ERRCODE adsSeek( ADSAREAP pArea, HB_BOOL bSoftSeek, PHB_ITEM pKey, HB_
}
else
{
commonError( pArea, EG_DATATYPE, 1020, 0, NULL, 0, NULL );
commonError( pArea, EG_DATATYPE, EDBF_DATATYPE - 900, 0, NULL, 0, NULL );
return HB_FAILURE;
}
@@ -1463,11 +1473,11 @@ static HB_ERRCODE adsAppend( ADSAREAP pArea, HB_BOOL fUnLockAll )
}
else if( u32RetVal == AE_TABLE_READONLY )
{
commonError( pArea, EG_READONLY, EDBF_READONLY, 0, NULL, 0, NULL );
commonError( pArea, EG_READONLY, EDBF_READONLY - 900, 0, NULL, 0, NULL );
}
else if( u32RetVal == 1024 /* Append Lock Failed */ )
{
commonError( pArea, EG_APPENDLOCK, EDBF_APPENDLOCK, 0, NULL, EF_CANDEFAULT, NULL );
commonError( pArea, EG_APPENDLOCK, EDBF_APPENDLOCK - 900, 0, NULL, EF_CANDEFAULT, NULL );
}
else
{
@@ -2363,7 +2373,7 @@ static HB_ERRCODE adsGetValue( ADSAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pItem
break;
}
default:
commonError( pArea, EG_DATATYPE, 1020, 0, NULL, 0, NULL );
commonError( pArea, EG_DATATYPE, EDBF_DATATYPE - 900, 0, NULL, 0, NULL );
return HB_FAILURE;
}
@@ -2379,7 +2389,7 @@ static HB_ERRCODE adsGetValue( ADSAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pItem
else if( u32RetVal != AE_SUCCESS )
{
if( u32RetVal == AE_DATA_TOO_LONG )
commonError( pArea, EG_DATAWIDTH, EDBF_DATAWIDTH, 0, NULL, 0, NULL );
commonError( pArea, EG_DATAWIDTH, EDBF_DATAWIDTH - 900, 0, NULL, 0, NULL );
else
commonError( pArea, EG_READ, ( HB_ERRCODE ) u32RetVal, 0, NULL, 0, NULL );
return HB_FAILURE;
@@ -2630,18 +2640,18 @@ static HB_ERRCODE adsPutValue( ADSAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pItem
if( bTypeError )
{
commonError( pArea, EG_DATATYPE, 1020, 0, NULL, 0, NULL );
commonError( pArea, EG_DATATYPE, EDBF_DATATYPE - 900, 0, NULL, 0, NULL );
return HB_FAILURE;
}
if( u32RetVal != AE_SUCCESS )
{
if( u32RetVal == AE_LOCK_FAILED || u32RetVal == AE_RECORD_NOT_LOCKED )
commonError( pArea, EG_UNLOCKED, EDBF_UNLOCKED, 0, NULL, 0, NULL );
commonError( pArea, EG_UNLOCKED, ( HB_ERRCODE ) u32RetVal, 0, NULL, 0, NULL );
else if( u32RetVal == AE_TABLE_READONLY )
commonError( pArea, EG_READONLY, EDBF_READONLY, 0, NULL, 0, NULL );
commonError( pArea, EG_READONLY, ( HB_ERRCODE ) u32RetVal, 0, NULL, 0, NULL );
else if( u32RetVal == AE_DATA_TOO_LONG )
return commonError( pArea, EG_DATAWIDTH, EDBF_DATAWIDTH, 0, NULL, EF_CANDEFAULT, NULL );
return commonError( pArea, EG_DATAWIDTH, ( HB_ERRCODE ) u32RetVal, 0, NULL, EF_CANDEFAULT, NULL );
else
commonError( pArea, EG_WRITE, ( HB_ERRCODE ) u32RetVal, 0, NULL, 0, NULL );
return HB_FAILURE;
@@ -3575,12 +3585,12 @@ static HB_ERRCODE adsPack( ADSAREAP pArea )
if( pArea->fReadonly )
{
commonError( pArea, EG_READONLY, EDBF_READONLY, 0, NULL, 0, NULL );
commonError( pArea, EG_READONLY, EDBF_READONLY - 900, 0, NULL, 0, NULL );
return HB_FAILURE;
}
if( pArea->fShared )
{
commonError( pArea, EG_SHARED, EDBF_SHARED, 0, NULL, 0, NULL );
commonError( pArea, EG_SHARED, EDBF_SHARED - 900, 0, NULL, 0, NULL );
return HB_FAILURE;
}
@@ -3600,12 +3610,12 @@ static HB_ERRCODE adsZap( ADSAREAP pArea )
if( pArea->fReadonly )
{
commonError( pArea, EG_READONLY, EDBF_READONLY, 0, NULL, 0, NULL );
commonError( pArea, EG_READONLY, EDBF_READONLY - 900, 0, NULL, 0, NULL );
return HB_FAILURE;
}
if( pArea->fShared )
{
commonError( pArea, EG_SHARED, EDBF_SHARED, 0, NULL, 0, NULL );
commonError( pArea, EG_SHARED, EDBF_SHARED - 900, 0, NULL, 0, NULL );
return HB_FAILURE;
}