Zitat von
clock50:
Ich benutze keine Datasource, ich lade alles in listen und lasse es über Listview anzeigen.
Warum eigentlich nicht? Ist das zu einfach?
Mir fällt auserdem auf, dass du dein Datenmodul und das Formular auf sehr ungünstige Weise
vermischt.
In procedure TDM.F2Anzeige(ID : Integer) kennt das Datenmodul das Formular (das ist schlecht)
und das Fomular kennt das Datenmodul (das ist in Ordnung).
Ehrlich gesagt ist die Procedure eine einzige Katastrophe. Nicht mal das Ergebnis von Locate wird überprüft.
Wenn du z.B. TForm2.JvEdit5 einen sinnvollen Namen geben möchtest, musst du gleich an zwei Stellen ändern.
Ich schlage vor, TDatasource und TEdit Objekte zu benützen.
Dadurch wird die Kopplung zwischen Formular und Datenmodul automatisch verringert und ausserdem ist Funktionalität für die du stundenlang programmieren müsstest schon vorhanden.
Um eine neue Kundennummer zu ermitteln, brauchst du nicht alle Daten abrufen und diese dann auch noch sortieren.
Delphi-Quellcode:
function TDM.Kundeneu : integer;
begin
Abfrage.SQL.Add('SELECT MAX(KNR)+1 FROM KUNDEN');
Abfrage.Open;
result := Abfrage.Fields[0].AsInteger;
Abfrage.Close;
end;
Ansonsten würde ich keinerlei Transactions benützen, sondern alles
so einfach wie möglich halten.
Transactions werden erst dann wichtig, wenn z.B. mehrere Arbeitsstationen auf die gleichen Daten zugreifen oder Änderungen an mehreren Tabellen ganz oder gar nicht vorgenommen werden müssen.