ChangeLogTag:19991204-13:15 GMT+1 Bruno Cantero <bruno@issnet.net>

This commit is contained in:
Bruno Cantero
1999-12-04 12:34:27 +00:00
parent d7b30cd496
commit f958e5f477
6 changed files with 223 additions and 8 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -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 */