[gelöst] Lazarus, Linux, Firebird und FlameRobin

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Lazarus, Linux, Firebird und FlameRobin

Beitrag von mse »

kralle hat geschrieben:Nachtrag:

Code: Alles auswählen

isql-fb

Code: Alles auswählen

connect  "/var/lib/firebird/3.0/data/employee.fdb  "  user  'SYSDBA'  password  'SYSDBApassword';

funktionieren. Also der Server läuft und kennt die Datenbank.

Code: Alles auswählen

 
/var/lib/firebird/3.0/data/employee.fdb
 

benutzt nicht den Server sondern den direkten Zugriff via plugins/libEngine12.so (embedded).
Für TCP/IP gilt z.B.

Code: Alles auswählen

 
localhost:/var/lib/firebird/3.0/data/employee.fdb
 

https://firebirdsql.org/file/documentat ... bases.html
Wer ist der Besitzer von /var/lib/firebird/3.0/data/employee.fdb?
Was zeigt Flamerobin 'Server'-'Retrieve server version'?

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 990
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: Lazarus, Linux, Firebird und FlameRobin

Beitrag von kralle »

Moin,

mse hat geschrieben:benutzt nicht den Server sondern den direkten Zugriff via plugins/libEngine12.so (embedded).

???
mse hat geschrieben:Für TCP/IP gilt z.B.

Code: Alles auswählen

 
localhost:/var/lib/firebird/3.0/data/employee.fdb
 

https://firebirdsql.org/file/documentat ... bases.html

Kein Schreibzugriff auf die Datei. :(
mse hat geschrieben:Wer ist der Besitzer von /var/lib/firebird/3.0/data/employee.fdb?

Rechte technisch sieht es so aus:
employee.fdb
Eigentümer: firebird - Firebird Database Administrator
Gruppe: firebird
Zugriffsrechte: -rw -r- r--
mse hat geschrieben:Was zeigt Flamerobin 'Server'-'Retrieve server version'?

LI-V3.0.2.32703 Firebird 3.0

Ich habe jetzt eine "Step by Step"-Anleitung durch gearbeitet, aber egal welche Anleitung, welchen Tipp ich anwende, keine Änderung landet in der Datenbank.

Gruß Heiko
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Lazarus, Linux, Firebird und FlameRobin

Beitrag von mse »

Aha, jetzt!
Schau mal die Fehlermeldungen genauer an, du öffnest nicht
/var/lib/firebird/3.0/data/employee.fdb
sondern
/home/laz-user/Dokumente/employee.fdb.
;-)

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 990
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: Lazarus, Linux, Firebird und FlameRobiin

Beitrag von kralle »

Moin,

mse hat geschrieben:Die Datei
/etc/systemd/system/firebird.service
muss existieren und etwa so aussehen:

Diese Datei gibt es bei mir nicht, obwohl Firebird läuft und ich per Terminalfenster Kommandos an die Datenbank schicken kann.

Gruß Heiko
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 990
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: Lazarus, Linux, Firebird und FlameRobin

Beitrag von kralle »

Moin,

mse hat geschrieben:Aha, jetzt!
Schau mal die Fehlermeldungen genauer an, du öffnest nicht
/var/lib/firebird/3.0/data/employee.fdb
sondern
/home/laz-user/Dokumente/employee.fdb.
;-)

Soory, und Du hast nicht gelesen, das die Pfade auf den Bildern falsch sind, ich "/var/lib/firebird/3.0/data/employee.fdb" aber auch ausprobiert habe,

Gruß Heiko
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Lazarus, Linux, Firebird und FlameRobiin

Beitrag von mse »

kralle hat geschrieben:
mse hat geschrieben:Die Datei
/etc/systemd/system/firebird.service
muss existieren und etwa so aussehen:

Diese Datei gibt es bei mir nicht, obwohl Firebird läuft und ich per Terminalfenster Kommandos an die Datenbank schicken kann.

Es gibt weitere Verzeichnisse wo firebird.service liegen kann. Das macht jede Linux Distribution wieder etwas anders. Es gibt auch Distributionen, welche nicht systemd verwenden. IIRC hast du Firebird mit "sudo systemctl stop <dieUNIT>" Firebird gestoppt, so dass ich stark annehme, dass bei dir systemd läuft.
Falls du Firebird aus den Firebird sourcen oder dem firebird tar.gz installierst (im ersten post hast du davon geschrieben), sollte firebird.service in /etc/systemd/system liegen. Fals du die Paketverwaltung der Distribution verwendest eher in /usr/lib/systemd/system.
Soory, und Du hast nicht gelesen, das die Pfade auf den Bildern falsch sind, ich "/var/lib/firebird/3.0/data/employee.fdb" aber auch ausprobiert habe,

Dann zeige bitte nochmal die richtige Flamerobin Fehlermeldung und die dazugehörende Flamerobin 'Server'-'Server registration info' und Flamerobin 'Database'-'Database registration info'.

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 990
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: Lazarus, Linux, Firebird und FlameRobiin

Beitrag von kralle »

Moin,

erstmal Danke, das Du mir immer noch Hilfst.

mse hat geschrieben:Dann zeige bitte nochmal die richtige Flamerobin Fehlermeldung und die dazugehörende Flamerobin 'Server'-'Server registration info' und Flamerobin 'Database'-'Database registration info'.


Also, unter FlameRobin gelang es mir nicht den Fehler erneut zu erzeugen.
Das erste Bild zeigt aber die Fehlermeldung meiner Lazarus-Anwendung, wennich versuche geänderte Daten zu speichern. Der Teil ab "Details:" ist relevant.
Unter FlameRobin, kann ich mir zwar den Inhalt der Datenbank anzeigen, aber nicht verändern.

Hier mal die Bilder:

Ich hoffe, die Infos helfen weiter.
Langsam komme ich mir vor als wennich der Erste User bin, der FlameRobin mit Firbird unter Linux nutzt und auch der Erste der Lazarus und Firebird nutzt.
Im "Linux Mint"-Forum konnte man mich auch nicht entscheident weiter bringen.

Darf FlameRobin vielleicht gar keine Daten verändern?

Gruß Heiko
Dateianhänge
Firebird005.jpg
Firebird004.jpg
Firebird003.jpg
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 990
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: Lazarus, Linux, Firebird und FlameRobiin

Beitrag von kralle »

Moin,
mse hat geschrieben:Es gibt weitere Verzeichnisse wo firebird.service liegen kann.

Eine Suche mit Nemo (mit erweiterten Rechten) nach der Datei, brachte keinen Treffer.

Gruß Heiko
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Lazarus, Linux, Firebird und FlameRobiin

Beitrag von mse »

kralle hat geschrieben:Also, unter FlameRobin gelang es mir nicht den Fehler erneut zu erzeugen.

Gut.
Das erste Bild zeigt aber die Fehlermeldung meiner Lazarus-Anwendung, wennich versuche geänderte Daten zu speichern. Der Teil ab "Details:" ist relevant.

Wie speicherst du die Daten? Bist du sicher, dass unter den Feldern die du speichern willst keine Readonly Felder sind?
Unter FlameRobin, kann ich mir zwar den Inhalt der Datenbank anzeigen, aber nicht verändern.

Wie machst du das? Was für Fehlermeldungen?
Langsam komme ich mir vor als wennich der Erste User bin, der FlameRobin mit Firbird unter Linux nutzt und auch der Erste der Lazarus und Firebird nutzt.

Kaum. ;-)
Ich mache das seit über 10 Jahren beinahe täglich. Allerdings nicht mit Lazarus sondern mit MSEide+MSEgui.
Darf FlameRobin vielleicht gar keine Daten verändern?

Doch, sofern die user Rechte und die Datenbankstruktur es zulassen.
Eine Suche mit Nemo (mit erweiterten Rechten) nach der Datei, brachte keinen Treffer.

Dann wird auf deinem System Firebird nicht mit systemd gestartet oder die unit-Datei hat einen anderen Namen, z.B. wird auch firebird-superserver.service benutzt. Da sollten dir die Mint Leute Auskunft geben können.

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 990
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: Lazarus, Linux, Firebird und FlameRobiin

Beitrag von kralle »

Moin,

mse hat geschrieben:Wie speicherst du die Daten? Bist du sicher, dass unter den Feldern die du speichern willst keine Readonly Felder sind?


Code: Alles auswählen

 
procedure TForm1.SaveChanges;
// Saves edits done by user, if any.
   begin
     If SQLQuery1.State in [dsEdit, dsInsert] then
        begin
          try
             if SQLTransaction1.Active then
             // Only if we are within a started transaction;
             // otherwise you get "Operation cannot be performed on an inactive dataset"
                begin
                     SQLQuery1.ApplyUpdates; //Pass user-generated changes back to database...
                     SQLTransaction1.Commit; //... and commit them using the transaction.
                     //SQLTransaction1.Active now is false
                     ShowMessage('Die Änderungen wurden übernommen.');
                end;
          except
            on E: EDatabaseError do
              begin
                MessageDlg('Fehler', 'Das Speichern der Änderungen hat nicht funktioniert. Details: ' +
                E.Message, mtError, [mbOK], 0);
              end;
          end;
        end;
   end;   
 


Wie machst du das? Was für Fehlermeldungen?

Ich gehe auf "views" Dann auf den Tabellennamen "Phone_List" und rufe im Context-Menü den Punkt "Browse Data" auf. In der Ansicht dann, sind alle Felder inaktiv (ausgegraut).

Ich mache das seit über 10 Jahren beinahe täglich. Allerdings nicht mit Lazarus sondern mit MSEide+MSEgui.

Das lässt ja darauf hoffen. das wir eine Lösung finden.

Doch, sofern die user Rechte und die Datenbankstruktur es zulassen.

Das gilt jetzt zu klären.
Die Felder in denen Ich per Programm Änderungen versucht habe, habe laut FlameRobin nur den Zusatz "not null".

Dann wird auf deinem System Firebird nicht mit systemd gestartet oder die unit-Datei hat einen anderen Namen, z.B. wird auch firebird-superserver.service benutzt. Da sollten dir die Mint Leute Auskunft geben können.

firebird-superserver.service wird auch nicht gefunden. Das ist echt verhext.

Gruß Heiko

Nachtrag: Das Bild zeigt wie die Connection-Komponente parametriert ist.
Und bei Datenbankname ist es egal ob nur der Dateiname oder auch der Pfad eingetragen ist . Beidesmal kommt die Verbindung zustande und beidesmal ist sie Schreibgeschützt.
Selbst die Dateiendung ".fdb" kann weggelassen werden.
Dateianhänge
IBConnection Parameter
IBConnection Parameter
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Lazarus, Linux, Firebird und FlameRobiin

Beitrag von mse »

kralle hat geschrieben:Moin,
Was steht in "SQLQuery1.SQL?
Wie machst du das? Was für Fehlermeldungen?

Ich gehe auf "views" Dann auf den Tabellennamen "Phone_List" und rufe im Context-Menü den Punkt "Browse Data" auf. In der Ansicht dann, sind alle Felder inaktiv (ausgegraut).

Kann man views überhaupt ändern? Was passiert in 'Tables'-"Phone_List"-'Browse Data'?
Was zeigt Flamerobin mit Rechtsklick auf 'Tables'-"Phone_List"->'Properties'-'Privilegs'? Welcher user macht den connect?

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 990
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: Lazarus, Linux, Firebird und FlameRobiin

Beitrag von kralle »

Moin,

mse hat geschrieben:Kann man views überhaupt ändern? Was passiert in 'Tables'-"Phone_List"-'Browse Data'?
Was zeigt Flamerobin mit Rechtsklick auf 'Tables'-"Phone_List"->'Properties'-'Privilegs'? Welcher user macht den connect?


Irgendwie habe ich diese Punkte nicht. Siehe Bilder.
Gruß Heiko
Dateianhänge
flamerobin_005.jpg
flamerobin_004.jpg
flamerobin_003.jpg
flamerobin_002.jpg
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 990
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: Lazarus, Linux, Firebird und FlameRobin

Beitrag von kralle »

hier das letzte Bild .

Gruß Heiko

plus 2 Bilder
Dateianhänge
flamerobin_007.jpg
FlameRobin007.jpg
flamerobin_006.jpg
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Lazarus, Linux, Firebird und FlameRobin

Beitrag von mse »

Du versuchst die view PHONE_LIST zu ändern, welche aus mehreren Tabellen als join zusammengesetzt ist. Das ist AFAIK nicht möglich. Versuche mal in Firebird die Tabelle "employee" zu ändern via 'Tables'-"employee"-RightClick-'Browse data'.

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 990
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: Lazarus, Linux, Firebird und FlameRobin

Beitrag von kralle »

Moin ,
mse hat geschrieben: Versuche mal in Firebird die Tabelle "employee" zu ändern via 'Tables'-"employee"-RightClick-'Browse data'.

Jupp , das funktioniert. Habe also nicht das richtige Wissen im Umgang mit "FlameRobin" gehabt.

Jetzt muss ich das nur noch aus Lazarus hinbekommen.
Ich probiere es Morgen mal.
Danke , für die Hilfe.

Da die Probleme durch eine Wissenslücke von mir entstanden sind, sehe ich das Thema an dieser Stelle als Erledigt an.
Was jetzt noch kommt, packe ich in ein neues Thema.

Schönen Abend noch.
Gruß Heiko
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

Antworten