[gelöst] Zeos 7.2 -> 7.3 Unterschied PostgreSQL

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

[gelöst] Zeos 7.2 -> 7.3 Unterschied PostgreSQL

Beitrag von Michl »

Servus,

ich habe hier ein größeres Projekt was einige externe Packages nutzt, sodaß ich mich bisher geziert habe es auf FPC 3.2.0 umzustellen. Nun habe ich es aber in Angriff genommen und kann es endlich kompilieren und starten.

Im Eifer des Gefechts wollte ich eine aktuelle Version von Zeos nutzen. Das Programm startet und läuft einwandfrei mit Zeos 7.2, um eine PostgreSQL 10 Datenbank anzusprechen. So sieht vereinfacht der Code aus:

Code: Alles auswählen

    Connection.Database        := ###;
    Connection.LibraryLocation := 'C:\Program Files\PostgreSQL\10\bin\libpq.dll'; 
    Connection.Password        := ###;
    Connection.Properties.Text := 'Undefined_Varchar_AsString_Length=255';
    Connection.Protocol        := 'postgresql-9';  
    Connection.User            := ###;
    Connection.Connect;        
Versuche ich Zeos 7.3, 8.0 oder Trunk (mit der selben IDE), kommt die Meldung
None of the dynamic libraries can be found or is not loadable: libpq.dll! Use TZConnection.LibraryLocation if the location is invalid.
Weiß jemand, was sich da geändert hat oder was ich ändern/beachten muss?

PS: Alles 64bit (PostgreSQL, FPC 3.2.0, Lazarus Trunk, Windows 7).
Zuletzt geändert von Michl am Mi 30. Dez 2020, 13:48, insgesamt 1-mal geändert.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6208
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Zeos 7.2 -> 7.3

Beitrag von af0815 »

Mir Fallen da nur zwei Themen ein

Leerzeichen im Pfad (ev. mit Hochkommas zu bekämpfen)
Bitness kontrollieren

Bei solchen Sachen mache ich ein schnelles Testprogramm.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Zeos 7.2 -> 7.3

Beitrag von Michl »

Danke erstmal fürs mitdenken!!

Das mit den Hochkommas hatte ich schon erfolglos probiert. Ebenfalls "postgresql-10" als Protocol zu setzen. Leider habe ich dazu keine Doku gefunden.

32/64Bit kann ich eigentlich ausschließen, da ich hier alles auf 64bit habe. Wie geschrieben läuft das Program mit Zeos 7.2. Verändere ich den Pfad von Zeos 7.2, sodaß Lazarus dieses Package tatsächlich nicht mehr findet und kompiliere ich mit der gleichen IDE Zeos 7.3, kommt es zu o.g. Fehlermeldung.

Evtl. liest ja zufällig EgonHugeist hier mit und weiß gleich Bescheid.

Ansonsten werde ich demnächst mal auf die Suche nach dem Problem gehen.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1435
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Zeos 7.2 -> 7.3

Beitrag von fliegermichl »

Was steht denn in ZConnection.LibraryLocation?

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Zeos 7.2 -> 7.3

Beitrag von Michl »

fliegermichl hat geschrieben:
Di 29. Dez 2020, 13:12
Was steht denn in ZConnection.LibraryLocation?
So wie im ersten Post geschrieben:

Code: Alles auswählen

Connection.LibraryLocation := 'C:\Program Files\PostgreSQL\10\bin\libpq.dll';
Habe versucht die Revision, die die Änderung bringt zu lokalisieren. Leider wurde der Branch testing-7.3 zu 8.0-patches umbenannt sodaß ich nur Trunk testen konnte.

Bei Zeos Trunk kommt die Änderung in Revision 4474 (Merged revision(s) 4437-4466 from branches/testing-7.3). Wenn ich mir den Log bzw. die entsprechenden Changes als diff anschaue, dann ist vermutlich Revision 4439 (plaindriver revolution for PostgreSQL) die Ursache. Diese Revision ist vom 28.03.2018. D.h., wenn ein Fehler bei Zeos vorliegen würde, wäre das bestimmt schon jemanden aufgefallen.

Also nicht sauer sein, ich habe jetzt mal im ZEOS-Forum nachgefragt: https://zeoslib.sourceforge.io/viewtopi ... 35#p161375

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

marsupilami
Beiträge: 1
Registriert: Mi 30. Dez 2020, 11:33

Re: Zeos 7.2 -> 7.3

Beitrag von marsupilami »

Hallo Michl,
Michl hat geschrieben:
Di 29. Dez 2020, 00:02

Code: Alles auswählen

    Connection.Protocol        := 'postgresql-9';  
Wir haben während der Entwickling von Zeos 7.3 beschlossen, dass wir die Versionsnummern bei den Protokollen entfernen. Du musst also für Zeos 7.3 aus 'postgresql-9' 'postgresql' machen. Das haben wir in den Release Notes für Zeos 7.2 auf der letzten Seite, wo es um die zukünftige Entwicklung geht dokumentiert ;) :
Release Notes-7.2.4-stable.pdf hat geschrieben:Protocols with version numbers will not be used in Zeos 7.3 anymore(i.e. firebird-2.5 will become firebird). Please migrate.
Um Kompatibilität bewahren zu können, haben wir die Protokollnamen ohne Versionsnummern in Zeos 7.2 eingeführt und darum gebeten, umzustellen.

Die Fehlermedung, die du bekommen hast, passt allerdings nicht dazu. Da könnte noch ein anderer Fehler sein.

Grüße,

Jan

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Zeos 7.2 -> 7.3

Beitrag von Michl »

Hey super, das ist es! Das Minimalbsp. und meine eigentliche Anwendung starten nun problemlos. Danke! Werde nun alles eingehend testen.

Die Fehlermeldung kann falsch sein, da ich einiges getestet hatte und evtl. dann eine erwischt habe, die nicht zu dem Minimalbeispiel passt. :wink:

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Antworten