ich bin neu mit Lazarus, und spiele gerade ein wenig mit DB (mySQL via XAMPP) herum. Was in VB recht einfach war, wirft bei Lazarus ein paar Fragen auf. Und zwar:
Verbinden mit der DB kein Problem, Daten auslesen auch nicht. Aber wenn ich mit
Code: Alles auswählen
procedure TForm1.ModelNeuClick(Sender: TObject);
var
input: String;
begin
input := inputbox('Neues Modell','Namen eingeben','VW T4');
sqlquery.Close; // Letzte Verbindung schließen
sqlquery.sql.clear; // Letzter Befehl löschen
sqlquery.SQL.add('select * from models'); // Neue Tabelle öffnen
sqlquery.Open;
sqlquery.SQL.text := 'insert into models (model,checked) values ('''+input+''', 0)';
sqlquery.ExecSQL ;
end;
Einen neuen Datensatz in die Tabelle schreibe, kann ich ihn mit:
Code: Alles auswählen
procedure TForm1.ListboxFuellen();
begin
checklistbox1.clear;
sqlquery.Close; // Letzte Verbindung schließen
sqlquery.sql.clear; // Letzter Befehl löschen
sqlquery.SQL.add ('SELECT * FROM models ORDER BY model');
// Neue Anfrage
sqlquery.Open; // Anfrage schicken
// Alle SQL Befehle so schicken
while not sqlquery.EOF do
begin
checklistbox1.Items.Add(sqlquery.fieldbyname('model').AsString);
// .AsString nicht vergessen
sqlquery.Next; // Nächster Eintrag NICHT VERGESSEN :-)
end;
sqlquery.close;
end;
Auch wieder auslesen. Soweit sogut. Aber wenn ich die App schließe, dann sind auch die neu hinzugefügten Daten wieder weg.
Komischerweise sehe ich in phpMyAdmin während der Laufzeit des Programms unter "Datensätze" auch die Anzahl der in der Tabelle befindlichen Datensätze richtig (~7 z.B.). Klicke ich jedoch auf "Anzeigen" wird mir nichts angezeigt. Dennoch kann ich die Daten auslesen, und auch verändern. Wenn ich das Programm schließe werden mir wieder ~0 Datensätze angezeigt, und alles ist weg.
Zunächst dachte ich, ich muß das Beenden des Programms abfangen, und die DB sauber per Programm schließen, aber das hat auch nichts gebracht. Irgendwie scheint es mir als würde sowas wie eine "Schattentabelle" existieren, die zwar Daten enthält, aber nur solange das erstellende Programm läuft. Ist das Programm beendet, ist auch die Schattentabelle weg Was habe ich übersehen? Ich doktere jetzt schon seit Stunden rum, i-net suche hat auch nix gebracht. Liegts an meinem Proggy, oder an irgendeiner Einstellung bei MySQL die ich falsch gesetzt habe?
Danke für eure Geduld,
der hello