[Lazarus] Lazarus - Cant compile ZeosDBO

Luca Olivetti luca at wetron.es
Mon Sep 20 09:38:23 CEST 2021


El 19/9/21 a les 23:39, Terry A. Haimann via lazarus ha escrit:
> I just bought a new laptop and tring to set up Lazarus.  The problem is
> installing ZeosDBO into Lazarus.

This is the version of zeosdbo I have installed, both under windows and 
linux (I don't know if I should use any later or previous version, this 
one seems to be working fine for my projects):

$ svn info
Path: .
Working Copy Root Path: /home/luca/Datos/lazextra/zeosdbo/7.2-patches
URL: https://svn.code.sf.net/p/zeoslib/code-0/branches/7.2-patches
Relative URL: ^/branches/7.2-patches
Repository Root: https://svn.code.sf.net/p/zeoslib/code-0
Repository UUID: d681b350-854c-439c-a81d-c0ce20710203
Revision: 5601
Node Kind: directory
Schedule: normal
Last Changed Author: egonhugeist
Last Changed Rev: 5597
Last Changed Date: 2019-04-18 21:29:12 +0200 (dj., 18 d’abr. 2019)


I have a local patch applied but it's only for postgresql

$ svn diff
Index: src/dbc/ZDbcPostgreSql.pas
===================================================================
--- src/dbc/ZDbcPostgreSql.pas  (revision 5601)
+++ src/dbc/ZDbcPostgreSql.pas  (working copy)
@@ -566,6 +566,12 @@
    if Info.Values['sslrootcert'] <> '' then 
AddParamToResult('sslrootcert', Info.Values['sslrootcert']);
    if Info.Values['sslcrl'] <> '' then AddParamToResult('sslcrl', 
Info.Values['sslcrl']);

+  { tcp keepalives }
+  if Info.Values['keepalives'] <> '' then 
AddParamToResult('keepalives',Info.Values['keepalives']);
+  if Info.Values['keepalives_idle'] <> '' then 
AddParamToResult('keepalives_idle',Info.Values['keepalives_idle']);
+  if Info.Values['keepalives_interval'] <> '' then 
AddParamToResult('keepalives_interval',Info.Values['keepalives_interval']);
+  if Info.Values['keepalives_count'] <> '' then 
AddParamToResult('keepalives_count',Info.Values['keepalives_count']);
+
    { Sets a connection timeout. }
    ConnectTimeout := StrToIntDef(Info.Values['timeout'], -1);
    if ConnectTimeout >= 0 then
@@ -1083,7 +1089,7 @@
          DriverManager.LogMessage(lcTransaction, ConSettings^.Protocol, 
cCommit);
        PError := 
FPlainDriver.GetResultErrorField(QueryHandle,PG_DIAG_SQLSTATE);
        //transaction aborted and in postre zombi status? If so a 
rollback is required
-      if (ZSysUtils.ZMemLComp(PError, current_transaction_is_aborted, 
5) = 0) then begin
+      if (PError<>nil) and (Perror^ <> #0) and 
(ZSysUtils.ZMemLComp(PError, current_transaction_is_aborted, 5) = 0) 
then begin
          FPlainDriver.PQclear(QueryHandle);
          QueryHandle := FPlainDriver.ExecuteQuery(FHandle, 
Pointer(cRollback));
        end;


Bye
-- 
Luca Olivetti
Wetron Automation Technology http://www.wetron.es/
Tel. +34 93 5883004 (Ext.3010)  Fax +34 93 5883007


More information about the lazarus mailing list