[Lazarus] Postgres Cannot connect

Tom Russell tsrdatatech at gmail.com
Mon Nov 21 22:26:51 CET 2011


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 <tsrdatatech at gmail.com> 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 <joost at cnoc.nl> 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
>> Lazarus at lists.lazarus.freepascal.org
>> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
>>
>




More information about the Lazarus mailing list