vielleicht kann mir mal wieder jemand über die Straße helfen.
Eigentlich will ich etwas ganz Einfaches machen, nämlich mit den in Lazarus vorgesehen Komponenten auf eine SQL-Datenbank zugreifen und dort Einträge holen, ändern und löschen.
Den ersten Teil des Weges habe ich überraschend problemlos hinbekommen, ich kann nämlich mit meiner lokalen MariaDB reden

(Dazu habe ich die Datenbank (https://mariadb.com/downloads/) heruntergeladen und installiert, die in der Installation vorhandene "libmariadb.dll" (in dann "libmysql.dll") umbenannt und in das Lazarus-Verzeichnis und zusätzlich in das Projektverzeichnis kopiert. In Lazarus auf einem Formular die Komponenten TMySQL57Connection, TSQLQuery, TDataSource und TSQLTransaction platziert. In der MySQL57Connection1 den Schalter SkipLibraryCheck = True gesetzt, kann nun die Verbindung aktiviert werden. Im SQLQuery1.Database = MySQL57Connection1 und SQLQuery1.Transaction = SQLTransaction1, zusätzlich die SQLQuery1.Options = [sqoAutoApplyUpdates, sqoAutoCommit]. In TDataSource DataSource1.DataSet = SQLQuery1 und in TSQLTransaction SQLTransaction1.Database = MySQL57Connection1. Zur Ansicht habe ich noch ein TDBEdit DBEdit1.DataSource = DataSource1 und einen TDBNavigator DBNavigator1.DataSource = DataSource1 eingefügt.).
Mit diesem Setup kann ich sowohl in der IDE als auch im laufenden Programm durch alle Datensätze laufen und diese ansehen. Sobald ich aber einen Datensatz ändere, wird die Datenbankverbindung geschlossen und der DBNavigator ausgegraut. Öffnet man die Datenbank wieder, sieht man, dass die Änderung übernommen wurde. Entfernt man eine der Optionen (sqoAutoApplyUpdates, sqoAutoCommit) wird nichts mehr gespeichert.
Fragen.
1.) wie soll das eigentlich funktionieren?
2.) Kann ich das Speichern der Änderungen manuell anstoßen?
Das Projekt habe ich beigefügt. Die angesprochene Datenbank ist sehr einfach eine Tabelle mit einem Integer ID- und einem VarChar Content-Feld. An den Benutzerrechten kann es eigentlich nicht liegen, die habe ich versuchsweise auf "Alles ist erlaubt" gestellt, ohne Verhaltensänderung.
Liebe Grüße
Ekkehard