ChangeLogTag:19991010-23:30 GMT+1 Bruno Cantero <bruno@issnet.net>
This commit is contained in:
@@ -1,3 +1,19 @@
|
||||
19991010-23:30 GMT+1 Bruno Cantero <bruno@issnet.net>
|
||||
|
||||
+ source/rdd/dbcmd.c
|
||||
+ source/rdd/dbf1.c
|
||||
+ Added support for SET DELETED.
|
||||
* Changed default extension from .DBF and .DBT to .dbf and .dbt
|
||||
|
||||
* source/rdd/dbfcdx/dbfcdx1.c
|
||||
* Changed default extension from .FPT to .fpt
|
||||
|
||||
* tests/testdbf.prg
|
||||
* Now test SET DELETED command too.
|
||||
|
||||
+ source/rdd/dbfcdx/Makefile
|
||||
+ Added missing file.
|
||||
|
||||
19991010-15:05 GMT+1 Victor Szel <info@szelvesz.hu>
|
||||
* source/rtl/filesys.c
|
||||
+ ISDISK() undocumented Clipper 5.3 function added.
|
||||
|
||||
@@ -138,7 +138,7 @@ static LPAREANODE pCurrArea = NULL; /* Pointer to a selectd and valid area */
|
||||
* -- BASIC RDD METHODS --
|
||||
*/
|
||||
|
||||
static ERRCODE AddField( AREAP pArea, LPDBFIELDINFO pFieldInfo )
|
||||
static ERRCODE defAddField( AREAP pArea, LPDBFIELDINFO pFieldInfo )
|
||||
{
|
||||
LPFIELD pField;
|
||||
|
||||
@@ -166,7 +166,7 @@ static ERRCODE AddField( AREAP pArea, LPDBFIELDINFO pFieldInfo )
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static ERRCODE Alias( AREAP pArea, BYTE * szAlias )
|
||||
static ERRCODE defAlias( AREAP pArea, BYTE * szAlias )
|
||||
{
|
||||
strncpy( ( char * ) szAlias,
|
||||
( ( PHB_DYNS ) pArea->atomAlias )->pSymbol->szName,
|
||||
@@ -174,20 +174,20 @@ static ERRCODE Alias( AREAP pArea, BYTE * szAlias )
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static ERRCODE Bof( AREAP pArea, BOOL * pBof )
|
||||
static ERRCODE defBof( AREAP pArea, BOOL * pBof )
|
||||
{
|
||||
* pBof = pArea->fBof;
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static ERRCODE Close( AREAP pArea )
|
||||
static ERRCODE defClose( AREAP pArea )
|
||||
{
|
||||
( ( PHB_DYNS ) pArea->atomAlias )->hArea = 0;
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static ERRCODE CreateFields( AREAP pArea, PHB_ITEM pStruct )
|
||||
static ERRCODE defCreateFields( AREAP pArea, PHB_ITEM pStruct )
|
||||
{
|
||||
USHORT uiCount;
|
||||
PHB_ITEM pFieldDesc;
|
||||
@@ -208,13 +208,13 @@ static ERRCODE CreateFields( AREAP pArea, PHB_ITEM pStruct )
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static ERRCODE Eof( AREAP pArea, BOOL * pEof )
|
||||
static ERRCODE defEof( AREAP pArea, BOOL * pEof )
|
||||
{
|
||||
* pEof = pArea->fEof;
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static ERRCODE Error( AREAP pArea, PHB_ITEM pError )
|
||||
static ERRCODE defError( AREAP pArea, PHB_ITEM pError )
|
||||
{
|
||||
char * szRddName;
|
||||
|
||||
@@ -226,13 +226,13 @@ static ERRCODE Error( AREAP pArea, PHB_ITEM pError )
|
||||
return hb_errLaunch( pError );
|
||||
}
|
||||
|
||||
static ERRCODE FieldCount( AREAP pArea, USHORT * uiFields )
|
||||
static ERRCODE defFieldCount( AREAP pArea, USHORT * uiFields )
|
||||
{
|
||||
* uiFields = pArea->uiFieldCount;
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static ERRCODE FieldInfo( AREAP pArea, USHORT uiIndex, USHORT uiType, PHB_ITEM pItem )
|
||||
static ERRCODE defFieldInfo( AREAP pArea, USHORT uiIndex, USHORT uiType, PHB_ITEM pItem )
|
||||
{
|
||||
LPFIELD pField;
|
||||
char szType[ 2 ];
|
||||
@@ -269,7 +269,7 @@ static ERRCODE FieldInfo( AREAP pArea, USHORT uiIndex, USHORT uiType, PHB_ITEM p
|
||||
}
|
||||
|
||||
|
||||
static ERRCODE FieldName( AREAP pArea, USHORT uiIndex, void * szName )
|
||||
static ERRCODE defFieldName( AREAP pArea, USHORT uiIndex, void * szName )
|
||||
{
|
||||
LPFIELD pField;
|
||||
|
||||
@@ -282,29 +282,30 @@ static ERRCODE FieldName( AREAP pArea, USHORT uiIndex, void * szName )
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static ERRCODE Found( AREAP pArea, BOOL * pFound )
|
||||
static ERRCODE defFound( AREAP pArea, BOOL * pFound )
|
||||
{
|
||||
* pFound = pArea->fFound;
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static ERRCODE GetRec( AREAP pArea, BYTE ** pBuffer )
|
||||
static ERRCODE defGetRec( AREAP pArea, BYTE ** pBuffer )
|
||||
{
|
||||
* pBuffer = pArea->lpExtendInfo->bRecord;
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static ERRCODE NewArea( AREAP pArea )
|
||||
static ERRCODE defNewArea( AREAP pArea )
|
||||
{
|
||||
pArea->lpFileInfo = ( LPFILEINFO ) hb_xgrab( sizeof( FILEINFO ) );
|
||||
memset( pArea->lpFileInfo, 0, sizeof( FILEINFO ) );
|
||||
pArea->lpFileInfo->hFile = FS_ERROR;
|
||||
pArea->lpExtendInfo = ( LPDBEXTENDINFO ) hb_xgrab( sizeof( DBEXTENDINFO ) );
|
||||
memset( pArea->lpExtendInfo, 0, sizeof( DBEXTENDINFO ) );
|
||||
pArea->dbsi.fIgnoreFilter = TRUE;
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static ERRCODE Open( AREAP pArea, LPDBOPENINFO pOpenInfo )
|
||||
static ERRCODE defOpen( AREAP pArea, LPDBOPENINFO pOpenInfo )
|
||||
{
|
||||
pArea->atomAlias = hb_dynsymGet( ( char * ) pOpenInfo->atomAlias );
|
||||
if( ( ( PHB_DYNS ) pArea->atomAlias )->hArea )
|
||||
@@ -320,7 +321,7 @@ static ERRCODE Open( AREAP pArea, LPDBOPENINFO pOpenInfo )
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static ERRCODE Release( AREAP pArea )
|
||||
static ERRCODE defRelease( AREAP pArea )
|
||||
{
|
||||
LPFILEINFO pFileInfo;
|
||||
|
||||
@@ -344,7 +345,7 @@ static ERRCODE Release( AREAP pArea )
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static ERRCODE SetFieldExtent( AREAP pArea, USHORT uiFieldExtent )
|
||||
static ERRCODE defSetFieldExtent( AREAP pArea, USHORT uiFieldExtent )
|
||||
{
|
||||
pArea->uiFieldExtent = uiFieldExtent;
|
||||
pArea->lpFields = ( LPFIELD ) hb_xgrab( uiFieldExtent * sizeof( FIELD ) );
|
||||
@@ -352,15 +353,106 @@ static ERRCODE SetFieldExtent( AREAP pArea, USHORT uiFieldExtent )
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static ERRCODE Skip( AREAP pArea, LONG lToSkip )
|
||||
static ERRCODE defSkip( AREAP pArea, LONG lToSkip )
|
||||
{
|
||||
if( pArea->dbfi.fFilter )
|
||||
return SELF_SKIPFILTER( pArea, lToSkip );
|
||||
else
|
||||
return SELF_SKIPRAW( pArea, lToSkip );
|
||||
BOOL bExit;
|
||||
|
||||
if( pArea->dbfi.fFilter || !pArea->dbsi.fIgnoreFilter || !hb_set.HB_SET_DELETED )
|
||||
{
|
||||
if( lToSkip > 0 )
|
||||
{
|
||||
while( lToSkip > 0 )
|
||||
{
|
||||
SELF_SKIPRAW( pArea, 1 );
|
||||
SELF_SKIPFILTER( pArea, 1 );
|
||||
|
||||
SELF_EOF( pArea, &bExit );
|
||||
if( bExit )
|
||||
return SUCCESS;
|
||||
|
||||
lToSkip--;
|
||||
}
|
||||
}
|
||||
else if( lToSkip < 0 )
|
||||
{
|
||||
while( lToSkip < 0 )
|
||||
{
|
||||
SELF_SKIPRAW( pArea, -1 );
|
||||
SELF_SKIPFILTER( pArea, -1 );
|
||||
|
||||
SELF_BOF( pArea, &bExit );
|
||||
if( bExit )
|
||||
return SELF_SKIPFILTER( pArea, 1 );
|
||||
|
||||
lToSkip++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
SELF_SKIPRAW( pArea, 0 );
|
||||
SELF_SKIPFILTER( pArea, 1 );
|
||||
|
||||
SELF_EOF( pArea, &bExit );
|
||||
if( bExit )
|
||||
return SUCCESS;
|
||||
}
|
||||
}
|
||||
return SELF_SKIPRAW( pArea, lToSkip );
|
||||
}
|
||||
|
||||
static ERRCODE StructSize( AREAP pArea, USHORT * uiSize )
|
||||
static ERRCODE defSkipFilter( AREAP pArea, LONG lUpDown )
|
||||
{
|
||||
BOOL bExit, bDeleted;
|
||||
|
||||
if( lUpDown > 0 )
|
||||
{
|
||||
do
|
||||
{
|
||||
SELF_EOF( pArea, &bExit );
|
||||
if( bExit )
|
||||
return SUCCESS;
|
||||
|
||||
if( !hb_set.HB_SET_DELETED ) /* Skip if deleted */
|
||||
{
|
||||
SELF_DELETED( pArea, &bDeleted );
|
||||
if( !bDeleted )
|
||||
return SUCCESS;
|
||||
|
||||
SELF_SKIPRAW( pArea, 1 );
|
||||
}
|
||||
else
|
||||
return SUCCESS;
|
||||
} while( 1 );
|
||||
}
|
||||
else if( lUpDown < 0 )
|
||||
{
|
||||
do
|
||||
{
|
||||
SELF_BOF( pArea, &bExit );
|
||||
if( bExit )
|
||||
return SELF_SKIPFILTER( pArea, 1 );
|
||||
|
||||
if( !hb_set.HB_SET_DELETED ) /* Skip if deleted */
|
||||
{
|
||||
SELF_DELETED( pArea, &bDeleted );
|
||||
if( !bDeleted )
|
||||
return SUCCESS;
|
||||
|
||||
SELF_SKIPRAW( pArea, -1 );
|
||||
}
|
||||
else
|
||||
return SUCCESS;
|
||||
} while( 1 );
|
||||
}
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static ERRCODE defSkipRaw( AREAP pArea, LONG lToSkip )
|
||||
{
|
||||
return SELF_GOTO( pArea, pArea->lpExtendInfo->lRecNo + lToSkip );
|
||||
}
|
||||
|
||||
static ERRCODE defStructSize( AREAP pArea, USHORT * uiSize )
|
||||
{
|
||||
HB_SYMBOL_UNUSED( pArea );
|
||||
HB_SYMBOL_UNUSED( uiSize );
|
||||
@@ -368,7 +460,7 @@ static ERRCODE StructSize( AREAP pArea, USHORT * uiSize )
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static ERRCODE SysName( AREAP pArea, BYTE * pBuffer )
|
||||
static ERRCODE defSysName( AREAP pArea, BYTE * pBuffer )
|
||||
{
|
||||
USHORT uiCount;
|
||||
LPRDDNODE pRddNode;
|
||||
@@ -380,7 +472,7 @@ static ERRCODE SysName( AREAP pArea, BYTE * pBuffer )
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static ERRCODE UnSupported( AREAP pArea )
|
||||
static ERRCODE defUnSupported( AREAP pArea )
|
||||
{
|
||||
PHB_ITEM pError;
|
||||
|
||||
@@ -394,59 +486,59 @@ static ERRCODE UnSupported( AREAP pArea )
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
static RDDFUNCS defTable = { Bof,
|
||||
Eof,
|
||||
Found,
|
||||
UnSupported,
|
||||
( DBENTRYP_UL ) UnSupported,
|
||||
( DBENTRYP_I ) UnSupported,
|
||||
UnSupported,
|
||||
Skip,
|
||||
( DBENTRYP_L ) UnSupported,
|
||||
( DBENTRYP_L ) UnSupported,
|
||||
AddField,
|
||||
( DBENTRYP_B ) UnSupported,
|
||||
CreateFields,
|
||||
UnSupported,
|
||||
( DBENTRYP_BP ) UnSupported,
|
||||
FieldCount,
|
||||
( DBENTRYP_VF ) UnSupported,
|
||||
FieldInfo,
|
||||
FieldName,
|
||||
UnSupported,
|
||||
GetRec,
|
||||
( DBENTRYP_SI ) UnSupported,
|
||||
( DBENTRYP_SVL ) UnSupported,
|
||||
UnSupported,
|
||||
UnSupported,
|
||||
( DBENTRYP_P ) UnSupported,
|
||||
( DBENTRYP_SI ) UnSupported,
|
||||
UnSupported,
|
||||
( DBENTRYP_ULP ) UnSupported,
|
||||
( DBENTRYP_ISI ) UnSupported,
|
||||
( DBENTRYP_I ) UnSupported,
|
||||
SetFieldExtent,
|
||||
Alias,
|
||||
Close,
|
||||
( DBENTRYP_VP ) UnSupported,
|
||||
( DBENTRYP_SI ) UnSupported,
|
||||
NewArea,
|
||||
Open,
|
||||
Release,
|
||||
StructSize,
|
||||
SysName,
|
||||
Error,
|
||||
( DBENTRYP_VSP ) UnSupported,
|
||||
( DBENTRYP_VL ) UnSupported,
|
||||
( DBENTRYP_UL ) UnSupported,
|
||||
UnSupported,
|
||||
( DBENTRYP_VP ) UnSupported,
|
||||
( DBENTRYP_SVP ) UnSupported,
|
||||
( DBENTRYP_VP ) UnSupported,
|
||||
( DBENTRYP_SVP ) UnSupported,
|
||||
UnSupported,
|
||||
UnSupported,
|
||||
( DBENTRYP_SVP ) UnSupported
|
||||
static RDDFUNCS defTable = { defBof,
|
||||
defEof,
|
||||
defFound,
|
||||
defUnSupported,
|
||||
( DBENTRYP_UL ) defUnSupported,
|
||||
( DBENTRYP_I ) defUnSupported,
|
||||
defUnSupported,
|
||||
defSkip,
|
||||
defSkipFilter,
|
||||
defSkipRaw,
|
||||
defAddField,
|
||||
( DBENTRYP_B ) defUnSupported,
|
||||
defCreateFields,
|
||||
defUnSupported,
|
||||
( DBENTRYP_BP ) defUnSupported,
|
||||
defFieldCount,
|
||||
( DBENTRYP_VF ) defUnSupported,
|
||||
defFieldInfo,
|
||||
defFieldName,
|
||||
defUnSupported,
|
||||
defGetRec,
|
||||
( DBENTRYP_SI ) defUnSupported,
|
||||
( DBENTRYP_SVL ) defUnSupported,
|
||||
defUnSupported,
|
||||
defUnSupported,
|
||||
( DBENTRYP_P ) defUnSupported,
|
||||
( DBENTRYP_SI ) defUnSupported,
|
||||
defUnSupported,
|
||||
( DBENTRYP_ULP ) defUnSupported,
|
||||
( DBENTRYP_ISI ) defUnSupported,
|
||||
( DBENTRYP_I ) defUnSupported,
|
||||
defSetFieldExtent,
|
||||
defAlias,
|
||||
defClose,
|
||||
( DBENTRYP_VP ) defUnSupported,
|
||||
( DBENTRYP_SI ) defUnSupported,
|
||||
defNewArea,
|
||||
defOpen,
|
||||
defRelease,
|
||||
defStructSize,
|
||||
defSysName,
|
||||
defError,
|
||||
( DBENTRYP_VSP ) defUnSupported,
|
||||
( DBENTRYP_VL ) defUnSupported,
|
||||
( DBENTRYP_UL ) defUnSupported,
|
||||
defUnSupported,
|
||||
( DBENTRYP_VP ) defUnSupported,
|
||||
( DBENTRYP_SVP ) defUnSupported,
|
||||
( DBENTRYP_VP ) defUnSupported,
|
||||
( DBENTRYP_SVP ) defUnSupported,
|
||||
defUnSupported,
|
||||
defUnSupported,
|
||||
( DBENTRYP_SVP ) defUnSupported
|
||||
};
|
||||
|
||||
|
||||
@@ -1261,7 +1353,7 @@ HARBOUR HB_DBGOTO( void )
|
||||
|
||||
if( !pCurrArea )
|
||||
{
|
||||
hb_errRT_DBCMD( EG_NOTABLE, 2001, NULL, "DBGOTOP" );
|
||||
hb_errRT_DBCMD( EG_NOTABLE, 2001, NULL, "DBGOTO" );
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1394,7 +1486,6 @@ HARBOUR HB_DBSKIP( void )
|
||||
{
|
||||
if( ISNUM( 1 ) )
|
||||
lToSkip = hb_parnl( 1 );
|
||||
|
||||
SELF_SKIP( ( AREAP ) pCurrArea->pArea, lToSkip );
|
||||
}
|
||||
else
|
||||
|
||||
@@ -593,6 +593,7 @@ static RDDFUNCS dbfSuper = { 0 };
|
||||
#define dbfFound NULL
|
||||
#define dbfSkip NULL
|
||||
#define dbfSkipFilter NULL
|
||||
#define dbfSkipRaw NULL
|
||||
#define dbfCreateFields NULL
|
||||
#define dbfFieldCount NULL
|
||||
#define dbfFieldDisplay NULL
|
||||
@@ -629,6 +630,9 @@ static ERRCODE dbfAppend( AREAP pArea, BOOL bUnLockAll )
|
||||
ULONG lRecCount, lRecNo;
|
||||
PHB_ITEM pError;
|
||||
|
||||
if( SELF_GOCOLD( pArea ) == FAILURE )
|
||||
return FAILURE;
|
||||
|
||||
if( pArea->lpExtendInfo->fReadOnly )
|
||||
{
|
||||
pError = hb_errNew();
|
||||
@@ -947,7 +951,8 @@ static ERRCODE dbfGoBottom( AREAP pArea )
|
||||
if( SELF_RECCOUNT( pArea, &lRecCount ) == FAILURE )
|
||||
return FAILURE;
|
||||
|
||||
return SELF_GOTO( pArea, lRecCount );
|
||||
SELF_GOTO( pArea, lRecCount );
|
||||
return SELF_SKIPFILTER( pArea, -1 );
|
||||
}
|
||||
|
||||
static ERRCODE dbfGoCold( AREAP pArea )
|
||||
@@ -1016,6 +1021,7 @@ static ERRCODE dbfGoTo( AREAP pArea, ULONG lRecNo )
|
||||
pArea->fEof = 1;
|
||||
else
|
||||
pArea->fEof = 0;
|
||||
pArea->fBof = ( lRecNo == 1 );
|
||||
}
|
||||
|
||||
pArea->lpExtendInfo->lRecNo = lRecNo;
|
||||
@@ -1051,7 +1057,8 @@ static ERRCODE dbfGoToId( AREAP pArea, PHB_ITEM pItem )
|
||||
|
||||
static ERRCODE dbfGoTop( AREAP pArea )
|
||||
{
|
||||
return SELF_GOTO( pArea, 1 );
|
||||
SELF_GOTO( pArea, 1 );
|
||||
return SELF_SKIPFILTER( pArea, 1 );
|
||||
}
|
||||
|
||||
static ERRCODE dbfInfo( AREAP pArea, USHORT uiIndex, PHB_ITEM pItem )
|
||||
@@ -1600,21 +1607,6 @@ static ERRCODE dbfRelease( AREAP pArea )
|
||||
return SUPER_RELEASE( pArea );
|
||||
}
|
||||
|
||||
static ERRCODE dbfSkipRaw( AREAP pArea, LONG lToSkip )
|
||||
{
|
||||
LONG lRecNo = pArea->lpExtendInfo->lRecNo + lToSkip;
|
||||
|
||||
if( lRecNo < 1 )
|
||||
{
|
||||
lRecNo = 1;
|
||||
pArea->fBof = 1;
|
||||
}
|
||||
else
|
||||
pArea->fBof = 0;
|
||||
|
||||
return SELF_GOTO( pArea, lRecNo );
|
||||
}
|
||||
|
||||
static ERRCODE dbfUnLock( AREAP pArea, ULONG lRecNo )
|
||||
{
|
||||
if( lRecNo == 0 )
|
||||
|
||||
15
harbour/source/rdd/dbfcdx/Makefile
Normal file
15
harbour/source/rdd/dbfcdx/Makefile
Normal file
@@ -0,0 +1,15 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
ROOT = ../../../
|
||||
|
||||
C_SOURCES=\
|
||||
dbfcdx1.c \
|
||||
|
||||
PRG_SOURCES=\
|
||||
dbfcdx0.prg \
|
||||
|
||||
LIB=dbfcdx
|
||||
|
||||
include $(TOP)$(ROOT)config/lib.cf
|
||||
@@ -4,13 +4,13 @@
|
||||
|
||||
function main()
|
||||
|
||||
local aStruct := { { "CHARACTER", "C", 25, 0 }, ;
|
||||
{ "NUMERIC", "N", 8, 0 }, ;
|
||||
{ "DOUBLE", "N", 8, 2 }, ;
|
||||
{ "DATE", "D", 8, 0 }, ;
|
||||
{ "LOGICAL", "L", 1, 0 }, ;
|
||||
{ "MEMO1", "M", 10, 0 }, ;
|
||||
{ "MEMO2", "M", 10, 0 } }
|
||||
local nI, aStruct := { { "CHARACTER", "C", 25, 0 }, ;
|
||||
{ "NUMERIC", "N", 8, 0 }, ;
|
||||
{ "DOUBLE", "N", 8, 2 }, ;
|
||||
{ "DATE", "D", 8, 0 }, ;
|
||||
{ "LOGICAL", "L", 1, 0 }, ;
|
||||
{ "MEMO1", "M", 10, 0 }, ;
|
||||
{ "MEMO2", "M", 10, 0 } }
|
||||
|
||||
REQUEST DBFCDX
|
||||
|
||||
@@ -19,12 +19,12 @@ function main()
|
||||
? "[" + MYALIAS->MEMO1 + "]"
|
||||
? "[" + MYALIAS->MEMO2 + "]"
|
||||
? "-"
|
||||
dbAppend()
|
||||
MYALIAS->( dbAppend() )
|
||||
MYALIAS->MEMO1 := "Hello world!"
|
||||
MYALIAS->MEMO2 := "Harbour power"
|
||||
? "[" + MYALIAS->MEMO1 + "]"
|
||||
? "[" + MYALIAS->MEMO2 + "]"
|
||||
dbAppend()
|
||||
MYALIAS->( dbAppend() )
|
||||
MYALIAS->MEMO1 := "111"
|
||||
MYALIAS->MEMO2 := "222"
|
||||
? "[" + MYALIAS->MEMO1 + "]"
|
||||
@@ -34,5 +34,46 @@ function main()
|
||||
? "[" + Str( MYALIAS->DOUBLE ) + "]"
|
||||
? "[" + Str( MYALIAS->NUMERIC ) + "]"
|
||||
|
||||
dbCloseAll()
|
||||
|
||||
? ""
|
||||
? "Press any key..."
|
||||
InKey( 0 )
|
||||
|
||||
dbCreate( "testdbf", aStruct, "DBFCDX", .t., "MYALIAS" )
|
||||
|
||||
for nI := 1 to 10
|
||||
MYALIAS->( dbAppend() )
|
||||
MYALIAS->NUMERIC := nI
|
||||
? "Adding a record", nI
|
||||
if nI == 3 .or. nI == 7
|
||||
MYALIAS->( dbDelete() )
|
||||
? "Deleting record", nI
|
||||
endif
|
||||
next
|
||||
|
||||
? ""
|
||||
? "With SET DELETED OFF"
|
||||
? "Press any key..."
|
||||
InKey( 0 )
|
||||
|
||||
MYALIAS->( dbGoTop() )
|
||||
do while !MYALIAS->( Eof() )
|
||||
? MYALIAS->NUMERIC
|
||||
MYALIAS->( dbSkip() )
|
||||
enddo
|
||||
|
||||
SET DELETED ON
|
||||
? ""
|
||||
? "With SET DELETED ON"
|
||||
? "Press any key..."
|
||||
InKey( 0 )
|
||||
|
||||
MYALIAS->( dbGoTop() )
|
||||
do while !MYALIAS->( Eof() )
|
||||
? MYALIAS->NUMERIC
|
||||
MYALIAS->( dbSkip() )
|
||||
enddo
|
||||
|
||||
return nil
|
||||
|
||||
|
||||
Reference in New Issue
Block a user