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.