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

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.

Re: Lazarus, Linux, Firebird und FlameRobin

Beitragvon mse » 19. Jul 2017, 17:55 Re: Lazarus, Linux, Firebird und FlameRobin

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'?
mse
 
Beiträge: 1794
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.2,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon kralle » 20. Jul 2017, 11:13 Re: Lazarus, Linux, Firebird und FlameRobin

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
Linux Mint 18.2 und Lazarus 1.9 (FPC-Version: 3.0.2)
Windows 8.1 Pro Lazarus 1.6 + Delphi XE7SP1
kralle
 
Beiträge: 483
Registriert: 17. Mär 2010, 14:50
Wohnort: Bremerhaven
OS, Lazarus, FPC: Linux Mint 18.2 - Lazarus 1.9 - FPC 3.0.2 -Win8.1 & XE7Pro | 
CPU-Target: 64Bit
Nach oben

Beitragvon mse » 20. Jul 2017, 11:28 Re: Lazarus, Linux, Firebird und FlameRobin

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.
;-)
mse
 
Beiträge: 1794
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.2,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon kralle » 20. Jul 2017, 12:13 Re: Lazarus, Linux, Firebird und FlameRobiin

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
Linux Mint 18.2 und Lazarus 1.9 (FPC-Version: 3.0.2)
Windows 8.1 Pro Lazarus 1.6 + Delphi XE7SP1
kralle
 
Beiträge: 483
Registriert: 17. Mär 2010, 14:50
Wohnort: Bremerhaven
OS, Lazarus, FPC: Linux Mint 18.2 - Lazarus 1.9 - FPC 3.0.2 -Win8.1 & XE7Pro | 
CPU-Target: 64Bit
Nach oben

Beitragvon kralle » 20. Jul 2017, 12:15 Re: Lazarus, Linux, Firebird und FlameRobin

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
Linux Mint 18.2 und Lazarus 1.9 (FPC-Version: 3.0.2)
Windows 8.1 Pro Lazarus 1.6 + Delphi XE7SP1
kralle
 
Beiträge: 483
Registriert: 17. Mär 2010, 14:50
Wohnort: Bremerhaven
OS, Lazarus, FPC: Linux Mint 18.2 - Lazarus 1.9 - FPC 3.0.2 -Win8.1 & XE7Pro | 
CPU-Target: 64Bit
Nach oben

Beitragvon mse » 20. Jul 2017, 13:44 Re: Lazarus, Linux, Firebird und FlameRobiin

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'.
mse
 
Beiträge: 1794
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.2,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon kralle » 20. Jul 2017, 14:30 Re: Lazarus, Linux, Firebird und FlameRobiin

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
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Linux Mint 18.2 und Lazarus 1.9 (FPC-Version: 3.0.2)
Windows 8.1 Pro Lazarus 1.6 + Delphi XE7SP1
kralle
 
Beiträge: 483
Registriert: 17. Mär 2010, 14:50
Wohnort: Bremerhaven
OS, Lazarus, FPC: Linux Mint 18.2 - Lazarus 1.9 - FPC 3.0.2 -Win8.1 & XE7Pro | 
CPU-Target: 64Bit
Nach oben

Beitragvon kralle » 20. Jul 2017, 14:45 Re: Lazarus, Linux, Firebird und FlameRobiin

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
Linux Mint 18.2 und Lazarus 1.9 (FPC-Version: 3.0.2)
Windows 8.1 Pro Lazarus 1.6 + Delphi XE7SP1
kralle
 
Beiträge: 483
Registriert: 17. Mär 2010, 14:50
Wohnort: Bremerhaven
OS, Lazarus, FPC: Linux Mint 18.2 - Lazarus 1.9 - FPC 3.0.2 -Win8.1 & XE7Pro | 
CPU-Target: 64Bit
Nach oben

Beitragvon mse » 20. Jul 2017, 15:14 Re: Lazarus, Linux, Firebird und FlameRobiin

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.
mse
 
Beiträge: 1794
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.2,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon kralle » 20. Jul 2017, 16:06 Re: Lazarus, Linux, Firebird und FlameRobiin

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.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Linux Mint 18.2 und Lazarus 1.9 (FPC-Version: 3.0.2)
Windows 8.1 Pro Lazarus 1.6 + Delphi XE7SP1
kralle
 
Beiträge: 483
Registriert: 17. Mär 2010, 14:50
Wohnort: Bremerhaven
OS, Lazarus, FPC: Linux Mint 18.2 - Lazarus 1.9 - FPC 3.0.2 -Win8.1 & XE7Pro | 
CPU-Target: 64Bit
Nach oben

Beitragvon mse » 20. Jul 2017, 17:51 Re: Lazarus, Linux, Firebird und FlameRobiin

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?
mse
 
Beiträge: 1794
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.2,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon kralle » 20. Jul 2017, 18:03 Re: Lazarus, Linux, Firebird und FlameRobiin

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
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Linux Mint 18.2 und Lazarus 1.9 (FPC-Version: 3.0.2)
Windows 8.1 Pro Lazarus 1.6 + Delphi XE7SP1
kralle
 
Beiträge: 483
Registriert: 17. Mär 2010, 14:50
Wohnort: Bremerhaven
OS, Lazarus, FPC: Linux Mint 18.2 - Lazarus 1.9 - FPC 3.0.2 -Win8.1 & XE7Pro | 
CPU-Target: 64Bit
Nach oben

Beitragvon kralle » 20. Jul 2017, 18:03 Re: Lazarus, Linux, Firebird und FlameRobin

hier das letzte Bild .

Gruß Heiko

plus 2 Bilder
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Linux Mint 18.2 und Lazarus 1.9 (FPC-Version: 3.0.2)
Windows 8.1 Pro Lazarus 1.6 + Delphi XE7SP1
kralle
 
Beiträge: 483
Registriert: 17. Mär 2010, 14:50
Wohnort: Bremerhaven
OS, Lazarus, FPC: Linux Mint 18.2 - Lazarus 1.9 - FPC 3.0.2 -Win8.1 & XE7Pro | 
CPU-Target: 64Bit
Nach oben

Beitragvon mse » 20. Jul 2017, 19:47 Re: Lazarus, Linux, Firebird und FlameRobin

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'.
mse
 
Beiträge: 1794
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.2,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon kralle » 20. Jul 2017, 20:52 Re: Lazarus, Linux, Firebird und FlameRobin

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
Linux Mint 18.2 und Lazarus 1.9 (FPC-Version: 3.0.2)
Windows 8.1 Pro Lazarus 1.6 + Delphi XE7SP1
kralle
 
Beiträge: 483
Registriert: 17. Mär 2010, 14:50
Wohnort: Bremerhaven
OS, Lazarus, FPC: Linux Mint 18.2 - Lazarus 1.9 - FPC 3.0.2 -Win8.1 & XE7Pro | 
CPU-Target: 64Bit
Nach oben

• Themenende •
Vorherige

Zurück zu Datenbanken



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

cron
porpoises-institution
accuracy-worried