Files
harbour-core/harbour/contrib/hbpgsql/tests/async.prg
Viktor Szakats 35b3abdcdc 2012-10-11 18:07 UTC+0200 Viktor Szakats (harbour syenar.net)
* contrib/hbblat/tests/blatcmd.prg
  * contrib/hbblat/tests/blattest.prg
  * contrib/hbbz2/tests/test.prg
  * contrib/hbcomm/tests/test.prg
  * contrib/hbcups/tests/test.prg
  * contrib/hbexpat/tests/test.prg
  * contrib/hbexpat/tests/tohash.prg
  * contrib/hbfbird/tests/simple.prg
  * contrib/hbfbird/tests/stress.prg
  * contrib/hbfbird/tests/test.prg
  * contrib/hbfimage/tests/fitest.prg
  * contrib/hbgs/tests/testgs.prg
  * contrib/hbhpdf/tests/harupdf.prg
  * contrib/hblzf/tests/test.prg
  * contrib/hbmagic/tests/hbmagit.prg
  * contrib/hbmemio/tests/test.prg
  * contrib/hbmxml/tests/custom.prg
  * contrib/hbmxml/tests/reminder.prg
  * contrib/hbmxml/tests/testmxml.prg
  * contrib/hbmysql/tests/test.prg
  * contrib/hbmzip/tests/myunzip.prg
  * contrib/hbmzip/tests/myzip.prg
  * contrib/hbodbc/tests/odbccall.prg
  * contrib/hbodbc/tests/odbcdemo.prg
  * contrib/hbodbc/tests/testodbc.prg
  * contrib/hbpgsql/tests/async.prg
  * contrib/hbpgsql/tests/cache.prg
  * contrib/hbpgsql/tests/dbf2pg.prg
  * contrib/hbpgsql/tests/simple.prg
  * contrib/hbpgsql/tests/stress.prg
  * contrib/hbpgsql/tests/test.prg
  * contrib/hbsms/tests/send.prg
  * contrib/hbsqlit3/tests/authoriz.prg
  * contrib/hbsqlit3/tests/backup.prg
  * contrib/hbsqlit3/tests/blob.prg
  * contrib/hbsqlit3/tests/hdbctest.prg
  * contrib/hbsqlit3/tests/hooks.prg
  * contrib/hbsqlit3/tests/metadata.prg
  * contrib/hbsqlit3/tests/pack.prg
  * contrib/hbsqlit3/tests/sl3_test.prg
  * contrib/hbssl/tests/bio.prg
  * contrib/hbssl/tests/crypt.prg
  * contrib/hbssl/tests/digest.prg
  * contrib/hbssl/tests/encode.prg
  * contrib/hbssl/tests/pem.prg
  * contrib/hbssl/tests/test.prg
  * contrib/hbtip/tests/base64.prg
  * contrib/hbtip/tests/dbtohtml.prg
  * contrib/hbtip/tests/dnldftp.prg
  * contrib/hbtip/tests/ftpadv.prg
  * contrib/hbtip/tests/gmail.prg
  * contrib/hbtip/tests/httpadv.prg
  * contrib/hbtip/tests/loadhtml.prg
  * contrib/hbtip/tests/test01.prg
  * contrib/hbtip/tests/tipmail.prg
  * contrib/hbtip/tests/tipmime.prg
  * contrib/hbtip/tests/tipmmail.prg
  * contrib/hbtip/tests/tiptest.prg
  * contrib/hbtip/tests/tiptime.prg
  * contrib/hbtip/tests/upld_ftp.prg
  * contrib/hbtpathy/tests/testtp.prg
  * contrib/hbunix/tests/testdmn.prg
  * contrib/hbunix/tests/testpid.prg
  * contrib/hbxdiff/tests/test.prg
  * contrib/hbxdiff/tests/test2.prg
  * contrib/hbxdiff/tests/test3.prg
  * contrib/rddsql/tests/arrayrdd.prg
  * contrib/sddsqlt3/tests/test1.prg
  * contrib/xhb/tests/compress.prg
  * contrib/xhb/tests/dll.prg
  * contrib/xhb/tests/testcp.prg
  * contrib/xhb/tests/xml1.prg
    + added #require directives, so the tests can now
      be run as scripts. It will require a dynamically
      built hbrun and contrib dlls. To make them, use:
        HB_BUILD_CONTRIB_DYN=yes and rebuild Harbour.
    * minor cleanups along the way
    ; RDDSQL fails in RDDSETDEFAULT().

  * contrib/gtwvg/toolbar.prg
    ! fixed yet another != (disguised as <>) operator on string
2012-10-11 16:16:32 +00:00

74 lines
1.6 KiB
Plaintext

/*
* $Id$
*/
/*
* This sample show howto use asynchronous/nonblocking queries
*/
#require "hbpgsql"
#include "inkey.ch"
PROCEDURE Main( cServer, cDatabase, cUser, cPass )
LOCAL conn
CLS
? "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