I am not sure what the issue is and why it cannot load the dylib it needs. Apparently it must be exposed to other items as they work. I would not think its this difficult to use postgres with lazarus.
On Mon, Nov 21, 2011 at 3:36 PM, Tom Russell <[email protected]> wrote: > Its like this: > > Procedure InitialisePostgres3; > > begin > inc(RefCount); > if RefCount = 1 then > begin > Postgres3LibraryHandle := loadlibrary(pqlib); > if Postgres3LibraryHandle = nilhandle then > begin > RefCount := 0; > Raise EInOutError.Create('Can not load PosgreSQL client. Is it > installed? ('+pqlib+')'); > end; > > pointer(PQconnectStart) := > GetProcedureAddress(Postgres3LibraryHandle,'PQconnectStart'); > pointer(PQconnectPoll) := > GetProcedureAddress(Postgres3LibraryHandle,'PQconnectPoll'); > pointer(PQconnectdb) := > GetProcedureAddress(Postgres3LibraryHandle,'PQconnectdb'); > pointer(PQsetdbLogin) := > GetProcedureAddress(Postgres3LibraryHandle,'PQsetdbLogin'); > pointer(PQfinish) := > GetProcedureAddress(Postgres3LibraryHandle,'PQfinish'); > pointer(PQconndefaults) := > GetProcedureAddress(Postgres3LibraryHandle,'PQconndefaults'); > pointer(PQconninfoFree) := > GetProcedureAddress(Postgres3LibraryHandle,'PQconninfoFree'); > pointer(PQresetStart) := > GetProcedureAddress(Postgres3LibraryHandle,'PQresetStart'); > pointer(PQresetPoll) := > GetProcedureAddress(Postgres3LibraryHandle,'PQresetPoll'); > pointer(PQreset) := GetProcedureAddress(Postgres3LibraryHandle,'PQreset'); > pointer(PQrequestCancel) := > GetProcedureAddress(Postgres3LibraryHandle,'PQrequestCancel'); > pointer(PQdb) := GetProcedureAddress(Postgres3LibraryHandle,'PQdb'); > pointer(PQuser) := GetProcedureAddress(Postgres3LibraryHandle,'PQuser'); > pointer(PQpass) := GetProcedureAddress(Postgres3LibraryHandle,'PQpass'); > pointer(PQhost) := GetProcedureAddress(Postgres3LibraryHandle,'PQhost'); > pointer(PQport) := GetProcedureAddress(Postgres3LibraryHandle,'PQport'); > pointer(PQtty) := GetProcedureAddress(Postgres3LibraryHandle,'PQtty'); > pointer(PQoptions) := > GetProcedureAddress(Postgres3LibraryHandle,'PQoptions'); > pointer(PQstatus) := > GetProcedureAddress(Postgres3LibraryHandle,'PQstatus'); > pointer(PQtransactionStatus) := > GetProcedureAddress(Postgres3LibraryHandle,'PQtransactionStatus'); > pointer(PQparameterStatus) := > GetProcedureAddress(Postgres3LibraryHandle,'PQparameterStatus'); > pointer(PQprotocolVersion) := > GetProcedureAddress(Postgres3LibraryHandle,'PQprotocolVersion'); > pointer(PQerrorMessage) := > GetProcedureAddress(Postgres3LibraryHandle,'PQerrorMessage'); > pointer(PQsocket) := > GetProcedureAddress(Postgres3LibraryHandle,'PQsocket'); > pointer(PQbackendPID) := > GetProcedureAddress(Postgres3LibraryHandle,'PQbackendPID'); > pointer(PQclientEncoding) := > GetProcedureAddress(Postgres3LibraryHandle,'PQclientEncoding'); > pointer(PQsetClientEncoding) := > GetProcedureAddress(Postgres3LibraryHandle,'PQsetClientEncoding'); > {$ifdef USE_SSL} > pointer(PQgetssl) := > GetProcedureAddress(Postgres3LibraryHandle,'PQgetssl'); > {$endif} > pointer(PQsetErrorVerbosity) := > GetProcedureAddress(Postgres3LibraryHandle,'PQsetErrorVerbosity'); > pointer(PQtrace) := GetProcedureAddress(Postgres3LibraryHandle,'PQtrace'); > pointer(PQuntrace) := > GetProcedureAddress(Postgres3LibraryHandle,'PQuntrace'); > pointer(PQsetNoticeReceiver) := > GetProcedureAddress(Postgres3LibraryHandle,'PQsetNoticeReceiver'); > pointer(PQsetNoticeProcessor) := > GetProcedureAddress(Postgres3LibraryHandle,'PQsetNoticeProcessor'); > pointer(PQexec) := GetProcedureAddress(Postgres3LibraryHandle,'PQexec'); > pointer(PQexecParams) := > GetProcedureAddress(Postgres3LibraryHandle,'PQexecParams'); > pointer(PQexecPrepared) := > GetProcedureAddress(Postgres3LibraryHandle,'PQexecPrepared'); > pointer(PQPrepare) := > GetProcedureAddress(Postgres3LibraryHandle,'PQprepare'); > pointer(PQsendQuery) := > GetProcedureAddress(Postgres3LibraryHandle,'PQsendQuery'); > pointer(PQsendQueryParams) := > GetProcedureAddress(Postgres3LibraryHandle,'PQsendQueryParams'); > pointer(PQsendQueryPrepared) := > GetProcedureAddress(Postgres3LibraryHandle,'PQsendQueryPrepared'); > pointer(PQgetResult) := > GetProcedureAddress(Postgres3LibraryHandle,'PQgetResult'); > pointer(PQisBusy) := > GetProcedureAddress(Postgres3LibraryHandle,'PQisBusy'); > pointer(PQconsumeInput) := > GetProcedureAddress(Postgres3LibraryHandle,'PQconsumeInput'); > pointer(PQnotifies) := > GetProcedureAddress(Postgres3LibraryHandle,'PQnotifies'); > pointer(PQputCopyData) := > GetProcedureAddress(Postgres3LibraryHandle,'PQputCopyData'); > pointer(PQputCopyEnd) := > GetProcedureAddress(Postgres3LibraryHandle,'PQputCopyEnd'); > pointer(PQgetCopyData) := > GetProcedureAddress(Postgres3LibraryHandle,'PQgetCopyData'); > pointer(PQgetline) := > GetProcedureAddress(Postgres3LibraryHandle,'PQgetline'); > pointer(PQputline) := > GetProcedureAddress(Postgres3LibraryHandle,'PQputline'); > pointer(PQgetlineAsync) := > GetProcedureAddress(Postgres3LibraryHandle,'PQgetlineAsync'); > pointer(PQputnbytes) := > GetProcedureAddress(Postgres3LibraryHandle,'PQputnbytes'); > pointer(PQendcopy) := > GetProcedureAddress(Postgres3LibraryHandle,'PQendcopy'); > pointer(PQsetnonblocking) := > GetProcedureAddress(Postgres3LibraryHandle,'PQsetnonblocking'); > pointer(PQisnonblocking) := > GetProcedureAddress(Postgres3LibraryHandle,'PQisnonblocking'); > pointer(PQflush) := GetProcedureAddress(Postgres3LibraryHandle,'PQflush'); > pointer(PQfn) := GetProcedureAddress(Postgres3LibraryHandle,'PQfn'); > pointer(PQresultStatus) := > GetProcedureAddress(Postgres3LibraryHandle,'PQresultStatus'); > pointer(PQresStatus) := > GetProcedureAddress(Postgres3LibraryHandle,'PQresStatus'); > pointer(PQresultErrorMessage) := > GetProcedureAddress(Postgres3LibraryHandle,'PQresultErrorMessage'); > pointer(PQresultErrorField) := > GetProcedureAddress(Postgres3LibraryHandle,'PQresultErrorField'); > pointer(PQntuples) := > GetProcedureAddress(Postgres3LibraryHandle,'PQntuples'); > pointer(PQnfields) := > GetProcedureAddress(Postgres3LibraryHandle,'PQnfields'); > pointer(PQbinaryTuples) := > GetProcedureAddress(Postgres3LibraryHandle,'PQbinaryTuples'); > pointer(PQfname) := GetProcedureAddress(Postgres3LibraryHandle,'PQfname'); > pointer(PQfnumber) := > GetProcedureAddress(Postgres3LibraryHandle,'PQfnumber'); > pointer(PQftable) := > GetProcedureAddress(Postgres3LibraryHandle,'PQftable'); > pointer(PQftablecol) := > GetProcedureAddress(Postgres3LibraryHandle,'PQftablecol'); > pointer(PQfformat) := > GetProcedureAddress(Postgres3LibraryHandle,'PQfformat'); > pointer(PQftype) := GetProcedureAddress(Postgres3LibraryHandle,'PQftype'); > pointer(PQfsize) := GetProcedureAddress(Postgres3LibraryHandle,'PQfsize'); > pointer(PQfmod) := GetProcedureAddress(Postgres3LibraryHandle,'PQfmod'); > pointer(PQcmdStatus) := > GetProcedureAddress(Postgres3LibraryHandle,'PQcmdStatus'); > pointer(PQoidStatus) := > GetProcedureAddress(Postgres3LibraryHandle,'PQoidStatus'); > pointer(PQoidValue) := > GetProcedureAddress(Postgres3LibraryHandle,'PQoidValue'); > pointer(PQcmdTuples) := > GetProcedureAddress(Postgres3LibraryHandle,'PQcmdTuples'); > pointer(PQgetvalue) := > GetProcedureAddress(Postgres3LibraryHandle,'PQgetvalue'); > pointer(PQgetlength) := > GetProcedureAddress(Postgres3LibraryHandle,'PQgetlength'); > pointer(PQgetisnull) := > GetProcedureAddress(Postgres3LibraryHandle,'PQgetisnull'); > pointer(PQclear) := GetProcedureAddress(Postgres3LibraryHandle,'PQclear'); > pointer(PQfreemem) := > GetProcedureAddress(Postgres3LibraryHandle,'PQfreemem'); > pointer(PQmakeEmptyPGresult) := > GetProcedureAddress(Postgres3LibraryHandle,'PQmakeEmptyPGresult'); > pointer(PQescapeString) := > GetProcedureAddress(Postgres3LibraryHandle,'PQescapeString'); > pointer(PQescapeBytea) := > GetProcedureAddress(Postgres3LibraryHandle,'PQescapeBytea'); > pointer(PQunescapeBytea) := > GetProcedureAddress(Postgres3LibraryHandle,'PQunescapeBytea'); > pointer(PQprint) := GetProcedureAddress(Postgres3LibraryHandle,'PQprint'); > pointer(PQdisplayTuples) := > GetProcedureAddress(Postgres3LibraryHandle,'PQdisplayTuples'); > pointer(PQprintTuples) := > GetProcedureAddress(Postgres3LibraryHandle,'PQprintTuples'); > pointer(lo_open) := GetProcedureAddress(Postgres3LibraryHandle,'lo_open'); > pointer(lo_close) := > GetProcedureAddress(Postgres3LibraryHandle,'lo_close'); > pointer(lo_read) := GetProcedureAddress(Postgres3LibraryHandle,'lo_read'); > pointer(lo_write) := > GetProcedureAddress(Postgres3LibraryHandle,'lo_write'); > pointer(lo_lseek) := > GetProcedureAddress(Postgres3LibraryHandle,'lo_lseek'); > pointer(lo_creat) := > GetProcedureAddress(Postgres3LibraryHandle,'lo_creat'); > pointer(lo_tell) := GetProcedureAddress(Postgres3LibraryHandle,'lo_tell'); > pointer(lo_unlink) := > GetProcedureAddress(Postgres3LibraryHandle,'lo_unlink'); > pointer(lo_import) := > GetProcedureAddress(Postgres3LibraryHandle,'lo_import'); > pointer(lo_export) := > GetProcedureAddress(Postgres3LibraryHandle,'lo_export'); > pointer(PQmblen) := GetProcedureAddress(Postgres3LibraryHandle,'PQmblen'); > pointer(PQenv2encoding) := > GetProcedureAddress(Postgres3LibraryHandle,'PQenv2encoding'); > > InitialiseDllist; > end; > end; > > On Mon, Nov 21, 2011 at 12:28 PM, Joost van der Sluis <[email protected]> wrote: >> On Mon, 2011-11-21 at 12:13 -0500, Tom Russell wrote: >>> I tried adding the unti to my uses as well as the snippet you gave but >>> it says its the wrong number of parameters? I dont see where that even >>> accepts any really. >>> >>> Or Im confused? >> >> Could be due to the different fpc-version. Ctrl-click on it to find out >> how it is defined. >> >> Joost. >> -- >> My Lazarus blog: http://www.lazarussupport.com/lazarus/weblog >> >> >> -- >> _______________________________________________ >> Lazarus mailing list >> [email protected] >> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus >> > -- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
