Einzelnen Beitrag anzeigen

karolus

Registriert seit: 4. Sep 2007
Ort: Tostedt
34 Beiträge
 
Delphi 2007 Professional
 
#1

Not in edit mode

  Alt 8. Aug 2020, 18:23
Datenbank: Firebird • Version: 2.5 • Zugriff über: Interbase
Hallo zusammen.

Ich steh grad auf dem Schlauch mit der Fehlermeldung, die kommt, unmittelbar nachdem ich das Dataset in den Edit-Mode gesetzt habe. Dataset.state ist dsEdit.
Vielleicht seh den Wald vor lauter Bäumen nicht. Wär schön wenn einer von euch die passende Axt auspacken könnte.

Danke im voraus.
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
var
     Tnr, Inr, Gnr : Integer;

begin
     if not Form1.tabuecher.InTransaction then Form1.tabuecher.StartTransaction;
     Form1.dsTitel.Close;
     Form1.dsTitel.SelectSQL.Text := 'select TitelNr, Genre from Titel where Sammelband = ' +QuotedStr('J');
     Form1.dsTitel.Open;
     Tnr := Form1.dsTitel.FieldByName('TitelNr').Value;
     Gnr := Form1.dsTitel.FieldByName('Genre').Value;
     Form1.dsInhalt.Close;
     Form1.dsInhalt.SelectSQL.Text := 'select InhaltNr, Genre from Inhalt order by InhaltNr';
     Form1.dsInhalt.Open;
     repeat
          Form1.qyRTitelInhalt.Close;
          Form1.qyRTitelInhalt.SQL.Text := 'select TitelNr, InhaltNr from RTitelInhalt where TitelNr = :nr';
          Form1.qyRTitelInhalt.ParamByName('nr').Value := Tnr;
          Form1.qyRTitelInhalt.Open;
          repeat
               Inr := Form1.qyRTitelInhalt.FieldByName('InhaltNr').Value;
               Form1.dsInhalt.Edit;
  >>>hier kommt der Fehler>>> if Form1.dsInhalt.Locate('InhaltNr', Inr, []) then Form1.dsInhalt.FieldByName('Genre').Value := Gnr
               else
               Begin
                    ShowMessage('In die Tabelle Inhalt konnte in den Datensatz mit der Nummer ' + IntToStr(Inr) + 'kein Wert für Genre eingetragen werden' +#13+ 'Programm wird abgebrochen.');
                    Form1.tabuecher.Rollback;
                    Break;
               End;
               Form1.qyRTitelInhalt.Next;
          until Form1.qyRTitelInhalt.Eof;
          Form1.dsTitel.Next;
     until Form1.dsTitel.Eof;
     Form1.tabuecher.Commit;
     Form1.Close;
end;

end.
  Mit Zitat antworten Zitat