2002-11-18 14:55 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su>
This commit is contained in:
@@ -8,6 +8,15 @@
|
||||
2002-12-01 23:12 UTC+0100 Foo Bar <foo.bar@foobar.org>
|
||||
*/
|
||||
|
||||
2002-11-18 14:55 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su>
|
||||
* include/hbrddapi.c
|
||||
* source/rdd/dbcmd.c
|
||||
* source/rdd/workarea.c
|
||||
* source/rdd/dbfntx/dbfntx1.c
|
||||
* source/pp/pptable.c
|
||||
* contrib/rdd_ads/ads1.c
|
||||
* WHILE clause implemented for ADS RDD
|
||||
|
||||
2002-11-15 14:30 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su>
|
||||
* include/hbcdpapi.c
|
||||
* source/rtl/cdpapi.c
|
||||
|
||||
@@ -1989,6 +1989,17 @@ static ERRCODE adsOrderCreate( ADSAREAP pArea, LPDBORDERCREATEINFO pOrderInfo )
|
||||
{
|
||||
hTableOrIndex = pArea->hTable;
|
||||
}
|
||||
if( pArea->lpdbOrdCondInfo && pArea->lpdbOrdCondInfo->abWhile )
|
||||
{
|
||||
if( pucWhile[0] )
|
||||
{
|
||||
strcat( (char * ) pucWhile, ".AND.(");
|
||||
strcat( (char * ) pucWhile, (char * ) pArea->lpdbOrdCondInfo->abWhile );
|
||||
strcat( (char * ) pucWhile, ")");
|
||||
}
|
||||
else
|
||||
strcat( (char * ) pucWhile, (char * ) pArea->lpdbOrdCondInfo->abWhile );
|
||||
}
|
||||
|
||||
if ( pArea->lpdbOrdCondInfo )
|
||||
{
|
||||
|
||||
@@ -186,6 +186,7 @@ typedef struct _DBORDERCONDINFO
|
||||
{
|
||||
BOOL fActive;
|
||||
BYTE * abFor;
|
||||
BYTE * abWhile;
|
||||
PHB_ITEM itmCobFor;
|
||||
PHB_ITEM itmCobWhile;
|
||||
PHB_ITEM itmCobEval;
|
||||
|
||||
@@ -400,14 +400,14 @@ void hb_pp_Table( void )
|
||||
"CLOSE DATABASES ; CLOSE FORMAT ; CLEAR MEMORY ; CLEAR GETS ; SET ALTERNATE OFF ; SET ALTERNATE TO",&sC___228 };
|
||||
#ifdef HB_EXTENSION
|
||||
static COMMANDS sC___230 = {0,"INDEX","ON \1A00 [TAG \1B40 ] TO \1C40 [FOR \1D00] [\1E20ALL>] [WHILE \1F00] [NEXT \1G00] [RECORD \1H00] [\1I20REST>] [EVAL \1J00] [EVERY \1K00] [\1L20 UNIQUE>] [\1M20 ASCENDING>] [\1N20 DESCENDING>] [\1O20 USECURRENT>] [\1P20 ADDITIVE>] [\1R20 CUSTOM>] [\1S20 NOOPTIMIZE>] [\1T20 MEMORY>]",
|
||||
"ordCondSet( \1D20, \1D40, [\1E50], \1F40, \1J40, \1K00, RECNO(), \1G00, \1H00, [\1I50], [\1N50],, [\1P50], [\1O50], [\1R50], [\1S50], [\1T50] ) ; ordCreate(\1C30, \1B30, \1A20, \1A40, [\1L50] )",&sC___229 };
|
||||
"ordCondSet( \1D20, \1D40, [\1E50], \1F40, \1J40, \1K00, RECNO(), \1G00, \1H00, [\1I50], [\1N50],, [\1P50], [\1O50], [\1R50], [\1S50], \1F20, [\1T50] ) ; ordCreate(\1C30, \1B30, \1A20, \1A40, [\1L50] )",&sC___229 };
|
||||
static COMMANDS sC___231 = {0,"INDEX","ON \1A00 TAG \1B40 [TO \1C40] [FOR \1D00] [\1E20ALL>] [WHILE \1F00] [NEXT \1G00] [RECORD \1H00] [\1I20REST>] [EVAL \1J00] [EVERY \1K00] [\1L20 UNIQUE>] [\1M20 ASCENDING>] [\1N20 DESCENDING>] [\1O20 USECURRENT>] [\1P20 ADDITIVE>] [\1R20 CUSTOM>] [\1S20 NOOPTIMIZE>] [\1T20 MEMORY>]",
|
||||
"ordCondSet( \1D20, \1D40, [\1E50], \1F40, \1J40, \1K00, RECNO(), \1G00, \1H00, [\1I50], [\1N50],, [\1P50], [\1O50], [\1R50], [\1S50], [\1T50] ) ; ordCreate(\1C30, \1B30, \1A20, \1A40, [\1L50] )",&sC___230 };
|
||||
"ordCondSet( \1D20, \1D40, [\1E50], \1F40, \1J40, \1K00, RECNO(), \1G00, \1H00, [\1I50], [\1N50],, [\1P50], [\1O50], [\1R50], [\1S50], \1F20, [\1T50] ) ; ordCreate(\1C30, \1B30, \1A20, \1A40, [\1L50] )",&sC___230 };
|
||||
#else
|
||||
static COMMANDS sC___230 = {0,"INDEX","ON \1A00 [TAG \1B40 ] TO \1C40 [FOR \1D00] [\1E20ALL>] [WHILE \1F00] [NEXT \1G00] [RECORD \1H00] [\1I20REST>] [EVAL \1J00] [EVERY \1K00] [\1L20 UNIQUE>] [\1M20 ASCENDING>] [\1N20 DESCENDING>] [\1O20 USECURRENT>] [\1P20 ADDITIVE>] [\1R20 CUSTOM>] [\1S20 NOOPTIMIZE>]",
|
||||
"ordCondSet( \1D20, \1D40, [\1E50], \1F40, \1J40, \1K00, RECNO(), \1G00, \1H00, [\1I50], [\1N50],, [\1P50], [\1O50], [\1R50], [\1S50] ) ; ordCreate(\1C30, \1B30, \1A20, \1A40, [\1L50] )",&sC___229 };
|
||||
"ordCondSet( \1D20, \1D40, [\1E50], \1F40, \1J40, \1K00, RECNO(), \1G00, \1H00, [\1I50], [\1N50],, [\1P50], [\1O50], [\1R50], [\1S50], \1F20 ) ; ordCreate(\1C30, \1B30, \1A20, \1A40, [\1L50] )",&sC___229 };
|
||||
static COMMANDS sC___231 = {0,"INDEX","ON \1A00 TAG \1B40 [TO \1C40] [FOR \1D00] [\1E20ALL>] [WHILE \1F00] [NEXT \1G00] [RECORD \1H00] [\1I20REST>] [EVAL \1J00] [EVERY \1K00] [\1L20 UNIQUE>] [\1M20 ASCENDING>] [\1N20 DESCENDING>] [\1O20 USECURRENT>] [\1P20 ADDITIVE>] [\1R20 CUSTOM>] [\1S20 NOOPTIMIZE>]",
|
||||
"ordCondSet( \1D20, \1D40, [\1E50], \1F40, \1J40, \1K00, RECNO(), \1G00, \1H00, [\1I50], [\1N50],, [\1P50], [\1O50], [\1R50], [\1S50] ) ; ordCreate(\1C30, \1B30, \1A20, \1A40, [\1L50] )",&sC___230 };
|
||||
"ordCondSet( \1D20, \1D40, [\1E50], \1F40, \1J40, \1K00, RECNO(), \1G00, \1H00, [\1I50], [\1N50],, [\1P50], [\1O50], [\1R50], [\1S50], \1F20 ) ; ordCreate(\1C30, \1B30, \1A20, \1A40, [\1L50] )",&sC___230 };
|
||||
#endif
|
||||
static COMMANDS sC___232 = {0,"INDEX","ON \1A00 TO \1B40 [\1C20 UNIQUE>]",
|
||||
"dbCreateIndex( \1B30, \1A20, \1A40, if( \1C50, .t., NIL ) )",&sC___231 };
|
||||
|
||||
@@ -2359,6 +2359,14 @@ HB_FUNC( ORDCONDSET )
|
||||
else
|
||||
lpdbOrdCondInfo->abFor = NULL;
|
||||
|
||||
if( ISCHAR( 17 ) && ( ulLen = hb_parclen( 17 ) ) > 0 )
|
||||
{
|
||||
lpdbOrdCondInfo->abWhile = ( BYTE * ) hb_xgrab( ulLen + 1 );
|
||||
strcpy( ( char * ) lpdbOrdCondInfo->abWhile, hb_parc( 17 ) );
|
||||
}
|
||||
else
|
||||
lpdbOrdCondInfo->abWhile = NULL;
|
||||
|
||||
pItem = hb_param( 2, HB_IT_BLOCK );
|
||||
if( pItem )
|
||||
{
|
||||
|
||||
@@ -3401,7 +3401,7 @@ static ERRCODE ntxOrderCondition( NTXAREAP area, LPDBORDERCONDINFO pOrdCondInfo
|
||||
{
|
||||
#ifdef HB_EXTENSION
|
||||
if( pOrdCondInfo )
|
||||
pOrdCondInfo->fNoOptimize = hb_parl( 17 );
|
||||
pOrdCondInfo->fNoOptimize = hb_parl( 18 );
|
||||
#endif
|
||||
return SUPER_ORDSETCOND( ( AREAP ) area, pOrdCondInfo );
|
||||
}
|
||||
|
||||
@@ -574,6 +574,8 @@ ERRCODE hb_waOrderCondition( AREAP pArea, LPDBORDERCONDINFO param )
|
||||
{
|
||||
if( pArea->lpdbOrdCondInfo->abFor )
|
||||
hb_xfree( pArea->lpdbOrdCondInfo->abFor );
|
||||
if( pArea->lpdbOrdCondInfo->abWhile )
|
||||
hb_xfree( pArea->lpdbOrdCondInfo->abWhile );
|
||||
if( pArea->lpdbOrdCondInfo->itmCobFor )
|
||||
{
|
||||
hb_itemRelease( pArea->lpdbOrdCondInfo->itmCobFor );
|
||||
|
||||
Reference in New Issue
Block a user