Ich sehe da noch einige Fehler in dem Code.
Delphi-Quellcode:
...
Close;
// Connection := FFBConnection;
CommandText := 'SELECT * FROM '+_Bereich+'_LEHRG';
Open;
// überflüssiger Code, da durch "Open" die Datenmenge automatisch auf aktiv gesetzt wird
// *********
if not Active then
Active := True;
// *********
Nachdem der Tabellenname schon vom Bereich abhängt, ist es
eine ganze schlechte Idee auch noch die Feldnamen vom Bereich abhängig zu machen:
Delphi-Quellcode:
...
CommandText := 'SELECT * FROM '+_Bereich+'_LEHRG';
Open;
...
// Feldnamen sollten für alle Tabellen gleich sein!
FieldByName(_Bereich+'_ID').Value := GetMaxID(_Bereich+'_LEHRG', Form2.SQLConnection);
FieldByName(_Bereich+'_INDEX').Value := _ID;
Man sollte auch nicht Komponenten auf einem Formular mit FreeAndNil() freigeben:
Delphi-Quellcode:
...
VZqLehrgänge := Form2.ClientDataSet1;
...
// nicht gut - beim nächsten Mal ist das ClientDataSet weg und dann gibt es eine Zugriffsverletzung
FreeAndNil(VZqTemp);
FreeAndNil(VZqLehrgänge);