2014-10-24 15:15 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)

* include/hbrddntx.h
  * src/rdd/workarea.c
  * src/rdd/dbf1.c
  * src/rdd/delim1.c
  * src/rdd/sdf1.c
  * src/rdd/dbfcdx/dbfcdx1.c
  * src/rdd/dbfnsx/dbfnsx1.c
  * src/rdd/dbfntx/dbfntx1.c
  * src/rdd/dbffpt/dbffpt1.c
  * contrib/rddads/ads1.c
  * contrib/rddads/adsfunc.c
  * contrib/rddads/adsx.c
  * contrib/rddsql/sqlbase.c
  * contrib/rddsql/sqlmix.c
  * contrib/sddfb/core.c
  * contrib/sddmy/core.c
  * contrib/sddoci/core.c
  * contrib/sddodbc/core.c
  * contrib/sddpg/core.c
  * contrib/sddsqlt3/core.c
    * cleaned AREAP casting
    * unified some variable names
    * cleaned some DBOI_* actions
    * allow to call ORDERINFO() method without itmResult item.
    * few other cleanups
This commit is contained in:
Przemysław Czerpak
2014-10-24 15:15:39 +02:00
parent 309dc0a307
commit ef962484be
21 changed files with 1453 additions and 1360 deletions

View File

@@ -268,7 +268,7 @@ int hb_sddRegister( PSDDNODE pSdd )
static HB_ERRCODE sqlbaseGoBottom( SQLBASEAREAP pArea )
{
if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE )
if( SELF_GOCOLD( &pArea->area ) == HB_FAILURE )
return HB_FAILURE;
@@ -278,16 +278,16 @@ static HB_ERRCODE sqlbaseGoBottom( SQLBASEAREAP pArea )
pArea->area.fTop = HB_FALSE;
pArea->area.fBottom = HB_TRUE;
if( SELF_GOTO( ( AREAP ) pArea, pArea->ulRecCount ) != HB_SUCCESS )
if( SELF_GOTO( &pArea->area, pArea->ulRecCount ) != HB_SUCCESS )
return HB_FAILURE;
return SELF_SKIPFILTER( ( AREAP ) pArea, -1 );
return SELF_SKIPFILTER( &pArea->area, -1 );
}
static HB_ERRCODE sqlbaseGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
{
if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE )
if( SELF_GOCOLD( &pArea->area ) == HB_FAILURE )
return HB_FAILURE;
if( pArea->pSDD->GoTo( pArea, ulRecNo ) == HB_FAILURE )
@@ -314,14 +314,14 @@ static HB_ERRCODE sqlbaseGoToId( SQLBASEAREAP pArea, PHB_ITEM pItem )
PHB_ITEM pError;
if( HB_IS_NUMERIC( pItem ) )
return SELF_GOTO( ( AREAP ) pArea, hb_itemGetNL( pItem ) );
return SELF_GOTO( &pArea->area, hb_itemGetNL( pItem ) );
else
{
pError = hb_errNew();
hb_errPutGenCode( pError, EG_DATATYPE );
hb_errPutDescription( pError, hb_langDGetErrorDesc( EG_DATATYPE ) );
hb_errPutSubCode( pError, EDBF_DATATYPE );
SELF_ERROR( ( AREAP ) pArea, pError );
SELF_ERROR( &pArea->area, pError );
hb_itemRelease( pError );
return HB_FAILURE;
}
@@ -333,10 +333,10 @@ static HB_ERRCODE sqlbaseGoTop( SQLBASEAREAP pArea )
pArea->area.fTop = HB_TRUE;
pArea->area.fBottom = HB_FALSE;
if( SELF_GOTO( ( AREAP ) pArea, 1 ) == HB_FAILURE )
if( SELF_GOTO( &pArea->area, 1 ) == HB_FAILURE )
return HB_FAILURE;
return SELF_SKIPFILTER( ( AREAP ) pArea, 1 );
return SELF_SKIPFILTER( &pArea->area, 1 );
}
@@ -346,7 +346,7 @@ static HB_ERRCODE sqlbaseSkip( SQLBASEAREAP pArea, HB_LONG lToSkip )
if( pArea->lpdbPendingRel )
{
if( SELF_FORCEREL( ( AREAP ) pArea ) != HB_SUCCESS )
if( SELF_FORCEREL( &pArea->area ) != HB_SUCCESS )
return HB_FAILURE;
}
@@ -354,14 +354,14 @@ static HB_ERRCODE sqlbaseSkip( SQLBASEAREAP pArea, HB_LONG lToSkip )
if( lToSkip == 0 || hb_setGetDeleted() ||
pArea->area.dbfi.itmCobExpr || pArea->area.dbfi.fFilter )
return SUPER_SKIP( ( AREAP ) pArea, lToSkip );
return SUPER_SKIP( &pArea->area, lToSkip );
errCode = SELF_SKIPRAW( ( AREAP ) pArea, lToSkip );
errCode = SELF_SKIPRAW( &pArea->area, lToSkip );
/* Move first record and set Bof flag */
if( errCode == HB_SUCCESS && pArea->area.fBof && lToSkip < 0 )
{
errCode = SELF_GOTOP( ( AREAP ) pArea );
errCode = SELF_GOTOP( &pArea->area );
pArea->area.fBof = HB_TRUE;
}
@@ -380,7 +380,7 @@ static HB_ERRCODE sqlbaseSkipRaw( SQLBASEAREAP pArea, HB_LONG lToSkip )
if( pArea->lpdbPendingRel )
{
if( SELF_FORCEREL( ( AREAP ) pArea ) != HB_SUCCESS )
if( SELF_FORCEREL( &pArea->area ) != HB_SUCCESS )
return HB_FAILURE;
}
@@ -393,7 +393,7 @@ static HB_ERRCODE sqlbaseSkipRaw( SQLBASEAREAP pArea, HB_LONG lToSkip )
bBof = pArea->area.fBof;
bEof = pArea->area.fEof;
errCode = SELF_GOTO( ( AREAP ) pArea, pArea->ulRecNo );
errCode = SELF_GOTO( &pArea->area, pArea->ulRecNo );
/* Restore flags */
pArea->area.fBof = bBof;
@@ -401,11 +401,11 @@ static HB_ERRCODE sqlbaseSkipRaw( SQLBASEAREAP pArea, HB_LONG lToSkip )
}
else if( lToSkip < 0 && ( HB_ULONG ) ( -lToSkip ) >= pArea->ulRecNo )
{
errCode = SELF_GOTO( ( AREAP ) pArea, 1 );
errCode = SELF_GOTO( &pArea->area, 1 );
pArea->area.fBof = HB_TRUE;
}
else
errCode = SELF_GOTO( ( AREAP ) pArea, pArea->ulRecNo + lToSkip );
errCode = SELF_GOTO( &pArea->area, pArea->ulRecNo + lToSkip );
return errCode;
}
@@ -416,10 +416,10 @@ static HB_ERRCODE sqlbaseAppend( SQLBASEAREAP pArea, HB_BOOL bUnLockAll )
HB_SYMBOL_UNUSED( bUnLockAll );
/* This GOTO is GOCOLD + GOEOF */
if( SELF_GOTO( ( AREAP ) pArea, 0 ) == HB_FAILURE )
if( SELF_GOTO( &pArea->area, 0 ) == HB_FAILURE )
return HB_FAILURE;
if( ! pArea->fRecordChanged && SELF_GOHOT( ( AREAP ) pArea ) == HB_FAILURE )
if( ! pArea->fRecordChanged && SELF_GOHOT( &pArea->area ) == HB_FAILURE )
return HB_FAILURE;
if( pArea->ulRecCount + 1 >= pArea->ulRecMax )
@@ -442,7 +442,7 @@ static HB_ERRCODE sqlbaseDeleteRec( SQLBASEAREAP pArea )
if( ! pArea->fPositioned )
return HB_SUCCESS;
if( ! pArea->fRecordChanged && SELF_GOHOT( ( AREAP ) pArea ) == HB_FAILURE )
if( ! pArea->fRecordChanged && SELF_GOHOT( &pArea->area ) == HB_FAILURE )
return HB_FAILURE;
pArea->bRecordFlags |= SQLDD_FLAG_DELETED;
@@ -508,7 +508,7 @@ static HB_ERRCODE sqlbaseGoHot( SQLBASEAREAP pArea )
for( us = 1; us <= pArea->area.uiFieldCount; us++ )
{
pItem = hb_itemNew( NULL );
if( SELF_GETVALUE( ( AREAP ) pArea, us, pItem ) == HB_SUCCESS )
if( SELF_GETVALUE( &pArea->area, us, pItem ) == HB_SUCCESS )
hb_arraySetForward( pArray, us, pItem );
hb_itemRelease( pItem );
}
@@ -530,7 +530,7 @@ static HB_ERRCODE sqlbasePutValue( SQLBASEAREAP pArea, HB_USHORT uiIndex, PHB_IT
if( ! pArea->fPositioned )
return HB_SUCCESS;
if( ! pArea->fRecordChanged && SELF_GOHOT( ( AREAP ) pArea ) == HB_FAILURE )
if( ! pArea->fRecordChanged && SELF_GOHOT( &pArea->area ) == HB_FAILURE )
return HB_FAILURE;
errCode = HB_SUCCESS;
@@ -556,7 +556,7 @@ static HB_ERRCODE sqlbasePutValue( SQLBASEAREAP pArea, HB_USHORT uiIndex, PHB_IT
hb_errPutOperation( pError, hb_dynsymName( ( PHB_DYNS ) pField->sym ) );
hb_errPutSubCode( pError, errCode );
hb_errPutFlags( pError, EF_CANDEFAULT );
errCode = SELF_ERROR( ( AREAP ) pArea, pError );
errCode = SELF_ERROR( &pArea->area, pError );
hb_itemRelease( pError );
return errCode == E_DEFAULT ? HB_SUCCESS : HB_FAILURE;
}
@@ -569,7 +569,7 @@ static HB_ERRCODE sqlbaseRecall( SQLBASEAREAP pArea )
if( ! pArea->fPositioned )
return HB_SUCCESS;
if( ! pArea->fRecordChanged && SELF_GOHOT( ( AREAP ) pArea ) != HB_SUCCESS )
if( ! pArea->fRecordChanged && SELF_GOHOT( &pArea->area ) != HB_SUCCESS )
return HB_FAILURE;
pArea->bRecordFlags &= ~SQLDD_FLAG_DELETED;
@@ -596,7 +596,7 @@ static HB_ERRCODE sqlbaseRecId( SQLBASEAREAP pArea, PHB_ITEM pRecNo )
HB_ERRCODE errCode;
HB_ULONG ulRecNo;
errCode = SELF_RECNO( ( AREAP ) pArea, &ulRecNo );
errCode = SELF_RECNO( &pArea->area, &ulRecNo );
hb_itemPutNInt( pRecNo, ulRecNo );
return errCode;
}
@@ -604,10 +604,10 @@ static HB_ERRCODE sqlbaseRecId( SQLBASEAREAP pArea, PHB_ITEM pRecNo )
static HB_ERRCODE sqlbaseClose( SQLBASEAREAP pArea )
{
if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE )
if( SELF_GOCOLD( &pArea->area ) == HB_FAILURE )
return HB_FAILURE;
if( SUPER_CLOSE( ( AREAP ) pArea ) == HB_FAILURE )
if( SUPER_CLOSE( &pArea->area ) == HB_FAILURE )
return HB_FAILURE;
if( pArea->pSDD )
@@ -741,7 +741,7 @@ static HB_ERRCODE sqlbaseCreate( SQLBASEAREAP pArea, LPDBOPENINFO pOpenInfo )
hb_itemClear( pItemEof );
hb_itemRelease( pItemEof );
hb_errRT_SQLBASE( EG_CORRUPTION, ESQLDD_INVALIDFIELD, "Invalid field type", NULL );
SELF_CLOSE( ( AREAP ) pArea );
SELF_CLOSE( &pArea->area );
return HB_FAILURE;
}
@@ -755,13 +755,13 @@ static HB_ERRCODE sqlbaseCreate( SQLBASEAREAP pArea, LPDBOPENINFO pOpenInfo )
pArea->pRowFlags[ 0 ] = SQLDD_FLAG_CACHED;
pArea->fFetched = HB_TRUE;
if( SUPER_CREATE( ( AREAP ) pArea, pOpenInfo ) != HB_SUCCESS )
if( SUPER_CREATE( &pArea->area, pOpenInfo ) != HB_SUCCESS )
{
SELF_CLOSE( ( AREAP ) pArea );
SELF_CLOSE( &pArea->area );
return HB_FAILURE;
}
return SELF_GOTOP( ( AREAP ) pArea );
return SELF_GOTOP( &pArea->area );
}
@@ -774,7 +774,7 @@ static HB_ERRCODE sqlbaseInfo( SQLBASEAREAP pArea, HB_USHORT uiIndex, PHB_ITEM p
break;
default:
return SUPER_INFO( ( AREAP ) pArea, uiIndex, pItem );
return SUPER_INFO( &pArea->area, uiIndex, pItem );
}
return HB_SUCCESS;
@@ -808,14 +808,14 @@ static HB_ERRCODE sqlbaseOpen( SQLBASEAREAP pArea, LPDBOPENINFO pOpenInfo )
errCode = pArea->pSDD->Open( pArea );
if( errCode == HB_SUCCESS )
errCode = SUPER_OPEN( ( AREAP ) pArea, pOpenInfo );
errCode = SUPER_OPEN( &pArea->area, pOpenInfo );
if( errCode != HB_SUCCESS )
{
SELF_CLOSE( ( AREAP ) pArea );
SELF_CLOSE( &pArea->area );
return HB_FAILURE;
}
return SELF_GOTOP( ( AREAP ) pArea );
return SELF_GOTOP( &pArea->area );
}
@@ -834,31 +834,31 @@ static HB_ERRCODE sqlbaseChildEnd( SQLBASEAREAP pArea, LPDBRELINFO pRelInfo )
HB_ERRCODE errCode;
if( pArea->lpdbPendingRel == pRelInfo )
errCode = SELF_FORCEREL( ( AREAP ) pArea );
errCode = SELF_FORCEREL( &pArea->area );
else
errCode = HB_SUCCESS;
SUPER_CHILDEND( ( AREAP ) pArea, pRelInfo );
SUPER_CHILDEND( &pArea->area, pRelInfo );
return errCode;
}
static HB_ERRCODE sqlbaseChildStart( SQLBASEAREAP pArea, LPDBRELINFO pRelInfo )
{
if( SELF_CHILDSYNC( ( AREAP ) pArea, pRelInfo ) != HB_SUCCESS )
if( SELF_CHILDSYNC( &pArea->area, pRelInfo ) != HB_SUCCESS )
return HB_FAILURE;
return SUPER_CHILDSTART( ( AREAP ) pArea, pRelInfo );
return SUPER_CHILDSTART( &pArea->area, pRelInfo );
}
static HB_ERRCODE sqlbaseChildSync( SQLBASEAREAP pArea, LPDBRELINFO pRelInfo )
{
if( SELF_GOCOLD( ( AREAP ) pArea ) != HB_SUCCESS )
if( SELF_GOCOLD( &pArea->area ) != HB_SUCCESS )
return HB_FAILURE;
pArea->lpdbPendingRel = pRelInfo;
if( pArea->lpdbRelations )
return SELF_SYNCCHILDREN( ( AREAP ) pArea );
return SELF_SYNCCHILDREN( &pArea->area );
return HB_SUCCESS;
}
@@ -872,7 +872,7 @@ static HB_ERRCODE sqlbaseForceRel( SQLBASEAREAP pArea )
lpdbPendingRel = pArea->lpdbPendingRel;
pArea->lpdbPendingRel = NULL;
return SELF_RELEVAL( ( AREAP ) pArea, lpdbPendingRel );
return SELF_RELEVAL( &pArea->area, lpdbPendingRel );
}
return HB_SUCCESS;
}
@@ -882,10 +882,10 @@ static HB_ERRCODE sqlbaseSetFilter( SQLBASEAREAP pArea, LPDBFILTERINFO pFilterIn
{
if( pArea->lpdbPendingRel )
{
if( SELF_FORCEREL( ( AREAP ) pArea ) != HB_SUCCESS )
if( SELF_FORCEREL( &pArea->area ) != HB_SUCCESS )
return HB_FAILURE;
}
return SUPER_SETFILTER( ( AREAP ) pArea, pFilterInfo );
return SUPER_SETFILTER( &pArea->area, pFilterInfo );
}
#endif

View File

@@ -114,7 +114,7 @@ static HB_ERRCODE sqlmixErrorRT( SQLMIXAREAP pArea, HB_ERRCODE errGenCode, HB_ER
hb_errPutFileName( pError, filename );
if( uiFlags )
hb_errPutFlags( pError, uiFlags );
iRet = SELF_ERROR( ( AREAP ) pArea, pError );
iRet = SELF_ERROR( &pArea->sqlarea.area, pError );
hb_errRelease( pError );
}
return iRet;
@@ -440,7 +440,7 @@ static HB_BOOL hb_mixTagRefreshKey( PMIXTAG pTag )
pArea = pTag->pArea;
if( pArea->sqlarea.lpdbPendingRel )
SELF_FORCEREL( ( AREAP ) pArea );
SELF_FORCEREL( &pArea->sqlarea.area );
if( ! pArea->sqlarea.fPositioned )
{
@@ -832,9 +832,9 @@ static PMIXTAG hb_mixTagCreate( const char * szTagName, PHB_ITEM pKeyExpr, PHB_I
ulStartRec = 1;
if( ulStartRec )
SELF_GOTO( ( AREAP ) pArea, ulStartRec );
SELF_GOTO( &pArea->sqlarea.area, ulStartRec );
else
SELF_GOTOP( ( AREAP ) pArea );
SELF_GOTOP( &pArea->sqlarea.area );
while( ! pArea->sqlarea.area.fEof )
{
@@ -866,7 +866,7 @@ static PMIXTAG hb_mixTagCreate( const char * szTagName, PHB_ITEM pKeyExpr, PHB_I
if( ! ulNextCount )
break;
}
if( SELF_SKIPRAW( ( AREAP ) pArea, 1 ) == HB_FAILURE )
if( SELF_SKIPRAW( &pArea->sqlarea.area, 1 ) == HB_FAILURE )
break;
}
if( pKey )
@@ -1140,10 +1140,10 @@ static HB_BOOL hb_mixCheckRecordFilter( SQLMIXAREAP pArea, HB_ULONG ulRecNo )
if( pArea->sqlarea.area.dbfi.itmCobExpr || hb_setGetDeleted() )
{
if( pArea->sqlarea.ulRecNo != ulRecNo || pArea->sqlarea.lpdbPendingRel )
SELF_GOTO( ( AREAP ) pArea, ulRecNo );
SELF_GOTO( &pArea->sqlarea.area, ulRecNo );
if( hb_setGetDeleted() )
SUPER_DELETED( ( AREAP ) pArea, &lResult );
SUPER_DELETED( &pArea->sqlarea.area, &lResult );
if( ! lResult && pArea->sqlarea.area.dbfi.itmCobExpr )
{
@@ -1178,7 +1178,7 @@ static HB_ULONG hb_mixDBOIKeyCount( PMIXTAG pTag, HB_BOOL fFilter )
hb_mixTagSkip( pTag, 1 );
}
hb_mixTagSetCurrent( pTag, pNode, uiPos );
SELF_GOTO( ( AREAP ) pTag->pArea, ulRecNo );
SELF_GOTO( &pTag->pArea->sqlarea.area, ulRecNo );
}
else
@@ -1231,23 +1231,23 @@ static HB_ERRCODE sqlmixGoBottom( SQLMIXAREAP pArea )
{
HB_ERRCODE retval;
if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE )
if( SELF_GOCOLD( &pArea->sqlarea.area ) == HB_FAILURE )
return HB_FAILURE;
if( ! pArea->pTag )
return SUPER_GOBOTTOM( ( AREAP ) pArea );
return SUPER_GOBOTTOM( &pArea->sqlarea.area );
if( pArea->sqlarea.lpdbPendingRel && pArea->sqlarea.lpdbPendingRel->isScoped )
SELF_FORCEREL( ( AREAP ) pArea );
SELF_FORCEREL( &pArea->sqlarea.area );
hb_mixTagGoBottom( pArea->pTag );
pArea->sqlarea.area.fTop = HB_FALSE;
pArea->sqlarea.area.fBottom = HB_TRUE;
retval = SELF_GOTO( ( AREAP ) pArea, pArea->pTag->CurKey ? pArea->pTag->CurKey->rec : 0 );
retval = SELF_GOTO( &pArea->sqlarea.area, pArea->pTag->CurKey ? pArea->pTag->CurKey->rec : 0 );
if( retval != HB_FAILURE && pArea->sqlarea.fPositioned )
retval = SELF_SKIPFILTER( ( AREAP ) pArea, -1 );
retval = SELF_SKIPFILTER( &pArea->sqlarea.area, -1 );
return retval;
}
@@ -1257,23 +1257,23 @@ static HB_ERRCODE sqlmixGoTop( SQLMIXAREAP pArea )
{
HB_ERRCODE retval;
if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE )
if( SELF_GOCOLD( &pArea->sqlarea.area ) == HB_FAILURE )
return HB_FAILURE;
if( ! pArea->pTag )
return SUPER_GOTOP( ( AREAP ) pArea );
return SUPER_GOTOP( &pArea->sqlarea.area );
if( pArea->sqlarea.lpdbPendingRel && pArea->sqlarea.lpdbPendingRel->isScoped )
SELF_FORCEREL( ( AREAP ) pArea );
SELF_FORCEREL( &pArea->sqlarea.area );
hb_mixTagGoTop( pArea->pTag );
pArea->sqlarea.area.fTop = HB_TRUE;
pArea->sqlarea.area.fBottom = HB_FALSE;
retval = SELF_GOTO( ( AREAP ) pArea, pArea->pTag->CurKey ? pArea->pTag->CurKey->rec : 0 );
retval = SELF_GOTO( &pArea->sqlarea.area, pArea->pTag->CurKey ? pArea->pTag->CurKey->rec : 0 );
if( retval != HB_FAILURE && pArea->sqlarea.fPositioned )
retval = SELF_SKIPFILTER( ( AREAP ) pArea, 1 );
retval = SELF_SKIPFILTER( &pArea->sqlarea.area, 1 );
return retval;
}
@@ -1281,7 +1281,7 @@ static HB_ERRCODE sqlmixGoTop( SQLMIXAREAP pArea )
static HB_ERRCODE sqlmixSeek( SQLMIXAREAP pArea, HB_BOOL fSoftSeek, PHB_ITEM pItem, HB_BOOL fFindLast )
{
if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE )
if( SELF_GOCOLD( &pArea->sqlarea.area ) == HB_FAILURE )
return HB_FAILURE;
if( ! pArea->pTag )
@@ -1299,7 +1299,7 @@ static HB_ERRCODE sqlmixSeek( SQLMIXAREAP pArea, HB_BOOL fSoftSeek, PHB_ITEM pIt
unsigned int uiKeyLen, ui;
if( pArea->sqlarea.lpdbPendingRel && pArea->sqlarea.lpdbPendingRel->isScoped )
SELF_FORCEREL( ( AREAP ) pArea );
SELF_FORCEREL( &pArea->sqlarea.area );
pArea->sqlarea.area.fTop = pArea->sqlarea.area.fBottom = HB_FALSE;
pArea->sqlarea.area.fEof = HB_FALSE;
@@ -1336,10 +1336,10 @@ static HB_ERRCODE sqlmixSeek( SQLMIXAREAP pArea, HB_BOOL fSoftSeek, PHB_ITEM pIt
if( ! fEOF )
{
errCode = SELF_GOTO( ( AREAP ) pArea, pTag->CurKey->rec );
errCode = SELF_GOTO( &pArea->sqlarea.area, pTag->CurKey->rec );
if( errCode != HB_FAILURE && pArea->sqlarea.fPositioned )
{
errCode = SELF_SKIPFILTER( ( AREAP ) pArea, fFindLast ? -1 : 1 );
errCode = SELF_SKIPFILTER( &pArea->sqlarea.area, fFindLast ? -1 : 1 );
if( errCode != HB_FAILURE && pArea->sqlarea.fPositioned )
{
pArea->sqlarea.area.fFound = ( uiKeyLen == 0 || memcmp( pTag->CurKey->val, pKey->val, ( HB_ULONG ) uiKeyLen ) == 0 );
@@ -1350,7 +1350,7 @@ static HB_ERRCODE sqlmixSeek( SQLMIXAREAP pArea, HB_BOOL fSoftSeek, PHB_ITEM pIt
}
if( errCode != HB_FAILURE && fEOF )
errCode = SELF_GOTO( ( AREAP ) pArea, 0 );
errCode = SELF_GOTO( &pArea->sqlarea.area, 0 );
pArea->sqlarea.area.fBof = HB_FALSE;
@@ -1365,14 +1365,14 @@ static HB_ERRCODE sqlmixSkipRaw( SQLMIXAREAP pArea, HB_LONG lToSkip )
PMIXTAG pTag = pArea->pTag;
HB_BOOL fOut = HB_FALSE;
if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE )
if( SELF_GOCOLD( &pArea->sqlarea.area ) == HB_FAILURE )
return HB_FAILURE;
if( ! pTag || lToSkip == 0 )
return SUPER_SKIPRAW( ( AREAP ) pArea, lToSkip );
return SUPER_SKIPRAW( &pArea->sqlarea.area, lToSkip );
if( pArea->sqlarea.lpdbPendingRel )
SELF_FORCEREL( ( AREAP ) pArea );
SELF_FORCEREL( &pArea->sqlarea.area );
if( ! hb_mixTagRefreshKey( pTag ) )
{
@@ -1389,7 +1389,7 @@ static HB_ERRCODE sqlmixSkipRaw( SQLMIXAREAP pArea, HB_LONG lToSkip )
if( ! fOut )
hb_mixTagSkip( pTag, lToSkip );
if( SELF_GOTO( ( AREAP ) pArea, ( pTag->fEof || fOut ) ? 0 : pTag->CurKey->rec ) != HB_SUCCESS )
if( SELF_GOTO( &pArea->sqlarea.area, ( pTag->fEof || fOut ) ? 0 : pTag->CurKey->rec ) != HB_SUCCESS )
return HB_FAILURE;
pArea->sqlarea.area.fEof = pTag->fEof;
pArea->sqlarea.area.fBof = pTag->fBof;
@@ -1402,7 +1402,7 @@ static HB_ERRCODE sqlmixGoCold( SQLMIXAREAP pArea )
HB_BOOL fRecordChanged = pArea->sqlarea.fRecordChanged;
HB_BOOL fAppend = pArea->sqlarea.fAppend;
if( SUPER_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE )
if( SUPER_GOCOLD( &pArea->sqlarea.area ) == HB_FAILURE )
return HB_FAILURE;
if( fRecordChanged && pArea->pTagList )
@@ -1465,7 +1465,7 @@ static HB_ERRCODE sqlmixGoHot( SQLMIXAREAP pArea )
printf( "sqlmixGoHot: multiple marking buffer as hot." );
#endif
if( SUPER_GOHOT( ( AREAP ) pArea ) == HB_FAILURE )
if( SUPER_GOHOT( &pArea->sqlarea.area ) == HB_FAILURE )
return HB_FAILURE;
pTag = pArea->pTagList;
@@ -1484,13 +1484,13 @@ static HB_ERRCODE sqlmixGoHot( SQLMIXAREAP pArea )
static HB_ERRCODE sqlmixClose( SQLMIXAREAP pArea )
{
if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE )
if( SELF_GOCOLD( &pArea->sqlarea.area ) == HB_FAILURE )
return HB_FAILURE;
if( SUPER_CLOSE( ( AREAP ) pArea ) == HB_FAILURE )
if( SUPER_CLOSE( &pArea->sqlarea.area ) == HB_FAILURE )
return HB_FAILURE;
if( SELF_ORDLSTCLEAR( ( AREAP ) pArea ) == HB_FAILURE )
if( SELF_ORDLSTCLEAR( &pArea->sqlarea.area ) == HB_FAILURE )
return HB_FAILURE;
return HB_SUCCESS;
@@ -1546,7 +1546,7 @@ static HB_ERRCODE sqlmixOrderCreate( SQLMIXAREAP pArea, LPDBORDERCREATEINFO pOrd
pKeyItem = hb_itemNew( pOrderInfo->itmCobExpr );
else
{
if( SELF_COMPILE( ( AREAP ) pArea, hb_itemGetCPtr( pOrderInfo->abExpr ) ) == HB_FAILURE )
if( SELF_COMPILE( &pArea->sqlarea.area, hb_itemGetCPtr( pOrderInfo->abExpr ) ) == HB_FAILURE )
return HB_FAILURE;
pKeyItem = pArea->sqlarea.area.valResult;
pArea->sqlarea.area.valResult = NULL;
@@ -1554,11 +1554,11 @@ static HB_ERRCODE sqlmixOrderCreate( SQLMIXAREAP pArea, LPDBORDERCREATEINFO pOrd
/* Test key codeblock on EOF */
ulRecNo = pArea->sqlarea.ulRecNo;
SELF_GOTO( ( AREAP ) pArea, 0 );
if( SELF_EVALBLOCK( ( AREAP ) pArea, pKeyItem ) == HB_FAILURE )
SELF_GOTO( &pArea->sqlarea.area, 0 );
if( SELF_EVALBLOCK( &pArea->sqlarea.area, pKeyItem ) == HB_FAILURE )
{
hb_vmDestroyBlockOrMacro( pKeyItem );
SELF_GOTO( ( AREAP ) pArea, ulRecNo );
SELF_GOTO( &pArea->sqlarea.area, ulRecNo );
return HB_FAILURE;
}
@@ -1601,7 +1601,7 @@ static HB_ERRCODE sqlmixOrderCreate( SQLMIXAREAP pArea, LPDBORDERCREATEINFO pOrd
if( bType == 'U' || uiLen == 0 )
{
hb_vmDestroyBlockOrMacro( pKeyItem );
SELF_GOTO( ( AREAP ) pArea, ulRecNo );
SELF_GOTO( &pArea->sqlarea.area, ulRecNo );
sqlmixErrorRT( pArea, bType == 'U' ? EG_DATATYPE : EG_DATAWIDTH, 1026, NULL, 0, 0 );
return HB_FAILURE;
}
@@ -1613,10 +1613,10 @@ static HB_ERRCODE sqlmixOrderCreate( SQLMIXAREAP pArea, LPDBORDERCREATEINFO pOrd
pForItem = hb_itemNew( pArea->sqlarea.area.lpdbOrdCondInfo->itmCobFor );
else if( pArea->sqlarea.area.lpdbOrdCondInfo->abFor )
{
if( SELF_COMPILE( ( AREAP ) pArea, pArea->sqlarea.area.lpdbOrdCondInfo->abFor ) == HB_FAILURE )
if( SELF_COMPILE( &pArea->sqlarea.area, pArea->sqlarea.area.lpdbOrdCondInfo->abFor ) == HB_FAILURE )
{
hb_vmDestroyBlockOrMacro( pKeyItem );
SELF_GOTO( ( AREAP ) pArea, ulRecNo );
SELF_GOTO( &pArea->sqlarea.area, ulRecNo );
return HB_FAILURE;
}
pForItem = pArea->sqlarea.area.valResult;
@@ -1628,12 +1628,12 @@ static HB_ERRCODE sqlmixOrderCreate( SQLMIXAREAP pArea, LPDBORDERCREATEINFO pOrd
pWhileItem = hb_itemNew( pArea->sqlarea.area.lpdbOrdCondInfo->itmCobWhile );
else if( pArea->sqlarea.area.lpdbOrdCondInfo->abWhile )
{
if( SELF_COMPILE( ( AREAP ) pArea, pArea->sqlarea.area.lpdbOrdCondInfo->abWhile ) == HB_FAILURE )
if( SELF_COMPILE( &pArea->sqlarea.area, pArea->sqlarea.area.lpdbOrdCondInfo->abWhile ) == HB_FAILURE )
{
hb_vmDestroyBlockOrMacro( pKeyItem );
if( pForItem )
hb_vmDestroyBlockOrMacro( pForItem );
SELF_GOTO( ( AREAP ) pArea, ulRecNo );
SELF_GOTO( &pArea->sqlarea.area, ulRecNo );
return HB_FAILURE;
}
pWhileItem = pArea->sqlarea.area.valResult;
@@ -1644,13 +1644,13 @@ static HB_ERRCODE sqlmixOrderCreate( SQLMIXAREAP pArea, LPDBORDERCREATEINFO pOrd
/* Test FOR codeblock on EOF */
if( pForItem )
{
if( SELF_EVALBLOCK( ( AREAP ) pArea, pForItem ) == HB_FAILURE )
if( SELF_EVALBLOCK( &pArea->sqlarea.area, pForItem ) == HB_FAILURE )
{
hb_vmDestroyBlockOrMacro( pKeyItem );
hb_vmDestroyBlockOrMacro( pForItem );
if( pWhileItem )
hb_vmDestroyBlockOrMacro( pWhileItem );
SELF_GOTO( ( AREAP ) pArea, ulRecNo );
SELF_GOTO( &pArea->sqlarea.area, ulRecNo );
return HB_FAILURE;
}
if( hb_itemType( pArea->sqlarea.area.valResult ) != HB_IT_LOGICAL )
@@ -1661,7 +1661,7 @@ static HB_ERRCODE sqlmixOrderCreate( SQLMIXAREAP pArea, LPDBORDERCREATEINFO pOrd
hb_vmDestroyBlockOrMacro( pForItem );
if( pWhileItem )
hb_vmDestroyBlockOrMacro( pWhileItem );
SELF_GOTO( ( AREAP ) pArea, ulRecNo );
SELF_GOTO( &pArea->sqlarea.area, ulRecNo );
sqlmixErrorRT( pArea, EG_DATATYPE, EDBF_INVALIDFOR, NULL, 0, 0 );
return HB_FAILURE;
}
@@ -1671,7 +1671,7 @@ static HB_ERRCODE sqlmixOrderCreate( SQLMIXAREAP pArea, LPDBORDERCREATEINFO pOrd
/* TODO: WHILE condition is not tested, like in DBFCDX. Why? Compatibility with Clipper? */
SELF_GOTO( ( AREAP ) pArea, ulRecNo );
SELF_GOTO( &pArea->sqlarea.area, ulRecNo );
pTagNew = hb_mixTagCreate( pOrderInfo->atomBagName, pOrderInfo->abExpr, pKeyItem, pForItem, pWhileItem, bType, uiLen, pArea );
@@ -1718,7 +1718,7 @@ static HB_ERRCODE sqlmixOrderInfo( SQLMIXAREAP pArea, HB_USHORT uiIndex, LPDBORD
return HB_SUCCESS;
}
if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE )
if( SELF_GOCOLD( &pArea->sqlarea.area ) == HB_FAILURE )
return HB_FAILURE;
if( pOrderInfo->itmOrder )
@@ -1746,12 +1746,12 @@ static HB_ERRCODE sqlmixOrderInfo( SQLMIXAREAP pArea, HB_USHORT uiIndex, LPDBORD
{
const char * pForExpr = hb_itemGetCPtr( pOrderInfo->itmNewVal );
if( SELF_COMPILE( ( AREAP ) pArea, pForExpr ) == HB_SUCCESS )
if( SELF_COMPILE( &pArea->sqlarea.area, pForExpr ) == HB_SUCCESS )
{
PHB_ITEM pForItem = pArea->sqlarea.area.valResult;
pArea->sqlarea.area.valResult = NULL;
if( SELF_EVALBLOCK( ( AREAP ) pArea, pForItem ) == HB_SUCCESS )
if( SELF_EVALBLOCK( &pArea->sqlarea.area, pForItem ) == HB_SUCCESS )
{
if( hb_itemType( pArea->sqlarea.area.valResult ) == HB_IT_LOGICAL )
{
@@ -1858,7 +1858,7 @@ static HB_ERRCODE sqlmixOrderInfo( SQLMIXAREAP pArea, HB_USHORT uiIndex, LPDBORD
case DBOI_KEYVAL:
hb_itemClear( pOrderInfo->itmResult );
if( pArea->sqlarea.lpdbPendingRel )
SELF_FORCEREL( ( AREAP ) pArea );
SELF_FORCEREL( &pArea->sqlarea.area );
if( pTag && pArea->sqlarea.fPositioned )
{
if( pTag->CurKey->rec != pArea->sqlarea.ulRecNo )
@@ -1888,7 +1888,7 @@ static HB_ERRCODE sqlmixOrderInfo( SQLMIXAREAP pArea, HB_USHORT uiIndex, LPDBORD
if( pTag->fCustom )
{
if( pArea->sqlarea.lpdbPendingRel )
SELF_FORCEREL( ( AREAP ) pArea );
SELF_FORCEREL( &pArea->sqlarea.area );
if( ! pArea->sqlarea.fPositioned ||
( pTag->pForItem &&
@@ -1921,7 +1921,7 @@ static HB_ERRCODE sqlmixOrderInfo( SQLMIXAREAP pArea, HB_USHORT uiIndex, LPDBORD
if( pTag->Custom )
{
if( pArea->sqlarea.lpdbPendingRel )
SELF_FORCEREL( ( AREAP ) pArea );
SELF_FORCEREL( &pArea->sqlarea.area );
if( ! pArea->sqlarea.fPositioned ||
( pTag->pForItem &&
@@ -1953,7 +1953,7 @@ static HB_ERRCODE sqlmixOrderInfo( SQLMIXAREAP pArea, HB_USHORT uiIndex, LPDBORD
break;
default:
return SUPER_ORDINFO( ( AREAP ) pArea, uiIndex, pOrderInfo );
return SUPER_ORDINFO( &pArea->sqlarea.area, uiIndex, pOrderInfo );
}
return HB_SUCCESS;