static HB_ERRCODE sqlbaseRecall( SQLBASEAREAP pArea ) { if( ! pArea->fPositioned ) return HB_SUCCESS; if( ! pArea->fRecordChanged && SELF_GOHOT( ( AREAP ) pArea ) != HB_SUCCESS ) return HB_FAILURE; pArea->bRecordFlags &= ~SQLDD_FLAG_DELETED; return HB_SUCCESS; }
static HB_ERRCODE sqlbasePutValue( SQLBASEAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pItem ) { LPFIELD pField; HB_ERRCODE errCode; if( uiIndex == 0 || uiIndex > pArea->area.uiFieldCount ) return HB_FAILURE; if( ! pArea->fPositioned ) return HB_SUCCESS; if( ! pArea->fRecordChanged && SELF_GOHOT( ( AREAP ) pArea ) == HB_FAILURE ) return HB_FAILURE; errCode = HB_SUCCESS; pField = pArea->area.lpFields + ( uiIndex - 1 ); if( ( ( HB_IS_MEMO( pItem ) || HB_IS_STRING( pItem ) ) && ( pField->uiType == HB_FT_STRING || pField->uiType == HB_FT_MEMO ) ) || ( HB_IS_DATE( pItem ) && pField->uiType == HB_FT_DATE ) || ( HB_IS_TIMESTAMP( pItem ) && pField->uiType == HB_FT_TIMESTAMP ) || ( HB_IS_NUMBER( pItem ) && ( pField->uiType == HB_FT_INTEGER || pField->uiType == HB_FT_LONG || pField->uiType == HB_FT_FLOAT || pField->uiType == HB_FT_DOUBLE ) ) || ( HB_IS_LOGICAL( pItem ) && pField->uiType == HB_FT_LOGICAL ) || HB_IS_NIL( pItem ) ) { hb_arraySet( ( PHB_ITEM ) pArea->pRecord, uiIndex, pItem ); } else { PHB_ITEM pError; pError = hb_errNew(); hb_errPutGenCode( pError, EG_DATATYPE ); hb_errPutDescription( pError, hb_langDGetErrorDesc( EG_DATATYPE ) ); hb_errPutOperation( pError, hb_dynsymName( ( PHB_DYNS ) pField->sym ) ); hb_errPutSubCode( pError, errCode ); hb_errPutFlags( pError, EF_CANDEFAULT ); errCode = SELF_ERROR( ( AREAP ) pArea, pError ); hb_itemRelease( pError ); return errCode == E_DEFAULT ? HB_SUCCESS : HB_FAILURE; } return HB_SUCCESS; }
/* * Append a record to the WorkArea. */ static HB_ERRCODE hb_sdfAppend( SDFAREAP pArea, HB_BOOL fUnLockAll ) { HB_TRACE( HB_TR_DEBUG, ( "hb_sdfAppend(%p,%d)", pArea, ( int ) fUnLockAll ) ); HB_SYMBOL_UNUSED( fUnLockAll ); if( SELF_GOCOLD( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; if( SELF_GOHOT( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; pArea->ulRecNo = ++pArea->ulRecCount; pArea->area.fEof = HB_FALSE; pArea->fPositioned = HB_TRUE; hb_sdfClearRecordBuffer( pArea ); return HB_SUCCESS; }
/* * Append a record to the WorkArea. */ static HB_ERRCODE hb_delimAppend( DELIMAREAP pArea, BOOL fUnLockAll ) { HB_TRACE(HB_TR_DEBUG, ("hb_delimAppend(%p,%d)", pArea, (int) fUnLockAll)); HB_SYMBOL_UNUSED( fUnLockAll ); if( SELF_GOCOLD( ( AREAP ) pArea ) != HB_SUCCESS ) return HB_FAILURE; if( SELF_GOHOT( ( AREAP ) pArea ) != HB_SUCCESS ) return HB_FAILURE; pArea->ulRecordOffset = pArea->ulFileSize; pArea->ulRecNo = ++pArea->ulRecCount; pArea->fEof = FALSE; pArea->fPositioned = TRUE; hb_delimClearRecordBuffer( pArea ); return HB_SUCCESS; }
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 ) return HB_FAILURE; if( ! pArea->fRecordChanged && SELF_GOHOT( ( AREAP ) pArea ) == HB_FAILURE ) return HB_FAILURE; if( pArea->ulRecCount + 1 >= pArea->ulRecMax ) { pArea->pRow = ( void ** ) hb_xrealloc( pArea->pRow, ( pArea->ulRecMax + SQLDD_ROWSET_RESIZE ) * sizeof( void * ) ); pArea->pRowFlags = ( HB_BYTE * ) hb_xrealloc( pArea->pRowFlags, ( pArea->ulRecMax + SQLDD_ROWSET_RESIZE ) * sizeof( HB_BYTE ) ); pArea->ulRecMax += SQLDD_ROWSET_RESIZE; } pArea->fAppend = pArea->fPositioned = HB_TRUE; pArea->ulRecCount++; pArea->ulRecNo = pArea->ulRecCount; pArea->area.fBof = pArea->area.fEof = pArea->area.fFound = HB_FALSE; return HB_SUCCESS; }