* contrib\hbblat\tests\blatcmd.prg
* contrib\hbblat\tests\blattest.prg
* contrib\hbct\tests\datetime.prg
* contrib\hbcurl\tests\ftp_uldl.prg
* contrib\hbfimage\tests\fitest.prg
* contrib\hbformat\hbfmtcls.prg
* contrib\hbformat\utils\hbformat.prg
* contrib\hbfoxpro\dll.prg
* contrib\hbgd\gd.prg
* contrib\hbgd\gdbarcod.prg
* contrib\hbgd\tests\animgif.prg
* contrib\hbgd\tests\antialia.prg
* contrib\hbgd\tests\counter.prg
* contrib\hbgd\tests\gdtest.prg
* contrib\hbgd\tests\gdtestcl.prg
* contrib\hbgd\tests\test_out.prg
* contrib\hbgd\tests\testdpi.prg
* contrib\hbgd\tests\tostring.prg
* contrib\hbmagic\tests\hbmagit.prg
* contrib\hbmisc\fcomma.prg
* contrib\hbmxml\tests\testmxml.prg
* contrib\hbmysql\tsqlbrw.prg
* contrib\hbnf\menu1.prg
* contrib\hbnf\pegs.prg
* contrib\hbnf\popadder.prg
* contrib\hbnf\savesets.prg
* contrib\hbnf\tempfile.prg
* contrib\hbpgsql\tests\cache.prg
* contrib\hbpgsql\tests\dbf2pg.prg
* contrib\hbpgsql\tests\simple.prg
* contrib\hbpgsql\tests\stress.prg
* contrib\hbqt\qtgui\hbqt_errorsys.prg
* contrib\hbsms\tests\send.prg
* contrib\hbsqlit3\hdbcsqlt.prg
* contrib\hbsqlit3\tests\authoriz.prg
* contrib\hbsqlit3\tests\backup.prg
* contrib\hbsqlit3\tests\hdbctest.prg
* contrib\hbsqlit3\tests\hooks.prg
* contrib\hbtip\cgi.prg
* contrib\hbtip\client.prg
* contrib\hbtip\ftpcli.prg
* contrib\hbtip\httpcli.prg
* contrib\hbtip\sessid.prg
* contrib\hbtip\tests\dnldftp.prg
* contrib\hbtip\tests\gmail.prg
* contrib\hbtip\tests\upld_ftp.prg
* contrib\hbwin\tests\dlg.prg
* contrib\hbwin\tests\testsvc.prg
* contrib\hbwin\win_tcom.prg
* contrib\hbxpp\tgetx.prg
* contrib\hbxpp\xppop.prg
* contrib\hbziparc\ziparc.prg
* examples\hbbtree\tbtree.prg
* examples\httpsrv\modules\info.prg
* examples\httpsrv\modules\testajax.prg
* examples\rddado\adordd.prg
* examples\terminal\terminal.prg
* src\rdd\usrrdd\rdds\arrayrdd.prg
* src\rdd\usrrdd\rdds\logrdd.prg
* src\rtl\achoice.prg
* src\rtl\radiogrp.prg
* src\rtl\tclass.prg
* tests\usrrdd\exlog.prg
* using HB_DEFAULT() instead of DEFAULT ... TO ...
% deleted '#include "common.ch"' where possible
; please pay attention to places where multiple values are
accepted and DEFAULT applied. It's possible some of these
might have been slipped my attention and converted to
HB_DEFAULT(), causing regression.
* src/rdd/usrrdd/rdds/arrayrdd.prg
! typos in recent mods
107 lines
2.7 KiB
Plaintext
107 lines
2.7 KiB
Plaintext
/*
|
|
* $Id$
|
|
*/
|
|
|
|
/*
|
|
* VERY IMPORTANT: Don't use this querys as sample, they are used for stress tests !!!
|
|
*/
|
|
|
|
#include "postgres.ch"
|
|
|
|
PROCEDURE Main( cServer, cDatabase, cUser, cPass )
|
|
LOCAL conn, res, i, x
|
|
|
|
LOCAL cQuery
|
|
|
|
CLEAR SCREEN
|
|
|
|
? "Connecting...."
|
|
conn := PQconnectDB( "dbname = " + cDatabase + " host = " + cServer + " user = " + cUser + " password = " + cPass + " port = 5432" )
|
|
|
|
? PQstatus( conn ), PQerrormessage( conn )
|
|
|
|
IF PQstatus( conn ) != CONNECTION_OK
|
|
QUIT
|
|
ENDIF
|
|
|
|
? "Dropping table..."
|
|
|
|
PQexec( conn, "DROP TABLE test" )
|
|
|
|
? "Creating test table..."
|
|
cQuery := "CREATE TABLE test("
|
|
cQuery += " Code integer not null primary key, "
|
|
cQuery += " dept Integer, "
|
|
cQuery += " Name Varchar(40), "
|
|
cQuery += " Sales boolean, "
|
|
cQuery += " Tax Float4, "
|
|
cQuery += " Salary Double Precision, "
|
|
cQuery += " Budget Numeric(12,2), "
|
|
cQuery += " Discount Numeric(5,2), "
|
|
cQuery += " Creation Date, "
|
|
cQuery += " Description text ) "
|
|
|
|
PQexec( conn, cQuery )
|
|
PQexec( conn, "SELECT code, dept, name, sales, salary, creation FROM test" )
|
|
PQexec( conn, "BEGIN" )
|
|
|
|
FOR i := 1 TO 10000
|
|
@ 15, 0 SAY "Inserting values...." + Str( i )
|
|
|
|
cQuery := "INSERT INTO test(code, dept, name, sales, salary, creation) " +;
|
|
"VALUES( " + Str( i ) + "," + Str( i + 1 ) + ", 'DEPARTMENT NAME " + StrZero( i ) + "', 'y', " + Str( 300.49 + i ) + ", '2003-12-28' )"
|
|
|
|
PQexec( conn, cQuery )
|
|
|
|
IF Mod( i, 100 ) == 0
|
|
? PQexec( conn, "COMMIT" )
|
|
? PQexec( conn, "BEGIN" )
|
|
ENDIF
|
|
NEXT
|
|
|
|
FOR i := 5000 TO 7000
|
|
@ 16, 0 SAY "Deleting values...." + Str( i )
|
|
|
|
cQuery := "DELETE FROM test WHERE code = " + Str( i )
|
|
PQexec( conn, cQuery )
|
|
|
|
IF Mod( i, 100 ) == 0
|
|
PQexec( conn, "COMMIT" )
|
|
PQexec( conn, "BEGIN" )
|
|
ENDIF
|
|
NEXT
|
|
|
|
FOR i := 2000 TO 3000
|
|
@ 17, 0 SAY "Updating values...." + Str( i )
|
|
|
|
cQuery := "UPDATE FROM test SET salary = 400 WHERE code = " + str( i )
|
|
PQexec( conn, cQuery )
|
|
|
|
IF Mod( i, 100 ) == 0
|
|
PQexec( conn, "COMMIT" )
|
|
PQexec( conn, "BEGIN" )
|
|
ENDIF
|
|
NEXT
|
|
|
|
res := PQexec( conn, "SELECT sum(salary) as sum_salary FROM test WHERE code between 1 and 4000" )
|
|
|
|
IF PQresultStatus( res ) == PGRES_TUPLES_OK
|
|
@ 18, 0 SAY "Sum values...." + PQgetvalue( res, 1, 1 )
|
|
ENDIF
|
|
|
|
x := 0
|
|
FOR i := 1 TO 4000
|
|
res := PQexec( conn, "SELECT salary FROM test WHERE code = " + Str( i ) )
|
|
|
|
IF PQresultStatus( res ) == PGRES_TUPLES_OK
|
|
x += Val( PQgetvalue( res, 1, 1 ) )
|
|
|
|
@ 19, 0 SAY "Sum values...." + Str( x )
|
|
ENDIF
|
|
NEXT
|
|
|
|
? "Closing..."
|
|
conn := NIL
|
|
|
|
RETURN
|