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;
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;
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

Danke für eure Geduld,
der hello