Files
harbour-core/tests/newrdd.prg
Przemysław Czerpak 96ca3fe470 2014-01-21 20:41 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* Makefile
  * config/*
  * contrib/*
  * doc/*
  * extras/*
  * include/*
  * lib/*
  * package/*
  * src/*
  * tests/*
  * utils/*
    * removed empty lines left after removed '$' + 'Id' + '$' identifiers
2014-01-21 20:41:05 +01:00

384 lines
11 KiB
Plaintext

#ifndef __HARBOUR__
#include "clipper.ch"
#endif
REQUEST _DBF
PROCEDURE Main()
LOCAL nI, aArray
Set( _SET_DATEFORMAT, "yyyy-mm-dd" )
rddSetDefault( "DBF" )
SET EXCLUSIVE OFF
CLS
dbUseArea( .T., "DBF", "test", "TESTDBF", .T., .F. )
? "RecCount:", TESTDBF->( RecCount() )
? "Used:", TESTDBF->( Used() )
? "Select:", TESTDBF->( Select() )
? "RecSize:", TESTDBF->( RecSize() )
? "RecNo:", TESTDBF->( RecNo() )
? "NetErr:", TESTDBF->( NetErr() )
? "Press any key to continue..."
Inkey( 0 )
CLS
aArray := rddList( 0 )
? "Rdd's: "
FOR nI := 1 TO Len( aArray )
?? aArray[ nI ], ""
NEXT
? "RddName:", TESTDBF->( rddName() )
? "lUpdate:", TESTDBF->( LUpdate() )
? "Header:", TESTDBF->( Header() )
? "FieldPos( 'LAST' ):", TESTDBF->( FieldPos( "LAST" ) )
? "FieldName( 2 ):", TESTDBF->( FieldName( 2 ) )
? "Dbf():", TESTDBF->( Dbf() )
? "Alias( 1 ):", Alias( 1 )
? "dbTableExt():", TESTDBF->( dbTableExt() )
aArray := TESTDBF->( dbStruct() )
? "dbStruct:"
FOR nI := 1 TO Len( aArray )
? PadR( aArray[ nI ][ 1 ], 10 ), aArray[ nI ][ 2 ], aArray[ nI ][ 3 ], aArray[ nI ][ 4 ]
NEXT
? "Press any key to continue..."
Inkey( 0 )
CLS
? "dbGoTop():"
dbGoTop()
? "Bof Eof Found Deleted RecNo:", TESTDBF->( Bof() ), TESTDBF->( Eof() ), ;
TESTDBF->( Found() ), TESTDBF->( Deleted() ), TESTDBF->( Deleted() ), ;
TESTDBF->( RecNo() )
? "dbSkip( -1 ):"
dbSkip( -1 )
? "Bof Eof Found Deleted RecNo:", TESTDBF->( Bof() ), TESTDBF->( Eof() ), ;
TESTDBF->( Found() ), TESTDBF->( Deleted() ), TESTDBF->( Deleted() ), ;
TESTDBF->( RecNo() )
? "dbSkip( -1 ):"
dbSkip( -1 )
? "Bof Eof Found Deleted RecNo:", TESTDBF->( Bof() ), TESTDBF->( Eof() ), ;
TESTDBF->( Found() ), TESTDBF->( Deleted() ), TESTDBF->( Deleted() ), ;
TESTDBF->( RecNo() )
? "dbSkip( 1 ):"
dbSkip( 1 )
? "Bof Eof Found Deleted RecNo:", TESTDBF->( Bof() ), TESTDBF->( Eof() ), ;
TESTDBF->( Found() ), TESTDBF->( Deleted() ), TESTDBF->( Deleted() ), ;
TESTDBF->( RecNo() )
? "dbSkip( 1 ):"
dbSkip( 1 )
? "Bof Eof Found Deleted RecNo:", TESTDBF->( Bof() ), TESTDBF->( Eof() ), ;
TESTDBF->( Found() ), TESTDBF->( Deleted() ), TESTDBF->( Deleted() ), ;
TESTDBF->( RecNo() )
? "dbGoTop():"
dbGoTop()
? "Bof Eof Found Deleted RecNo:", TESTDBF->( Bof() ), TESTDBF->( Eof() ), ;
TESTDBF->( Found() ), TESTDBF->( Deleted() ), TESTDBF->( Deleted() ), ;
TESTDBF->( RecNo() )
? "dbSkip( 1 ):"
dbSkip( 1 )
? "Bof Eof Found Deleted RecNo:", TESTDBF->( Bof() ), TESTDBF->( Eof() ), ;
TESTDBF->( Found() ), TESTDBF->( Deleted() ), TESTDBF->( Deleted() ), ;
TESTDBF->( RecNo() )
? "dbSkip( 1 ):"
dbSkip( 1 )
? "Bof Eof Found Deleted RecNo:", TESTDBF->( Bof() ), TESTDBF->( Eof() ), ;
TESTDBF->( Found() ), TESTDBF->( Deleted() ), TESTDBF->( Deleted() ), ;
TESTDBF->( RecNo() )
? "dbSkip( -1 ):"
dbSkip( -1 )
? "Bof Eof Found Deleted RecNo:", TESTDBF->( Bof() ), TESTDBF->( Eof() ), ;
TESTDBF->( Found() ), TESTDBF->( Deleted() ), TESTDBF->( Deleted() ), ;
TESTDBF->( RecNo() )
? "dbSkip( -1 ):"
dbSkip( -1 )
? "Bof Eof Found Deleted RecNo:", TESTDBF->( Bof() ), TESTDBF->( Eof() ), ;
TESTDBF->( Found() ), TESTDBF->( Deleted() ), TESTDBF->( Deleted() ), ;
TESTDBF->( RecNo() )
Inkey( 0 )
CLS
? "dbGoBottom():"
dbGoBottom()
? "Bof Eof Found Deleted RecNo:", TESTDBF->( Bof() ), TESTDBF->( Eof() ), ;
TESTDBF->( Found() ), TESTDBF->( Deleted() ), TESTDBF->( Deleted() ), ;
TESTDBF->( RecNo() )
? "dbSkip( 1 ):"
dbSkip( 1 )
? "Bof Eof Found Deleted RecNo:", TESTDBF->( Bof() ), TESTDBF->( Eof() ), ;
TESTDBF->( Found() ), TESTDBF->( Deleted() ), TESTDBF->( Deleted() ), ;
TESTDBF->( RecNo() )
? "dbSkip( 1 ):"
dbSkip( 1 )
? "Bof Eof Found Deleted RecNo:", TESTDBF->( Bof() ), TESTDBF->( Eof() ), ;
TESTDBF->( Found() ), TESTDBF->( Deleted() ), TESTDBF->( Deleted() ), ;
TESTDBF->( RecNo() )
? "dbSkip( -1 ):"
dbSkip( -1 )
? "Bof Eof Found Deleted RecNo:", TESTDBF->( Bof() ), TESTDBF->( Eof() ), ;
TESTDBF->( Found() ), TESTDBF->( Deleted() ), TESTDBF->( Deleted() ), ;
TESTDBF->( RecNo() )
? "dbSkip( -1 ):"
dbSkip( -1 )
? "Bof Eof Found Deleted RecNo:", TESTDBF->( Bof() ), TESTDBF->( Eof() ), ;
TESTDBF->( Found() ), TESTDBF->( Deleted() ), TESTDBF->( Deleted() ), ;
TESTDBF->( RecNo() )
? "Press any key to continue..."
Inkey( 0 )
CLS
? "dbGoto( 490 ):"
dbGoto( 490 )
? "Bof Eof Found Deleted RecNo:", TESTDBF->( Bof() ), TESTDBF->( Eof() ), ;
TESTDBF->( Found() ), TESTDBF->( Deleted() ), TESTDBF->( Deleted() ), ;
TESTDBF->( RecNo() )
? "FCount:", TESTDBF->( FCount() )
FOR nI := 1 TO TESTDBF->( FCount() )
? "FieldGet( " + hb_ntos( nI ) + " ):", TESTDBF->( FieldGet( nI ) )
NEXT
? "Press any key to continue..."
Inkey( 0 )
CLS
? "WHILE ! TESTDBF->( Eof() )"
? " ? TESTDBF->FIRST, TESTDBF->( RecNo() )"
? " TESTDBF->( dbSkip() )"
? "ENDDO"
? ""
WHILE ! TESTDBF->( Eof() )
? TESTDBF->FIRST, TESTDBF->( RecNo() )
TESTDBF->( dbSkip() )
ENDDO
? "Press any key to continue..."
Inkey( 0 )
CLS
? "SET FILTER TO TESTDBF->AGE == 21"
? "? TESTDBF->( dbFilter() )"
? "TESTDBF->( dbGoTop() )"
? "WHILE ! TESTDBF->( Eof() )"
? " ? TESTDBF->FIRST, TESTDBF->AGE, TESTDBF->( RecNo() )"
? " TESTDBF->( dbSkip() )"
? "ENDDO"
? "SET FILTER TO"
? ""
SET FILTER TO TESTDBF->AGE == 21
? TESTDBF->( dbFilter() )
TESTDBF->( dbGoTop() )
WHILE ! TESTDBF->( Eof() )
? TESTDBF->FIRST, TESTDBF->AGE, TESTDBF->( RecNo() )
TESTDBF->( dbSkip() )
ENDDO
SET FILTER TO
? "Press any key to continue..."
Inkey( 0 )
CLS
? "TESTDBF->( Found() )"
? "LOCATE FOR TESTDBF->AGE == 23"
? "WHILE TESTDBF->( Found() )"
? " ? TESTDBF->FIRST, TESTDBF->AGE, TESTDBF->( RecNo() )"
? " CONTINUE"
? "ENDDO"
TESTDBF->( Found() )
LOCATE FOR TESTDBF->AGE == 23
WHILE TESTDBF->( Found() )
? TESTDBF->FIRST, TESTDBF->AGE, TESTDBF->( RecNo() )
CONTINUE
ENDDO
? "Press any key to continue..."
Inkey( 0 )
CLS
? "TESTDBF->( dbEval( {|| QOut( TESTDBF->FIRST, TESTDBF->AGE ) }, ;"
? " {|| TESTDBF->AGE == 23 } ) )"
? ""
? "dbCommit()"
TESTDBF->( dbEval( {|| QOut( TESTDBF->FIRST, TESTDBF->AGE ) }, ;
{|| TESTDBF->AGE == 23 } ) )
TESTDBF->( dbCommit() )
? "Press any key to continue..."
Inkey( 0 )
CLS
? 'dbCreate( "newrdd", { ;'
? ' { "First_Name", "C", 20, 0 }, ;'
? ' { "Age", "N", 3, 0 }, ;'
? ' { "Date", "D", 8, 0 }, ;'
? ' { "Rate", "N", 6, 2 }, ;'
? ' { "Memo", "M", 10, 0 }, ;'
? ' { "Student", "L", 1, 0 } },, .T., "newrdd" )'
? 'SET CENTURY ON'
dbCreate( "newrdd", { ;
{ "First_Name", "C", 20, 0 }, ;
{ "Age", "N", 3, 0 }, ;
{ "Date", "D", 8, 0 }, ;
{ "Rate", "N", 6, 2 }, ;
{ "Memo", "M", 10, 0 }, ;
{ "Student", "L", 1, 0 } }, "DBFCDX", .T., "newrdd" )
SET CENTURY ON
? "lUpdate:", NEWRDD->( LUpdate() )
? "Press any key to continue..."
Inkey( 0 )
CLS
? 'Select( "TESTDBF" )'
? "SET FILTER TO TESTDBF->SALARY > 120000"
? "TESTDBF->( dbGoTop() )"
? "WHILE ! TESTDBF->( Eof() )"
? " NEWRDD->( dbAppend() )"
? " NEWRDD->FIRST_NAME := TESTDBF->FIRST"
? " NEWRDD->AGE := TESTDBF->AGE"
? " NEWRDD->DATE := TESTDBF->HIREDATE"
? " NEWRDD->RATE := Val( Right( hb_ntos( Seconds() ), 5 ) )"
? " NEWRDD->MEMO := TESTDBF->FIRST + Chr( 13 ) + Chr( 10 ) + ;"
? " TESTDBF->LAST + Chr( 13 ) + Chr( 10 ) + ;"
? " TESTDBF->STREET"
? " NEWRDD->STUDENT := TESTDBF->MARRIED"
? " TESTDBF->( dbSkip() )"
? "ENDDO"
? "SET FILTER TO"
? "? NEWRDD->( RecCount() )"
? "NEWRDD->( dbGoTop() )"
? "NEWRDD->( dbRLock( 1 ) )"
? "NEWRDD->( dbDelete() )"
? "? NEWRDD->( Deleted() )"
? "NEWRDD->( dbGoBottom() )"
? "NEWRDD->( dbRLock() )"
? "NEWRDD->( dbDelete() )"
? "? NEWRDD->( Deleted() )"
? "NEWRDD->( dbRLock( 3 ) )"
Select( "TESTDBF" )
SET FILTER TO TESTDBF->SALARY > 120000
TESTDBF->( dbGoTop() )
WHILE ! TESTDBF->( Eof() )
NEWRDD->( dbAppend() )
NEWRDD->FIRST_NAME := TESTDBF->FIRST
NEWRDD->AGE := TESTDBF->AGE
NEWRDD->DATE := TESTDBF->HIREDATE
NEWRDD->RATE := Val( Right( hb_ntos( Seconds() ), 5 ) )
NEWRDD->MEMO := TESTDBF->FIRST + Chr( 13 ) + Chr( 10 ) + ;
TESTDBF->LAST + Chr( 13 ) + Chr( 10 ) + ;
TESTDBF->STREET
NEWRDD->STUDENT := TESTDBF->MARRIED
TESTDBF->( dbSkip() )
ENDDO
SET FILTER TO
? NEWRDD->( RecCount() )
NEWRDD->( dbGoTop() )
NEWRDD->( dbRLock( 1 ) )
NEWRDD->( dbDelete() )
? NEWRDD->( Deleted() )
NEWRDD->( dbGoBottom() )
NEWRDD->( dbRLock() )
NEWRDD->( dbDelete() )
? NEWRDD->( Deleted() )
NEWRDD->( dbRLock( 3 ) )
? "Press any key to continue..."
Inkey( 0 )
CLS
aArray := NEWRDD->( dbRLockList() )
? "aArray := NEWRDD->( dbRLockList() )"
? "FOR nI := 1 TO Len( aArray )"
? " ? aArray[ nI ]"
? "NEXT"
? "dbRLockList(): "
FOR nI := 1 TO Len( aArray )
? aArray[ nI ]
NEXT
? "Press any key to continue..."
Inkey( 0 )
CLS
? 'NEWRDD->( dbCloseArea() )'
? 'dbUseArea( .T., "DBF", "newrdd", "NEWRDD", .F., .F. )'
? 'nI := 1'
? 'NEWRDD->( __dbPack( {|| QOut( nI ), nI++ } ) )'
? '? "RecCount:", NEWRDD->( RecCount() )'
? ""
NEWRDD->( dbCloseArea() )
dbUseArea( .T., "DBFCDX", "newrdd", "NEWRDD", .F., .F. )
? "Press any key to continue..."
Inkey( 0 )
CLS
nI := 1
NEWRDD->( __dbPack( {|| QOut( nI ), nI++ } ) )
? "RecCount:", NEWRDD->( RecCount() )
? "Press any key to continue..."
Inkey( 0 )
CLS
? '? "RecCount:", NEWRDD->( RecCount() )'
? 'NEWRDD->( __dbZap() )'
? '? "RecCount:", NEWRDD->( RecCount() )'
? ""
? "RecCount:", NEWRDD->( RecCount() )
NEWRDD->( __dbZap() )
? "RecCount:", NEWRDD->( RecCount() )
? "Press any key to continue..."
Inkey( 0 )
CLS
? 'NEWRDD->( dbCloseArea() )'
? 'SORT ON FIRST /DC, AGE /D TO NEWRDD'
? 'dbUseArea( .T., "DBF", "newrdd", "NEWRDD", .F., .F. )'
? '? "RecCount:", NEWRDD->( RecCount() )'
? 'FOR nI := 1 TO 8'
? ' ? NEWRDD->FIRST, NEWRDD->AGE'
? ' NEWRDD->( dbSkip() )'
? 'NEXT'
? '? "..."'
? 'NEWRDD->( dbGoBottom() )'
? 'NEWRDD->( dbSkip( -8 ) )'
? 'FOR nI := 1 TO 8'
? ' ? NEWRDD->FIRST, NEWRDD->AGE'
? ' NEWRDD->( dbSkip() )'
? 'NEXT'
? "Press any key to continue..."
Inkey( 0 )
CLS
NEWRDD->( dbCloseArea() )
Select( "TESTDBF" )
SORT ON FIRST /DC, AGE /D TO newrdd
dbUseArea( .T., "DBF", "newrdd", "NEWRDD", .F., .F. )
? "RecCount:", NEWRDD->( RecCount() )
FOR nI := 1 TO 8
? NEWRDD->FIRST, NEWRDD->AGE
NEWRDD->( dbSkip() )
NEXT
? "..."
NEWRDD->( dbGoBottom() )
NEWRDD->( dbSkip( -8 ) )
FOR nI := 1 TO 8
? NEWRDD->FIRST, NEWRDD->AGE
NEWRDD->( dbSkip() )
NEXT
dbCloseAll()
hb_dbDrop( "newrdd",, "DBFCDX" )
RETURN