ChangeLogTag:19991204-17:22 GMT+1 Bruno Cantero <bruno@issnet.net>
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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 )
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user