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

This commit is contained in:
Bruno Cantero
1999-12-04 16:36:47 +00:00
parent f958e5f477
commit 3d67634d2f
6 changed files with 126 additions and 18 deletions

View File

@@ -1,3 +1,12 @@
19991204-17:22 GMT+1 Bruno Cantero <bruno@issnet.net>
* include/rddapi.h
source/rdd/dbcmd.c
source/rdd/dbf1.c
source/rdd/dbfcdx/dbfcdx1.c
+ Added ordBagExt(), ordListAdd() functions.
* source/rtl/dummy.prg
- Removed ordBagExt(), ordListAdd() functions.
19991204-13:15 GMT+1 Bruno Cantero <bruno@issnet.net>
* include/rddapi.h
source/rdd/dbcmd.c

View File

@@ -588,6 +588,7 @@ 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_OII )( AREAP area, USHORT index, 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 );
@@ -690,25 +691,22 @@ typedef struct _RDDFUNCS
DBENTRYP_VP relEval;
DBENTRYP_SVP relText;
DBENTRYP_VP setRel;
#endif
/* Order Management */
DBENTRYP_VP orderListAdd;
#endif
DBENTRYP_OI orderListAdd;
DBENTRYP_V orderListClear;
#if 0
DBENTRYP_VP orderListDelete;
DBENTRYP_VP orderListFocus;
#endif
DBENTRYP_V orderListRebuild;
DBENTRYP_VOI orderCondition;
DBENTRYP_VOC orderCreate;
DBENTRYP_OI orderDestroy;
#if 0
DBENTRYP_SVP orderInfo;
#endif
DBENTRYP_OII orderInfo;
/* Filters and Scope Settings */

View File

@@ -123,9 +123,11 @@ HARBOUR HB_LASTREC( void );
HARBOUR HB_LOCK( void );
HARBOUR HB_LUPDATE( void );
HARBOUR HB_NETERR( void );
HARBOUR HB_ORDBAGEXT( void );
HARBOUR HB_ORDCONDSET( void );
HARBOUR HB_ORDCREATE( void );
HARBOUR HB_ORDDESTROY( void );
HARBOUR HB_ORDLISTADD( void );
HARBOUR HB_ORDLISTCLEAR( void );
HARBOUR HB_ORDLISTREBUILD( void );
HARBOUR HB_RDDLIST( void );
@@ -847,11 +849,13 @@ static RDDFUNCS defTable = { defBof,
defEval,
defUnSupported,
defUnSupported,
( DBENTRYP_OI ) defUnSupported,
defUnSupported,
defUnSupported,
defOrderCondition,
( DBENTRYP_VOC ) defUnSupported,
( DBENTRYP_OI ) defUnSupported,
( DBENTRYP_OII ) defUnSupported,
defClearFilter,
defClearLocate,
defFilterText,
@@ -2905,6 +2909,57 @@ HARBOUR HB_NETERR( void )
hb_retl( bNetError );
}
HARBOUR HB_ORDBAGEXT( void )
{
LPRDDNODE pRddNode;
AREAP pTempArea;
USHORT uiSize, uiRddID;
DBORDERINFO pInfo;
if( !pCurrArea )
{
hb_rddCheck();
uiRddID = 0;
pRddNode = hb_rddFindNode( szDefDriver, &uiRddID );
if( !pRddNode )
{
hb_retc( "" );
return;
}
uiSize = sizeof( AREA ); /* Default Size Area */
pTempArea = ( AREAP ) hb_xgrab( uiSize );
memset( pTempArea, 0, uiSize );
pTempArea->lprfsHost = &pRddNode->pTable;
/* Need more space? */
SELF_STRUCTSIZE( ( AREAP ) pTempArea, &uiSize );
if( uiSize > sizeof( AREA ) ) /* Size of Area changed */
pTempArea = ( AREAP ) hb_xrealloc( pTempArea, uiSize );
pRddNode->uiAreaSize = uiSize; /* Update the size of WorkArea */
pTempArea->rddID = uiRddID;
if( SELF_NEW( ( AREAP ) pTempArea ) == FAILURE )
hb_retc( "" );
else
{
pInfo.itmResult = hb_itemPutC( NULL, "" );
SELF_ORDINFO( ( AREAP ) pCurrArea->pArea, DBOI_BAGEXT, &pInfo );
hb_retc( pInfo.itmResult->item.asString.value );
hb_itemRelease( pInfo.itmResult );
SELF_RELEASE( ( AREAP ) pTempArea );
}
hb_xfree( pTempArea );
}
else
{
pInfo.itmResult = hb_itemPutC( NULL, "" );
SELF_ORDINFO( ( AREAP ) pCurrArea->pArea, DBOI_BAGEXT, &pInfo );
hb_retc( pInfo.itmResult->item.asString.value );
hb_itemRelease( pInfo.itmResult );
}
}
HARBOUR HB_ORDCONDSET( void )
{
LPDBORDERCONDINFO pOrderCondInfo;
@@ -3014,6 +3069,28 @@ HARBOUR HB_ORDDESTROY( void )
}
}
HARBOUR HB_ORDLISTADD( void )
{
DBORDERINFO pOrderInfo;
char * szKeyExpr;
if( pCurrArea )
{
pOrderInfo.atomBagName = hb_param( 1, IT_STRING );
pOrderInfo.itmOrder = hb_param( 2, IT_STRING );
if( !pOrderInfo.itmOrder )
pOrderInfo.itmOrder = hb_param( 2, IT_NUMERIC );
if( !pOrderInfo.atomBagName && !pOrderInfo.itmOrder )
{
hb_errRT_DBCMD( EG_ARG, 1006, NULL, "ORDLISTADD" );
return;
}
SELF_ORDLSTADD( ( AREAP ) pCurrArea->pArea, &pOrderInfo );
}
else
hb_errRT_DBCMD( EG_NOTABLE, 2001, NULL, "ORDLISTADD" );
}
HARBOUR HB_ORDLISTCLEAR( void )
{
if( pCurrArea )

View File

@@ -653,11 +653,13 @@ static RDDFUNCS dbfSuper = { 0 };
#define dbfStructSize NULL
#define dbfSysName NULL
#define dbfEval NULL
#define dbfOrderListAdd NULL
#define dbfOrderListClear NULL
#define dbfOrderListRebuild NULL
#define dbfOrderCondition NULL
#define dbfOrderCreate NULL
#define dbfOrderDestroy NULL
#define dbfOrderInfo NULL
#define dbfClearFilter NULL
#define dbfClearLocate NULL
#define dbfFilterText NULL
@@ -2047,11 +2049,13 @@ static RDDFUNCS dbfTable = { dbfBof,
dbfEval,
dbfPack,
dbfZap,
dbfOrderListAdd,
dbfOrderListClear,
dbfOrderListRebuild,
dbfOrderCondition,
dbfOrderCreate,
dbfOrderDestroy,
dbfOrderInfo,
dbfClearFilter,
dbfClearLocate,
dbfFilterText,

View File

@@ -462,6 +462,16 @@ static ERRCODE cdxOpenMemFile( AREAP pArea, LPDBOPENINFO pOpenInfo )
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 cdxOrderDestroy( AREAP pArea, LPDBORDERINFO pOrderInfo )
{
HB_TRACE(HB_TR_DEBUG, ("cdxOrderDestroy(%p, %p)", pArea, pOrderInfo));
@@ -469,6 +479,26 @@ static ERRCODE cdxOrderDestroy( AREAP pArea, LPDBORDERINFO pOrderInfo )
return SUCCESS;
}
static ERRCODE cdxOrderInfo( AREAP pArea, USHORT uiIndex, LPDBORDERINFO pInfo )
{
HB_TRACE(HB_TR_DEBUG, ("cdxOrderInfo(%p, %hu, %p)", pArea, uiIndex, pInfo));
switch( uiIndex )
{
case DBOI_BAGEXT:
hb_itemPutC( pInfo->itmResult, ".cdx" );
break;
}
return SUCCESS;
}
static ERRCODE cdxOrderListAdd( AREAP pArea, LPDBORDERINFO pOrderInfo )
{
HB_TRACE(HB_TR_DEBUG, ("cdxOrderListAdd(%p, %p)", pArea, pOrderInfo));
return SUCCESS;
}
static ERRCODE cdxOrderListClear( AREAP pArea )
{
HB_TRACE(HB_TR_DEBUG, ("cdxOrderListClear(%p)", pArea));
@@ -483,16 +513,6 @@ static ERRCODE cdxOrderListRebuild( AREAP 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;
@@ -663,11 +683,13 @@ static RDDFUNCS cdxTable = { cdxBof,
cdxEval,
cdxPack,
cdxZap,
cdxOrderListAdd,
cdxOrderListClear,
cdxOrderListRebuild,
cdxOrderCondition,
cdxOrderCreate,
cdxOrderDestroy,
cdxOrderInfo,
cdxClearFilter,
cdxClearLocate,
cdxFilterText,

View File

@@ -35,7 +35,6 @@
/* TODO: Dummy functions, should be removed when implemented. */
FUNCTION ordBagExt() ; RETURN ".ntx"
FUNCTION ordBagName() ; RETURN ""
FUNCTION ordCond() ; RETURN NIL /* 5.3 */
FUNCTION ordDescend() ; RETURN .F. /* 5.3 */
@@ -48,7 +47,6 @@ FUNCTION ordKeyDel() ; RETURN .F. /* 5.3 */
FUNCTION ordKeyGoto() ; RETURN .F. /* 5.3 */
FUNCTION ordKeyNo() ; RETURN 0 /* 5.3 */
FUNCTION ordKeyVal() ; RETURN NIL /* 5.3 */
FUNCTION ordListAdd() ; RETURN NIL
FUNCTION ordName() ; RETURN ""
FUNCTION ordNumber() ; RETURN 0
FUNCTION ordScope() ; RETURN NIL /* 5.3 */