20000215-13:22 GMT+1 Philip Joseph <philjo@writeme.com>

This commit is contained in:
Philip Joseph
2000-02-15 12:28:44 +00:00
parent 9a6800b212
commit 342e8d29df
2 changed files with 43 additions and 11 deletions

View File

@@ -697,17 +697,32 @@ static ERRCODE adsInfo( ADSAREAP pArea, USHORT uiIndex, PHB_ITEM pItem )
break;
case DBI_TABLEEXT:
hb_itemPutC( pItem, ".dbf" );
hb_itemPutC( pItem, ((adsFileType==ADS_ADT) ? ".ADT" : ".DBF") );
break;
case DBI_MEMOEXT:
hb_itemPutC( pItem, ".dbt" );
hb_itemPutC( pItem, ((adsFileType==ADS_ADT) ? ".ADM" :
(adsFileType==ADS_CDX) ? ".FPT" : ".DBT") );
break;
case DBI_GETLOCKARRAY:
// hb_dbfGetLockArray( pArea, pItem );
break;
{
USHORT uiCount;
AdsGetNumLocks(pArea->hTable, &uiIndex);
if(uiIndex)
{
UNSIGNED32 *puLocks;
puLocks = (UNSIGNED32 *) hb_xgrab( (uiIndex + 1) * sizeof( UNSIGNED32 ) );
AdsGetAllLocks(pArea->hTable, puLocks, &uiIndex);
if(uiIndex)
for(uiCount=0; uiCount < uiIndex; uiCount++)
hb_arrayAdd( pItem, hb_itemPutNL( NULL, puLocks[ uiCount ] ) );
hb_xfree(puLocks);
}
break;
}
case DBI_LASTUPDATE:
hb_itemClear( pItem );
pItem->type = IT_DATE;
@@ -805,9 +820,10 @@ static ERRCODE adsOrderListAdd( ADSAREAP pArea, LPDBORDERINFO pOrderInfo )
ulRetVal = AdsOpenIndex( pArea->hTable,
(UNSIGNED8*) hb_itemGetCPtr( pOrderInfo->atomBagName ), ahIndex, &pusArrayLen );
if( ulRetVal != AE_SUCCESS )
if( ulRetVal != AE_SUCCESS && ulRetVal != AE_INDEX_ALREADY_OPEN)
return FAILURE;
pArea->hOrdCurrent = ahIndex[0];
if(!pArea->hOrdCurrent)
pArea->hOrdCurrent = ahIndex[0];
return SUCCESS;
}
@@ -917,13 +933,13 @@ static ERRCODE adsOrderDestroy( ADSAREAP pArea, LPDBORDERINFO pOrderInfo )
static ERRCODE adsOrderInfo( ADSAREAP pArea, USHORT uiIndex, LPDBORDERINFO pOrderInfo )
{
ADSHANDLE phIndex;
UNSIGNED32 ulRetVal;
UNSIGNED32 ulRetVal = AE_SUCCESS;
UNSIGNED8 aucBuffer[MAX_STR_LEN + 1];
UNSIGNED16 pusLen = MAX_STR_LEN;
HB_TRACE(HB_TR_DEBUG, ("adsOrderInfo(%p, %hu, %p)", pArea, uiIndex, pInfo));
if( pOrderInfo->itmOrder )
if( !IS_NIL(pOrderInfo->itmOrder) )
{
if( IS_NUMERIC( pOrderInfo->itmOrder ) )
ulRetVal = AdsGetIndexHandleByOrder( pArea->hTable,
@@ -937,12 +953,28 @@ static ERRCODE adsOrderInfo( ADSAREAP pArea, USHORT uiIndex, LPDBORDERINFO pOrde
switch( uiIndex )
{
case DBOI_BAGEXT:
pOrderInfo->itmResult = hb_itemPutC( pOrderInfo->itmResult, ".cdx" );
pOrderInfo->itmResult = hb_itemPutC( pOrderInfo->itmResult,
((adsFileType==ADS_ADT) ? ".ADI" : (adsFileType==ADS_CDX)? ".CDX" : ".NTX") );
break;
case DBOI_EXPRESSION:
AdsGetIndexExpr( phIndex, aucBuffer, &pusLen);
hb_itemPutC( pOrderInfo->itmResult, aucBuffer );
break;
case DBOI_NUMBER :
{
UNSIGNED16 usOrder = 0;
if( IS_STRING( pOrderInfo->itmOrder ) )
AdsGetIndexOrderByHandle(phIndex, &usOrder);
else if( IS_STRING( pOrderInfo->itmOrder ) )
usOrder = hb_itemGetNI( pOrderInfo->itmOrder );
else
{
if(pArea->hOrdCurrent) /* Take the active index when no index specified*/
AdsGetIndexOrderByHandle(pArea->hOrdCurrent, &usOrder);
}
hb_itemPutNI(pOrderInfo->itmResult, usOrder);
break;
}
}
return SUCCESS;
}

View File

@@ -117,7 +117,7 @@ HARBOUR HB_ADSSETDEFAULT( void )
HARBOUR HB_ADSSETDELETED( void )
{
UNSIGNED16 usShowDeleted = hb_parl( 1 );
AdsShowDeleted( usShowDeleted );
AdsShowDeleted( usShowDeleted ? 0 : 1 );
}
HARBOUR HB_ADSBLOB2FILE( void )
@@ -226,4 +226,4 @@ HARBOUR HB_ADSKEYCOUNT( void )
}
else
hb_errRT_DBCMD( EG_NOTABLE, 2001, NULL, "ADSKEYCOUNT" );
}
}