diff --git a/harbour/ChangeLog b/harbour/ChangeLog index f754c336f6..cb0f55b284 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,22 @@ 2008-12-31 13:59 UTC+0100 Foo Bar */ +2008-05-28 11:48 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/include/hbrdddbf.h + * harbour/include/hbapirdd.h + * harbour/source/rdd/workarea.c + * harbour/source/rdd/dbcmd.c + * harbour/source/rdd/dbf1.c + * harbour/source/rdd/dbfcdx/dbfcdx1.c + * harbour/source/rdd/dbffpt/dbffpt1.c + * harbour/source/rdd/usrrdd/usrrdd.c + * harbour/contrib/rddads/ads1.c + * harbour/contrib/hbbmcdx/bmdbfcdx1.c + + added ULONG ulConnection parameter to DROP() and EXISTS() + RDD node methods + + added 4-th parameter with ulConncetion index to [HB_]DROP() and + [HB_]EXISTS() functions + 2008-05-27 22:49 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/make_deb.sh ! fixes suggested by Guy Roussin diff --git a/harbour/contrib/hbbmcdx/bmdbfcdx1.c b/harbour/contrib/hbbmcdx/bmdbfcdx1.c index 939aafdfc9..37e9627446 100644 --- a/harbour/contrib/hbbmcdx/bmdbfcdx1.c +++ b/harbour/contrib/hbbmcdx/bmdbfcdx1.c @@ -299,8 +299,8 @@ static const RDDFUNCS cdxTable = /* non WorkArea functions */ ( DBENTRYP_R ) hb_cdxInit, ( DBENTRYP_R ) hb_cdxExit, - ( DBENTRYP_RVV ) hb_cdxDrop, - ( DBENTRYP_RVV ) hb_cdxExists, + ( DBENTRYP_RVVL ) hb_cdxDrop, + ( DBENTRYP_RVVL ) hb_cdxExists, ( DBENTRYP_RSLV ) hb_cdxRddInfo, diff --git a/harbour/contrib/rddads/ads1.c b/harbour/contrib/rddads/ads1.c index 04b4ad375c..0b446839d9 100644 --- a/harbour/contrib/rddads/ads1.c +++ b/harbour/contrib/rddads/ads1.c @@ -4585,14 +4585,14 @@ static ERRCODE adsPutValueFile( ADSAREAP pArea, USHORT uiIndex, BYTE * szFile, U /* TODO: Use AdsDeleteFile() */ -static ERRCODE adsDrop( LPRDDNODE pRDD, PHB_ITEM pItemTable, PHB_ITEM pItemIndex ) +static ERRCODE adsDrop( LPRDDNODE pRDD, PHB_ITEM pItemTable, PHB_ITEM pItemIndex, ULONG ulConnect ) { char szFileName[ _POSIX_PATH_MAX + 1 ], * szFile, * szExt; PHB_ITEM pFileExt = NULL; PHB_FNAME pFileName; BOOL fTable = FALSE, fResult = FALSE; - HB_TRACE(HB_TR_DEBUG, ("adsDrop(%p,%p,%p)", pRDD, pItemTable, pItemIndex)); + HB_TRACE(HB_TR_DEBUG, ("adsDrop(%p,%p,%p,%lu)", pRDD, pItemTable, pItemIndex, ulConnect)); szFile = hb_itemGetCPtr( pItemIndex ); if( !szFile[ 0 ] ) @@ -4610,7 +4610,7 @@ static ERRCODE adsDrop( LPRDDNODE pRDD, PHB_ITEM pItemTable, PHB_ITEM pItemIndex { /* Add default extension if missing */ pFileExt = hb_itemPutC( NULL, "" ); - if( SELF_RDDINFO( pRDD, fTable ? RDDI_TABLEEXT : RDDI_ORDBAGEXT, 0, pFileExt ) == SUCCESS ) + if( SELF_RDDINFO( pRDD, fTable ? RDDI_TABLEEXT : RDDI_ORDBAGEXT, ulConnect, pFileExt ) == SUCCESS ) pFileName->szExtension = hb_itemGetCPtr( pFileExt ); } hb_fsFNameMerge( szFileName, pFileName ); @@ -4631,7 +4631,7 @@ static ERRCODE adsDrop( LPRDDNODE pRDD, PHB_ITEM pItemTable, PHB_ITEM pItemIndex */ pFileName = hb_fsFNameSplit( szFileName ); pFileExt = hb_itemPutC( pFileExt, "" ); - if( SELF_RDDINFO( pRDD, RDDI_MEMOEXT, 0, pFileExt ) == SUCCESS ) + if( SELF_RDDINFO( pRDD, RDDI_MEMOEXT, ulConnect, pFileExt ) == SUCCESS ) { szExt = hb_itemGetCPtr( pFileExt ); if( szExt[ 0 ] ) @@ -4646,7 +4646,7 @@ static ERRCODE adsDrop( LPRDDNODE pRDD, PHB_ITEM pItemTable, PHB_ITEM pItemIndex * in the same directory as table file */ pFileExt = hb_itemPutC( pFileExt, "" ); - if( SELF_RDDINFO( pRDD, RDDI_ORDSTRUCTEXT, 0, pFileExt ) == SUCCESS ) + if( SELF_RDDINFO( pRDD, RDDI_ORDSTRUCTEXT, ulConnect, pFileExt ) == SUCCESS ) { szExt = hb_itemGetCPtr( pFileExt ); if( szExt[ 0 ] ) @@ -4672,14 +4672,14 @@ static ERRCODE adsDrop( LPRDDNODE pRDD, PHB_ITEM pItemTable, PHB_ITEM pItemIndex UNSIGNED8 *pucFileName, UNSIGNED16 *pusOnDisk ); */ -static ERRCODE adsExists( LPRDDNODE pRDD, PHB_ITEM pItemTable, PHB_ITEM pItemIndex ) +static ERRCODE adsExists( LPRDDNODE pRDD, PHB_ITEM pItemTable, PHB_ITEM pItemIndex, ULONG ulConnect ) { char szFileName[ _POSIX_PATH_MAX + 1 ], * szFile; PHB_ITEM pFileExt = NULL; PHB_FNAME pFileName; BOOL fTable = FALSE; - HB_TRACE(HB_TR_DEBUG, ("adsExists(%p,%p,%p)", pRDD, pItemTable, pItemIndex)); + HB_TRACE(HB_TR_DEBUG, ("adsExists(%p,%p,%p,%lu)", pRDD, pItemTable, pItemIndex, ulConnect)); szFile = hb_itemGetCPtr( pItemIndex ); if( !szFile[ 0 ] ) @@ -4695,7 +4695,7 @@ static ERRCODE adsExists( LPRDDNODE pRDD, PHB_ITEM pItemTable, PHB_ITEM pItemInd if( !pFileName->szExtension ) { pFileExt = hb_itemPutC( NULL, "" ); - if( SELF_RDDINFO( pRDD, fTable ? RDDI_TABLEEXT : RDDI_ORDBAGEXT, 0, pFileExt ) == SUCCESS ) + if( SELF_RDDINFO( pRDD, fTable ? RDDI_TABLEEXT : RDDI_ORDBAGEXT, ulConnect, pFileExt ) == SUCCESS ) pFileName->szExtension = hb_itemGetCPtr( pFileExt ); } hb_fsFNameMerge( szFileName, pFileName ); @@ -4884,8 +4884,8 @@ static const RDDFUNCS adsTable = { ( DBENTRYP_BP ) adsBof, ( DBENTRYP_V ) adsWriteDBHeader, ( DBENTRYP_R ) adsInit, ( DBENTRYP_R ) adsExit, - ( DBENTRYP_RVV ) adsDrop, - ( DBENTRYP_RVV ) adsExists, + ( DBENTRYP_RVVL ) adsDrop, + ( DBENTRYP_RVVL ) adsExists, ( DBENTRYP_RSLV ) adsRddInfo, ( DBENTRYP_SVP ) adsWhoCares }; diff --git a/harbour/include/hbapirdd.h b/harbour/include/hbapirdd.h index 355314cccd..92efd0a367 100644 --- a/harbour/include/hbapirdd.h +++ b/harbour/include/hbapirdd.h @@ -629,7 +629,7 @@ typedef USHORT ( * DBENTRYP_LSP )( AREAP area, ULONG p1, BOOL * p2 ); /* this methods DO USE take a Workarea but an RDDNODE */ typedef USHORT ( * DBENTRYP_R )( struct _RDDNODE * pRDD ); -typedef USHORT ( * DBENTRYP_RVV )( struct _RDDNODE * pRDD, PHB_ITEM p1, PHB_ITEM p2 ); +typedef USHORT ( * DBENTRYP_RVVL )( struct _RDDNODE * pRDD, PHB_ITEM p1, PHB_ITEM p2, ULONG p3 ); typedef USHORT ( * DBENTRYP_RSLV )( struct _RDDNODE * pRDD, USHORT index, ULONG p1, PHB_ITEM p2 ); /*--------------------* Virtual Method Table *----------------------*/ @@ -772,8 +772,8 @@ typedef struct _RDDFUNCS DBENTRYP_R init; /* init RDD after registration */ DBENTRYP_R exit; /* unregister RDD */ - DBENTRYP_RVV drop; /* remove table */ - DBENTRYP_RVV exists; /* check if table exist */ + DBENTRYP_RVVL drop; /* remove table */ + DBENTRYP_RVVL exists; /* check if table exist */ DBENTRYP_RSLV rddInfo; /* RDD info */ @@ -961,8 +961,8 @@ typedef RDDNODE * LPRDDNODE; /* non WorkArea functions */ #define SELF_INIT(r) ((*(r)->pTable.init)(r)) #define SELF_EXIT(r) ((*(r)->pTable.exit)(r)) -#define SELF_DROP(r, it, ii) ((*(r)->pTable.drop)(r, it, ii)) -#define SELF_EXISTS(r, it, ii) ((*(r)->pTable.exists)(r, it, ii)) +#define SELF_DROP(r, it, ii, l) ((*(r)->pTable.drop)(r, it, ii, l)) +#define SELF_EXISTS(r, it, ii, l) ((*(r)->pTable.exists)(r, it, ii, l)) #define SELF_RDDINFO(r, i, l, g) ((*(r)->pTable.rddInfo)(r, i, l, g)) @@ -1130,8 +1130,8 @@ typedef RDDNODE * LPRDDNODE; /* non WorkArea functions */ #define SUPER_INIT(r) ((*(__SUPERTABLE(r))->init)(r)) #define SUPER_EXIT(r) ((*(__SUPERTABLE(r))->exit)(r)) -#define SUPER_DROP(r, it, ii) ((*(__SUPERTABLE(r))->drop)(r, it, ii)) -#define SUPER_EXISTS(r, it, ii) ((*(__SUPERTABLE(r))->exists)(r, it, ii)) +#define SUPER_DROP(r, it, ii, l) ((*(__SUPERTABLE(r))->drop)(r, it, ii, l)) +#define SUPER_EXISTS(r, it, ii, l) ((*(__SUPERTABLE(r))->exists)(r, it, ii, l)) #define SUPER_RDDINFO(r, i, l, g) ((*(__SUPERTABLE(r))->rddInfo)(r, i, l, g)) #define ISSUPER_INIT(r) ((__SUPERTABLE(r))->init != NULL) diff --git a/harbour/include/hbrdddbf.h b/harbour/include/hbrdddbf.h index 549290bbce..54555f81ac 100644 --- a/harbour/include/hbrdddbf.h +++ b/harbour/include/hbrdddbf.h @@ -350,8 +350,8 @@ static ERRCODE hb_dbfWriteDBHeader( DBFAREAP pArea ); static ERRCODE hb_dbfInit( LPRDDNODE pRDD ); static ERRCODE hb_dbfExit( LPRDDNODE pRDD ); -static ERRCODE hb_dbfDrop( LPRDDNODE pRDD, PHB_ITEM pItemTable, PHB_ITEM pItemIndex ); -static ERRCODE hb_dbfExists( LPRDDNODE pRDD, PHB_ITEM pItemTable, PHB_ITEM pItemIndex ); +static ERRCODE hb_dbfDrop( LPRDDNODE pRDD, PHB_ITEM pItemTable, PHB_ITEM pItemIndex, ULONG ulConnect ); +static ERRCODE hb_dbfExists( LPRDDNODE pRDD, PHB_ITEM pItemTable, PHB_ITEM pItemIndex, ULONG ulConnect ); static ERRCODE hb_dbfRddInfo( LPRDDNODE pRDD, USHORT uiIndex, ULONG ulConnect, PHB_ITEM pItem ); #define hb_dbfWhoCares NULL diff --git a/harbour/source/rdd/dbcmd.c b/harbour/source/rdd/dbcmd.c index 04182ecb6e..5d28e3d966 100644 --- a/harbour/source/rdd/dbcmd.c +++ b/harbour/source/rdd/dbcmd.c @@ -2038,19 +2038,23 @@ HB_FUNC( HB_DBDROP ) { LPRDDNODE pRDDNode; USHORT uiRddID; + ULONG ulConnection; const char * szDriver; + PHB_ITEM pName; szDriver = hb_parc( 3 ); if( !szDriver ) /* no VIA RDD parameter, use default */ { szDriver = hb_rddDefaultDrv( NULL ); } + ulConnection = hb_parnl( 4 ); pRDDNode = hb_rddFindNode( szDriver, &uiRddID ); /* find the RDDNODE */ + pName = hb_param( 1, HB_IT_STRING ); - if( pRDDNode ) - hb_retl( SELF_DROP( pRDDNode, hb_param( 1, HB_IT_STRING ), - hb_param( 2, HB_IT_STRING ) ) == SUCCESS ); + if( pRDDNode && pName ) + hb_retl( SELF_DROP( pRDDNode, pName, hb_param( 2, HB_IT_STRING ), + ulConnection ) == SUCCESS ); else hb_errRT_DBCMD( EG_ARG, EDBCMD_EVAL_BADPARAMETER, NULL, "HB_DBDROP" ); } @@ -2059,19 +2063,23 @@ HB_FUNC( HB_DBEXISTS ) { LPRDDNODE pRDDNode; USHORT uiRddID; + ULONG ulConnection; const char * szDriver; + PHB_ITEM pName; szDriver = hb_parc( 3 ); if( !szDriver ) /* no VIA RDD parameter, use default */ { szDriver = hb_rddDefaultDrv( NULL ); } + ulConnection = hb_parnl( 4 ); pRDDNode = hb_rddFindNode( szDriver, &uiRddID ); /* find the RDD */ + pName = hb_param( 1, HB_IT_STRING ); - if( pRDDNode ) - hb_retl( SELF_EXISTS( pRDDNode, hb_param( 1, HB_IT_STRING ), - hb_param( 2, HB_IT_STRING ) ) == SUCCESS ); + if( pRDDNode && pName ) + hb_retl( SELF_EXISTS( pRDDNode, pName, hb_param( 2, HB_IT_STRING ), + ulConnection ) == SUCCESS ); else hb_errRT_DBCMD( EG_ARG, EDBCMD_EVAL_BADPARAMETER, NULL, "HB_DBEXISTS" ); } diff --git a/harbour/source/rdd/dbf1.c b/harbour/source/rdd/dbf1.c index 6f90b5276e..0638149281 100644 --- a/harbour/source/rdd/dbf1.c +++ b/harbour/source/rdd/dbf1.c @@ -170,8 +170,8 @@ static const RDDFUNCS dbfTable = { ( DBENTRYP_BP ) hb_dbfBof, ( DBENTRYP_V ) hb_dbfWriteDBHeader, ( DBENTRYP_R ) hb_dbfInit, ( DBENTRYP_R ) hb_dbfExit, - ( DBENTRYP_RVV ) hb_dbfDrop, - ( DBENTRYP_RVV ) hb_dbfExists, + ( DBENTRYP_RVVL ) hb_dbfDrop, + ( DBENTRYP_RVVL ) hb_dbfExists, ( DBENTRYP_RSLV ) hb_dbfRddInfo, ( DBENTRYP_SVP ) hb_dbfWhoCares }; @@ -5163,14 +5163,14 @@ static ERRCODE hb_dbfWriteDBHeader( DBFAREAP pArea ) return errCode; } -static ERRCODE hb_dbfDrop( LPRDDNODE pRDD, PHB_ITEM pItemTable, PHB_ITEM pItemIndex ) +static ERRCODE hb_dbfDrop( LPRDDNODE pRDD, PHB_ITEM pItemTable, PHB_ITEM pItemIndex, ULONG ulConnect ) { char szFileName[ _POSIX_PATH_MAX + 1 ], * szFile, * szExt; PHB_ITEM pFileExt = NULL; PHB_FNAME pFileName; BOOL fTable = FALSE, fResult = FALSE; - HB_TRACE(HB_TR_DEBUG, ("hb_dbfDrop(%p,%p,%p)", pRDD, pItemTable, pItemIndex)); + HB_TRACE(HB_TR_DEBUG, ("hb_dbfDrop(%p,%p,%p,%lu)", pRDD, pItemTable, pItemIndex, ulConnect)); szFile = hb_itemGetCPtr( pItemIndex ); if( !szFile[ 0 ] ) @@ -5188,7 +5188,7 @@ static ERRCODE hb_dbfDrop( LPRDDNODE pRDD, PHB_ITEM pItemTable, PHB_ITEM pItemIn { /* Add default extension if missing */ pFileExt = hb_itemPutC( NULL, "" ); - if( SELF_RDDINFO( pRDD, fTable ? RDDI_TABLEEXT : RDDI_ORDBAGEXT, 0, pFileExt ) == SUCCESS ) + if( SELF_RDDINFO( pRDD, fTable ? RDDI_TABLEEXT : RDDI_ORDBAGEXT, ulConnect, pFileExt ) == SUCCESS ) pFileName->szExtension = hb_itemGetCPtr( pFileExt ); } hb_fsFNameMerge( szFileName, pFileName ); @@ -5209,7 +5209,7 @@ static ERRCODE hb_dbfDrop( LPRDDNODE pRDD, PHB_ITEM pItemTable, PHB_ITEM pItemIn */ pFileName = hb_fsFNameSplit( szFileName ); pFileExt = hb_itemPutC( pFileExt, "" ); - if( SELF_RDDINFO( pRDD, RDDI_MEMOEXT, 0, pFileExt ) == SUCCESS ) + if( SELF_RDDINFO( pRDD, RDDI_MEMOEXT, ulConnect, pFileExt ) == SUCCESS ) { szExt = hb_itemGetCPtr( pFileExt ); if( szExt[ 0 ] ) @@ -5224,7 +5224,7 @@ static ERRCODE hb_dbfDrop( LPRDDNODE pRDD, PHB_ITEM pItemTable, PHB_ITEM pItemIn * in the same directory as table file */ pFileExt = hb_itemPutC( pFileExt, "" ); - if( SELF_RDDINFO( pRDD, RDDI_ORDSTRUCTEXT, 0, pFileExt ) == SUCCESS ) + if( SELF_RDDINFO( pRDD, RDDI_ORDSTRUCTEXT, ulConnect, pFileExt ) == SUCCESS ) { szExt = hb_itemGetCPtr( pFileExt ); if( szExt[ 0 ] ) @@ -5245,14 +5245,14 @@ static ERRCODE hb_dbfDrop( LPRDDNODE pRDD, PHB_ITEM pItemTable, PHB_ITEM pItemIn return fResult ? SUCCESS : FAILURE; } -static ERRCODE hb_dbfExists( LPRDDNODE pRDD, PHB_ITEM pItemTable, PHB_ITEM pItemIndex ) +static ERRCODE hb_dbfExists( LPRDDNODE pRDD, PHB_ITEM pItemTable, PHB_ITEM pItemIndex, ULONG ulConnect ) { char szFileName[ _POSIX_PATH_MAX + 1 ], * szFile; PHB_ITEM pFileExt = NULL; PHB_FNAME pFileName; BOOL fTable = FALSE; - HB_TRACE(HB_TR_DEBUG, ("hb_dbfExists(%p,%p,%p)", pRDD, pItemTable, pItemIndex)); + HB_TRACE(HB_TR_DEBUG, ("hb_dbfExists(%p,%p,%p,%lu)", pRDD, pItemTable, pItemIndex, ulConnect)); szFile = hb_itemGetCPtr( pItemIndex ); if( !szFile[ 0 ] ) @@ -5268,7 +5268,7 @@ static ERRCODE hb_dbfExists( LPRDDNODE pRDD, PHB_ITEM pItemTable, PHB_ITEM pItem if( hb_set.HB_SET_DEFEXTENSIONS && !pFileName->szExtension ) { pFileExt = hb_itemPutC( NULL, "" ); - if( SELF_RDDINFO( pRDD, fTable ? RDDI_TABLEEXT : RDDI_ORDBAGEXT, 0, pFileExt ) == SUCCESS ) + if( SELF_RDDINFO( pRDD, fTable ? RDDI_TABLEEXT : RDDI_ORDBAGEXT, ulConnect, pFileExt ) == SUCCESS ) pFileName->szExtension = hb_itemGetCPtr( pFileExt ); } hb_fsFNameMerge( szFileName, pFileName ); diff --git a/harbour/source/rdd/dbfcdx/dbfcdx1.c b/harbour/source/rdd/dbfcdx/dbfcdx1.c index 14a57e531a..fefb54e7c1 100644 --- a/harbour/source/rdd/dbfcdx/dbfcdx1.c +++ b/harbour/source/rdd/dbfcdx/dbfcdx1.c @@ -274,8 +274,8 @@ static const RDDFUNCS cdxTable = /* non WorkArea functions */ ( DBENTRYP_R ) hb_cdxInit, ( DBENTRYP_R ) hb_cdxExit, - ( DBENTRYP_RVV ) hb_cdxDrop, - ( DBENTRYP_RVV ) hb_cdxExists, + ( DBENTRYP_RVVL ) hb_cdxDrop, + ( DBENTRYP_RVVL ) hb_cdxExists, ( DBENTRYP_RSLV ) hb_cdxRddInfo, diff --git a/harbour/source/rdd/dbffpt/dbffpt1.c b/harbour/source/rdd/dbffpt/dbffpt1.c index 1518a13d6b..118358ffb6 100644 --- a/harbour/source/rdd/dbffpt/dbffpt1.c +++ b/harbour/source/rdd/dbffpt/dbffpt1.c @@ -220,8 +220,8 @@ static const RDDFUNCS fptTable = /* non WorkArea functions */ ( DBENTRYP_R ) hb_fptInit, ( DBENTRYP_R ) hb_fptExit, - ( DBENTRYP_RVV ) hb_fptDrop, - ( DBENTRYP_RVV ) hb_fptExists, + ( DBENTRYP_RVVL ) hb_fptDrop, + ( DBENTRYP_RVVL ) hb_fptExists, ( DBENTRYP_RSLV ) hb_fptRddInfo, /* Special and reserved methods */ diff --git a/harbour/source/rdd/usrrdd/usrrdd.c b/harbour/source/rdd/usrrdd/usrrdd.c index 1376d66b09..f1be0b7ed2 100644 --- a/harbour/source/rdd/usrrdd/usrrdd.c +++ b/harbour/source/rdd/usrrdd/usrrdd.c @@ -2529,32 +2529,34 @@ static ERRCODE hb_usrWriteDBHeader( AREAP pArea ) * non WorkArea functions */ -static ERRCODE hb_usrDrop( LPRDDNODE pRDD, PHB_ITEM pTable, PHB_ITEM pIndex ) +static ERRCODE hb_usrDrop( LPRDDNODE pRDD, PHB_ITEM pTable, PHB_ITEM pIndex, ULONG ulConnection ) { - HB_TRACE(HB_TR_DEBUG, ("hb_usrDrop(%p,%p,%p)", pRDD, pTable, pIndex)); + HB_TRACE(HB_TR_DEBUG, ("hb_usrDrop(%p,%p,%p,%lu)", pRDD, pTable, pIndex, ulConnection)); if( !hb_usrPushMethod( SELF_USRNODE( pRDD )->pMethods, UR_DROP ) ) - return SUPER_DROP( pRDD, pTable, pIndex ); + return SUPER_DROP( pRDD, pTable, pIndex, ulConnection ); hb_vmPushInteger( pRDD->rddID ); hb_vmPush( pTable ); hb_vmPush( pIndex ); - hb_vmDo( 3 ); + hb_vmPushLong( ulConnection ); + hb_vmDo( 4 ); return hb_usrReturn(); } -static ERRCODE hb_usrExists( LPRDDNODE pRDD, PHB_ITEM pTable, PHB_ITEM pIndex ) +static ERRCODE hb_usrExists( LPRDDNODE pRDD, PHB_ITEM pTable, PHB_ITEM pIndex, ULONG ulConnection ) { - HB_TRACE(HB_TR_DEBUG, ("hb_usrExists(%p,%p,%p)", pRDD, pTable, pIndex)); + HB_TRACE(HB_TR_DEBUG, ("hb_usrExists(%p,%p,%p,%lu)", pRDD, pTable, pIndex, ulConnection)); if( !hb_usrPushMethod( SELF_USRNODE( pRDD )->pMethods, UR_EXISTS ) ) - return SUPER_EXISTS( pRDD, pTable, pIndex ); + return SUPER_EXISTS( pRDD, pTable, pIndex, ulConnection ); hb_vmPushInteger( pRDD->rddID ); hb_vmPush( pTable ); hb_vmPush( pIndex ); - hb_vmDo( 3 ); + hb_vmPushLong( ulConnection ); + hb_vmDo( 4 ); return hb_usrReturn(); } @@ -2694,8 +2696,8 @@ static const RDDFUNCS usrFuncTable = /* non WorkArea functions */ /* ( DBENTRYP_R ) */ NULL, /* RDD */ /* Init */ /* ( DBENTRYP_R ) */ NULL, /* RDD */ /* Exit */ - /* ( DBENTRYP_RVV ) */ hb_usrDrop, /* Drop */ - /* ( DBENTRYP_RVV ) */ hb_usrExists, /* Exists */ + /* ( DBENTRYP_RVVL ) */ hb_usrDrop, /* Drop */ + /* ( DBENTRYP_RVVL ) */ hb_usrExists, /* Exists */ /* ( DBENTRYP_RSLV ) */ hb_usrRddInfo, /* RddInfo */ /* Special and reserved methods */ @@ -2820,8 +2822,8 @@ static const RDDFUNCS rddFuncTable = /* non WorkArea functions */ /* ( DBENTRYP_R ) */ hb_usrInit, /* Init */ /* ( DBENTRYP_R ) */ hb_usrExit, /* Exit */ - /* ( DBENTRYP_RVV ) */ NULL, /* Drop */ - /* ( DBENTRYP_RVV ) */ NULL, /* Exists */ + /* ( DBENTRYP_RVVL ) */ NULL, /* Drop */ + /* ( DBENTRYP_RVVL ) */ NULL, /* Exists */ /* ( DBENTRYP_RSLV ) */ NULL, /* RddInfo */ /* Special and reserved methods */ @@ -4244,7 +4246,8 @@ HB_FUNC_UR_SUPER( DROP ) if( pRDD ) hb_retni( SUPER_DROP( pRDD, hb_param( 2, HB_IT_ANY ), - hb_param( 3, HB_IT_ANY ) ) ); + hb_param( 3, HB_IT_ANY ), + hb_parnl( 4 ) ) ); } HB_FUNC_UR_SUPER( EXISTS ) @@ -4253,7 +4256,8 @@ HB_FUNC_UR_SUPER( EXISTS ) if( pRDD ) hb_retni( SUPER_EXISTS( pRDD, hb_param( 2, HB_IT_ANY ), - hb_param( 3, HB_IT_ANY ) ) ); + hb_param( 3, HB_IT_ANY ), + hb_parnl( 4 ) ) ); } HB_FUNC_UR_SUPER( RDDINFO ) diff --git a/harbour/source/rdd/workarea.c b/harbour/source/rdd/workarea.c index 62ac5ed137..14f4b84e8e 100644 --- a/harbour/source/rdd/workarea.c +++ b/harbour/source/rdd/workarea.c @@ -2055,8 +2055,8 @@ static const RDDFUNCS waTable = /* non WorkArea functions */ ( DBENTRYP_R ) NULL, /* Init */ ( DBENTRYP_R ) NULL, /* Exit */ - ( DBENTRYP_RVV ) hb_waRddUnsupported, /* Drop */ - ( DBENTRYP_RVV ) hb_waRddUnsupported, /* Exists */ + ( DBENTRYP_RVVL ) hb_waRddUnsupported, /* Drop */ + ( DBENTRYP_RVVL ) hb_waRddUnsupported, /* Exists */ /* ( DBENTRYP_RSLV ) */ hb_waRddInfo, /* RddInfo */ /* Special and reserved methods */