Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

AW: clientdataset datenmenge weder im editier noch im einfügemodus

  Alt 15. Nov 2011, 16:56
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);
Andreas
  Mit Zitat antworten Zitat