ChangeLogTag:19991204-13:15 GMT+1 Bruno Cantero <bruno@issnet.net>
This commit is contained in:
@@ -1,3 +1,14 @@
|
||||
19991204-13:15 GMT+1 Bruno Cantero <bruno@issnet.net>
|
||||
* include/rddapi.h
|
||||
source/rdd/dbcmd.c
|
||||
source/rdd/dbf1.c
|
||||
source/rdd/dbfcdx/dbfcdx1.c
|
||||
+ Begining with ordCondSet(), ordCreate(), ordDestroy(), ordListClear() and
|
||||
ordListRebuild().
|
||||
* source/rtl/dummy.prg
|
||||
- Removed ordCondSet(), ordCreate(), ordDestroy(), ordListClear() and
|
||||
ordListRebuild() functions.
|
||||
|
||||
19991203-15:18 GMT+1 Jose Lalin <dezac@corevia.com>
|
||||
* source/pp/hbpp.c
|
||||
! Bug fixed in #error directive.
|
||||
|
||||
@@ -585,6 +585,9 @@ typedef USHORT ( * DBENTRYP_VL )( AREAP area, LPDBLOCKINFO param );
|
||||
typedef USHORT ( * DBENTRYP_VFI )( AREAP area, LPDBFILTERINFO param );
|
||||
typedef USHORT ( * DBENTRYP_VEI )( AREAP area, LPDBEVALINFO param );
|
||||
typedef USHORT ( * DBENTRYP_VLO )( AREAP area, LPDBSCOPEINFO param );
|
||||
typedef USHORT ( * DBENTRYP_VOC )( AREAP area, LPDBORDERCREATEINFO param );
|
||||
typedef USHORT ( * DBENTRYP_VOI )( AREAP area, LPDBORDERCONDINFO param );
|
||||
typedef USHORT ( * DBENTRYP_OI )( AREAP area, LPDBORDERINFO param );
|
||||
typedef USHORT ( * DBENTRYP_SP )( AREAP area, USHORT * param );
|
||||
typedef USHORT ( * DBENTRYP_P )( AREAP area, BYTE * param );
|
||||
typedef USHORT ( * DBENTRYP_PP )( AREAP area, BYTE ** param );
|
||||
@@ -692,14 +695,18 @@ typedef struct _RDDFUNCS
|
||||
/* Order Management */
|
||||
|
||||
DBENTRYP_VP orderListAdd;
|
||||
#endif
|
||||
DBENTRYP_V orderListClear;
|
||||
#if 0
|
||||
DBENTRYP_VP orderListDelete;
|
||||
DBENTRYP_VP orderListFocus;
|
||||
#endif
|
||||
DBENTRYP_V orderListRebuild;
|
||||
|
||||
DBENTRYP_VP orderCondition;
|
||||
DBENTRYP_VP orderCreate;
|
||||
DBENTRYP_VP orderDestroy;
|
||||
DBENTRYP_VOI orderCondition;
|
||||
DBENTRYP_VOC orderCreate;
|
||||
DBENTRYP_OI orderDestroy;
|
||||
#if 0
|
||||
DBENTRYP_SVP orderInfo;
|
||||
#endif
|
||||
|
||||
|
||||
@@ -123,6 +123,11 @@ HARBOUR HB_LASTREC( void );
|
||||
HARBOUR HB_LOCK( void );
|
||||
HARBOUR HB_LUPDATE( void );
|
||||
HARBOUR HB_NETERR( void );
|
||||
HARBOUR HB_ORDCONDSET( void );
|
||||
HARBOUR HB_ORDCREATE( void );
|
||||
HARBOUR HB_ORDDESTROY( void );
|
||||
HARBOUR HB_ORDLISTCLEAR( void );
|
||||
HARBOUR HB_ORDLISTREBUILD( void );
|
||||
HARBOUR HB_RDDLIST( void );
|
||||
HARBOUR HB_RDDNAME( void );
|
||||
HARBOUR HB_RDDREGISTER( void );
|
||||
@@ -519,12 +524,32 @@ static ERRCODE defOpen( AREAP pArea, LPDBOPENINFO pOpenInfo )
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static ERRCODE defOrderCondition( AREAP pArea, LPDBORDERCONDINFO pOrderInfo )
|
||||
{
|
||||
if( pArea->lpdbOrdCondInfo )
|
||||
{
|
||||
if( pArea->lpdbOrdCondInfo->abFor )
|
||||
hb_xfree( pArea->lpdbOrdCondInfo->abFor );
|
||||
if( pArea->lpdbOrdCondInfo->itmCobFor )
|
||||
hb_itemRelease( pArea->lpdbOrdCondInfo->itmCobFor );
|
||||
if( pArea->lpdbOrdCondInfo->itmCobWhile )
|
||||
hb_itemRelease( pArea->lpdbOrdCondInfo->itmCobWhile );
|
||||
if( pArea->lpdbOrdCondInfo->itmCobEval )
|
||||
hb_itemRelease( pArea->lpdbOrdCondInfo->itmCobEval );
|
||||
hb_xfree( pArea->lpdbOrdCondInfo );
|
||||
}
|
||||
pArea->lpdbOrdCondInfo = pOrderInfo;
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static ERRCODE defRelease( AREAP pArea )
|
||||
{
|
||||
LPFILEINFO pFileInfo;
|
||||
|
||||
HB_TRACE(HB_TR_DEBUG, ("defRelease(%p)", pArea));
|
||||
|
||||
SELF_ORDSETCOND( pArea, NULL );
|
||||
if( pArea->lpFields )
|
||||
{
|
||||
hb_xfree( pArea->lpFields );
|
||||
@@ -822,6 +847,11 @@ static RDDFUNCS defTable = { defBof,
|
||||
defEval,
|
||||
defUnSupported,
|
||||
defUnSupported,
|
||||
defUnSupported,
|
||||
defUnSupported,
|
||||
defOrderCondition,
|
||||
( DBENTRYP_VOC ) defUnSupported,
|
||||
( DBENTRYP_OI ) defUnSupported,
|
||||
defClearFilter,
|
||||
defClearLocate,
|
||||
defFilterText,
|
||||
@@ -2875,6 +2905,131 @@ HARBOUR HB_NETERR( void )
|
||||
hb_retl( bNetError );
|
||||
}
|
||||
|
||||
HARBOUR HB_ORDCONDSET( void )
|
||||
{
|
||||
LPDBORDERCONDINFO pOrderCondInfo;
|
||||
char * szFor;
|
||||
ULONG ulLen;
|
||||
PHB_ITEM pItem;
|
||||
|
||||
if( pCurrArea )
|
||||
{
|
||||
pOrderCondInfo = ( LPDBORDERCONDINFO ) hb_xgrab( sizeof( DBORDERCONDINFO ) );
|
||||
szFor = hb_parc( 1 );
|
||||
ulLen = strlen( szFor );
|
||||
if( ulLen )
|
||||
{
|
||||
pOrderCondInfo->abFor = ( BYTE * ) hb_xgrab( ulLen + 1 );
|
||||
strcpy( ( char * ) pOrderCondInfo->abFor, szFor );
|
||||
}
|
||||
else
|
||||
pOrderCondInfo->abFor = NULL;
|
||||
pItem = hb_param( 2, IT_BLOCK );
|
||||
if( pItem )
|
||||
{
|
||||
pOrderCondInfo->itmCobFor = hb_itemNew( NULL );
|
||||
hb_itemCopy( pOrderCondInfo->itmCobFor, pItem );
|
||||
}
|
||||
else
|
||||
pOrderCondInfo->itmCobFor = NULL;
|
||||
if( ISLOG( 3 ) )
|
||||
pOrderCondInfo->fAll = hb_parl( 3 );
|
||||
else
|
||||
pOrderCondInfo->fAll = TRUE;
|
||||
pItem = hb_param( 4, IT_BLOCK );
|
||||
if( pItem )
|
||||
{
|
||||
pOrderCondInfo->itmCobWhile = hb_itemNew( NULL );
|
||||
hb_itemCopy( pOrderCondInfo->itmCobWhile, pItem );
|
||||
}
|
||||
else
|
||||
pOrderCondInfo->itmCobWhile = NULL;
|
||||
pItem = hb_param( 5, IT_BLOCK );
|
||||
if( pItem )
|
||||
{
|
||||
pOrderCondInfo->itmCobEval = hb_itemNew( NULL );
|
||||
hb_itemCopy( pOrderCondInfo->itmCobEval, pItem );
|
||||
}
|
||||
else
|
||||
pOrderCondInfo->itmCobEval = NULL;
|
||||
pOrderCondInfo->lStep = hb_parnl( 6 );
|
||||
pOrderCondInfo->lStartRecno = hb_parnl( 7 );
|
||||
pOrderCondInfo->lNextCount = hb_parnl( 8 );
|
||||
pOrderCondInfo->lRecno = hb_parnl( 9 );
|
||||
pOrderCondInfo->fRest = hb_parl( 10 );
|
||||
pOrderCondInfo->fDescending = hb_parl( 11 );
|
||||
pOrderCondInfo->fAdditive = hb_parl( 12 );
|
||||
pOrderCondInfo->fScoped = hb_parl( 13 );
|
||||
pOrderCondInfo->fCustom = hb_parl( 14 );
|
||||
pOrderCondInfo->fNoOptimize = hb_parl( 15 );
|
||||
if( !pOrderCondInfo->itmCobWhile )
|
||||
pOrderCondInfo->fRest = TRUE;
|
||||
if( pOrderCondInfo->lNextCount || pOrderCondInfo->lRecno || pOrderCondInfo->fRest )
|
||||
pOrderCondInfo->fAll = FALSE;
|
||||
hb_retl( SELF_ORDSETCOND( ( AREAP ) pCurrArea->pArea, pOrderCondInfo ) == SUCCESS );
|
||||
}
|
||||
else
|
||||
hb_retl( FALSE );
|
||||
}
|
||||
|
||||
HARBOUR HB_ORDCREATE( void )
|
||||
{
|
||||
DBORDERCREATEINFO pOrderInfo;
|
||||
char * szKeyExpr;
|
||||
|
||||
if( pCurrArea )
|
||||
{
|
||||
pOrderInfo.abBagName = ( BYTE * ) hb_parc( 1 );
|
||||
pOrderInfo.atomBagName = ( BYTE * ) hb_parc( 2 );
|
||||
pOrderInfo.abExpr = hb_param( 3, IT_STRING );
|
||||
if( ( ( strlen( ( char * ) pOrderInfo.abBagName ) == 0 ) &&
|
||||
( strlen( ( char * ) pOrderInfo.atomBagName ) == 0 ) ) ||
|
||||
!pOrderInfo.abExpr )
|
||||
{
|
||||
hb_errRT_DBCMD( EG_ARG, 1006, NULL, "ORDCREATE" );
|
||||
return;
|
||||
}
|
||||
pOrderInfo.itmCobExpr = hb_param( 4, IT_BLOCK );
|
||||
if( ISLOG( 5 ) )
|
||||
pOrderInfo.fUnique = hb_parl( 5 );
|
||||
else
|
||||
pOrderInfo.fUnique = hb_set.HB_SET_UNIQUE;
|
||||
SELF_ORDCREATE( ( AREAP ) pCurrArea->pArea, &pOrderInfo );
|
||||
}
|
||||
else
|
||||
hb_errRT_DBCMD( EG_NOTABLE, 2001, NULL, "ORDCREATE" );
|
||||
}
|
||||
|
||||
HARBOUR HB_ORDDESTROY( void )
|
||||
{
|
||||
DBORDERINFO pOrderInfo;
|
||||
|
||||
if( pCurrArea )
|
||||
{
|
||||
pOrderInfo.itmOrder = hb_param( 1, IT_STRING );
|
||||
if( !pOrderInfo.itmOrder )
|
||||
pOrderInfo.itmOrder = hb_param( 1, IT_NUMERIC );
|
||||
pOrderInfo.atomBagName = hb_param( 2, IT_STRING );
|
||||
SELF_ORDDESTROY( ( AREAP ) pCurrArea->pArea, &pOrderInfo );
|
||||
}
|
||||
}
|
||||
|
||||
HARBOUR HB_ORDLISTCLEAR( void )
|
||||
{
|
||||
if( pCurrArea )
|
||||
SELF_ORDLSTCLEAR( ( AREAP ) pCurrArea->pArea );
|
||||
else
|
||||
hb_errRT_DBCMD( EG_NOTABLE, 2001, NULL, "ORDLISTCLEAR" );
|
||||
}
|
||||
|
||||
HARBOUR HB_ORDLISTREBUILD( void )
|
||||
{
|
||||
if( pCurrArea )
|
||||
SELF_ORDLSTREBUILD( ( AREAP ) pCurrArea->pArea );
|
||||
else
|
||||
hb_errRT_DBCMD( EG_NOTABLE, 2001, NULL, "ORDLISTCLEAR" );
|
||||
}
|
||||
|
||||
HARBOUR HB_RDDLIST( void )
|
||||
{
|
||||
USHORT uiType;
|
||||
|
||||
@@ -653,6 +653,11 @@ static RDDFUNCS dbfSuper = { 0 };
|
||||
#define dbfStructSize NULL
|
||||
#define dbfSysName NULL
|
||||
#define dbfEval NULL
|
||||
#define dbfOrderListClear NULL
|
||||
#define dbfOrderListRebuild NULL
|
||||
#define dbfOrderCondition NULL
|
||||
#define dbfOrderCreate NULL
|
||||
#define dbfOrderDestroy NULL
|
||||
#define dbfClearFilter NULL
|
||||
#define dbfClearLocate NULL
|
||||
#define dbfFilterText NULL
|
||||
@@ -2042,6 +2047,11 @@ static RDDFUNCS dbfTable = { dbfBof,
|
||||
dbfEval,
|
||||
dbfPack,
|
||||
dbfZap,
|
||||
dbfOrderListClear,
|
||||
dbfOrderListRebuild,
|
||||
dbfOrderCondition,
|
||||
dbfOrderCreate,
|
||||
dbfOrderDestroy,
|
||||
dbfClearFilter,
|
||||
dbfClearLocate,
|
||||
dbfFilterText,
|
||||
|
||||
@@ -306,6 +306,7 @@ static BOOL hb_cdxWriteMemo( AREAP pArea, LPDBFMEMO pMemo, ULONG * lNewRecNo )
|
||||
#define cdxEval NULL
|
||||
#define cdxPack NULL
|
||||
#define cdxZap NULL
|
||||
#define cdxOrderCondition NULL
|
||||
#define cdxClearFilter NULL
|
||||
#define cdxClearLocate NULL
|
||||
#define cdxFilterText NULL
|
||||
@@ -461,6 +462,37 @@ static ERRCODE cdxOpenMemFile( AREAP pArea, LPDBOPENINFO pOpenInfo )
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static ERRCODE cdxOrderDestroy( AREAP pArea, LPDBORDERINFO pOrderInfo )
|
||||
{
|
||||
HB_TRACE(HB_TR_DEBUG, ("cdxOrderDestroy(%p, %p)", pArea, pOrderInfo));
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static ERRCODE cdxOrderListClear( AREAP pArea )
|
||||
{
|
||||
HB_TRACE(HB_TR_DEBUG, ("cdxOrderListClear(%p)", pArea));
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static ERRCODE cdxOrderListRebuild( AREAP pArea )
|
||||
{
|
||||
HB_TRACE(HB_TR_DEBUG, ("cdxOrderListRebuild(%p)", pArea));
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static ERRCODE cdxOrderCreate( AREAP pArea, LPDBORDERCREATEINFO pOrderInfo )
|
||||
{
|
||||
HB_TRACE(HB_TR_DEBUG, ("cdxOrderCreate(%p, %p)", pArea, pOrderInfo));
|
||||
|
||||
if( SELF_GOCOLD( pArea ) == FAILURE )
|
||||
return FAILURE;
|
||||
|
||||
return SELF_GOTOP( pArea );
|
||||
}
|
||||
|
||||
static ERRCODE cdxPutValueFile( AREAP pArea, USHORT uiIndex, void * pFile )
|
||||
{
|
||||
LPFIELD pField;
|
||||
@@ -631,6 +663,11 @@ static RDDFUNCS cdxTable = { cdxBof,
|
||||
cdxEval,
|
||||
cdxPack,
|
||||
cdxZap,
|
||||
cdxOrderListClear,
|
||||
cdxOrderListRebuild,
|
||||
cdxOrderCondition,
|
||||
cdxOrderCreate,
|
||||
cdxOrderDestroy,
|
||||
cdxClearFilter,
|
||||
cdxClearLocate,
|
||||
cdxFilterText,
|
||||
|
||||
@@ -38,10 +38,7 @@
|
||||
FUNCTION ordBagExt() ; RETURN ".ntx"
|
||||
FUNCTION ordBagName() ; RETURN ""
|
||||
FUNCTION ordCond() ; RETURN NIL /* 5.3 */
|
||||
FUNCTION ordCondSet() ; RETURN NIL
|
||||
FUNCTION ordCreate() ; RETURN NIL
|
||||
FUNCTION ordDescend() ; RETURN .F. /* 5.3 */
|
||||
FUNCTION ordDestroy() ; RETURN NIL
|
||||
FUNCTION ordFor() ; RETURN NIL
|
||||
FUNCTION ordIsUnique() ; RETURN .F. /* 5.3 */
|
||||
FUNCTION ordKey() ; RETURN ""
|
||||
@@ -52,8 +49,6 @@ FUNCTION ordKeyGoto() ; RETURN .F. /* 5.3 */
|
||||
FUNCTION ordKeyNo() ; RETURN 0 /* 5.3 */
|
||||
FUNCTION ordKeyVal() ; RETURN NIL /* 5.3 */
|
||||
FUNCTION ordListAdd() ; RETURN NIL
|
||||
FUNCTION ordListClear() ; RETURN NIL
|
||||
FUNCTION ordListRebuild() ; RETURN NIL
|
||||
FUNCTION ordName() ; RETURN ""
|
||||
FUNCTION ordNumber() ; RETURN 0
|
||||
FUNCTION ordScope() ; RETURN NIL /* 5.3 */
|
||||
|
||||
Reference in New Issue
Block a user