I tried placing my dylib file in the directory from which my app is and it still does not find the file. There must be something simple i am missing as I cannot figure out where the PQConnection is looking for this file either.
On Mon, Nov 21, 2011 at 4:26 PM, Tom Russell <[email protected]> wrote: > 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
