* contrib/hbct/tests/datetime.prg
* contrib/hbcurl/tests/ftp_uldl.prg
* contrib/hbhttpd/tests/webapp.prg
* contrib/hbpgsql/tests/simple.prg
* contrib/hbpgsql/tests/async.prg
* contrib/hbpgsql/tests/hdbctest.prg
* contrib/hbpgsql/tests/cache.prg
* contrib/hbsqlit3/tests/blob.prg
* contrib/hbsqlit3/tests/hdbctest.prg
* contrib/hbsqlit3/tests/hooks.prg
* contrib/hbsqlit3/tests/authoriz.prg
* contrib/hbsqlit3/tests/backup.prg
* contrib/hbfbird/tests/simple.prg
* contrib/hbfbird/tests/test.prg
* contrib/hbfbird/tests/stress.prg
* contrib/hbgd/tests/bartest.prg
* contrib/hbgd/tests/barms.prg
* FUNCTION main() -> PROCEDURE main()
! fixed RETURN <x> in main() to ErrorLevel() call
! fixed <> operator for strings
* formatting
* deleted some decoration comments
72 lines
1.6 KiB
Plaintext
72 lines
1.6 KiB
Plaintext
/*
|
|
* $Id$
|
|
*/
|
|
|
|
/*
|
|
* This sample show howto use asynchronous/nonblocking queries
|
|
*/
|
|
|
|
#include "inkey.ch"
|
|
|
|
PROCEDURE Main( cServer, cDatabase, cUser, cPass )
|
|
LOCAL conn
|
|
|
|
CLEAR SCREEN
|
|
|
|
? "Connect", conn := PQconnectDB( "dbname = " + cDatabase + " host = " + cServer + " user = " + cUser + " password = " + cPass + " port = 5432" )
|
|
|
|
? "Conection status", PQerrorMessage(conn), PQstatus(conn)
|
|
|
|
Query( conn, "SELECT codigo, descri FROM client limit 100", .F. )
|
|
Query( conn, "SELECT codigo, descri FROM fornec limit 100", .F. )
|
|
Query( conn, "SELECT pedido, vlrped FROM pedido", .T. )
|
|
|
|
RETURN
|
|
|
|
PROCEDURE Query( conn, cQuery, lCancel )
|
|
LOCAL pCancel, cErrMsg := Space( 30 )
|
|
LOCAL res, x, y, cTime
|
|
|
|
? "PQSendQuery", PQsendQuery( conn, cQuery )
|
|
|
|
cTime := Time()
|
|
CLEAR TYPEAHEAD
|
|
|
|
DO WHILE Inkey() != K_ESC
|
|
DevPos( Row(), 20 )
|
|
DevOut( "Processing: " + Elaptime( cTime, Time() ) )
|
|
|
|
Inkey( 1 )
|
|
|
|
IF lCancel
|
|
IF .T.
|
|
pCancel := PQgetCancel( conn )
|
|
? "Canceled: ", PQcancel( pCancel, @cErrMsg ), cErrMsg
|
|
pCancel := NIL
|
|
ELSE
|
|
? PQrequestCancel( conn ) /* Deprecated */
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF PQconsumeInput( conn )
|
|
IF ! PQisBusy( conn )
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ENDDO
|
|
|
|
IF Inkey() != K_ESC
|
|
? "PQgetResult", hb_valtoexp( res := PQgetResult( conn ) )
|
|
|
|
FOR x := 1 TO PQlastrec( res )
|
|
?
|
|
FOR y := 1 TO PQfcount( res )
|
|
?? PQgetvalue( res, x, y ), " "
|
|
NEXT
|
|
NEXT
|
|
ELSE
|
|
? "Canceling Query", PQrequestCancel( conn )
|
|
ENDIF
|
|
|
|
RETURN
|