Tdbf: Fehlermeldung bei Datensatz löschen

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
Adrian
Beiträge: 31
Registriert: Mo 12. Nov 2007, 12:41
OS, Lazarus, FPC: Winux (L 2.0.6 FPC 3.0.4)
CPU-Target: 64Bit

Tdbf: Fehlermeldung bei Datensatz löschen

Beitrag von Adrian »

Servus!

Für eine kleine Anwendung (unter Windows) möchte ich die Tdbf-Komponente verwenden.
Wenn ich gemäß nachfolgendem Programmauszug einen Datensatz löschen möchte, erhalte ich die Fehlermeldung

Project Bibliothek raised exception class 'EDatabaseError' with nessage:
CodiciDbf: Operation not allowed. dataset "CodiciDbf" is not in an edit or insert state.

Code: Alles auswählen

 
procedure TForm1.DBNavigator1Click(Sender: TObject; Button: TDBNavButtonType);
var
  Nummer : Integer;
begin
  case Button of
  ...
    nbDelete  : begin
                  CodiciDbf.Open;
                  CodiciDbf.Edit;
                  CodiciDbf.Delete;
                  CodiciDbf.Post;      //<- hier tritt der Fehler auf
                  CodiciDbf.Close;
                end;
  ...
  end;
end;
 
Ich meine, die Datenbank ist eindeutig in Edit-Modus. Das Navigieren funktioniert schon, also scheint es nicht daran zu liegen, daß die Datenbank komplett hinüber wäre.
Was mache ich denn falsch, welche Einstellung muß ich ändern?

Gruß,

Adrian

Kuster Peter
Beiträge: 205
Registriert: So 2. Dez 2007, 20:47
OS, Lazarus, FPC: Windows XP Lazarus immer neueste Version
CPU-Target: xxBit
Wohnort: Schweiz

Re: Tdbf: Fehlermeldung bei Datensatz löschen

Beitrag von Kuster Peter »

Soviel ich weis, muss kann man beim TDBF einstellen, dass die Datensätze nur markiert und nicht gelöscht werden. Gelöscht werden diese erst beim Packen, doch dafür muss die DB Exklusiv geöfnet sein. Wenn Du das so einstellst, dann brauchst Du den Post nicht. Oder Du machst es mit dem Post, doch dann muss die DB exklusiv geöffnet sein. Also kann mir keinen anderen Grund für die Fehlermeldung vorstellen.

Peter

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Tdbf: Fehlermeldung bei Datensatz löschen

Beitrag von Christian »

Du brauchst um einen Datensatz zu löschen keinen Editstate und kein Post. .Delete tut in allen DataSet nachfahren genau das was du willst.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten