Einzelnen Beitrag anzeigen

Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#6

Re: Einfügen der neuen Datensätze

  Alt 12. Dez 2003, 14:42
Die Komponentenkette sieht ja so so aus:

[TDataSet]-------[TDataSource]------[TDbGrid]

Wenn Du im DbGrid (durch scrollen hinter den letzten Datensatzeintrag) einen neuen Datensatz "einfügst", wird das DataSet in den Zustand dsInsert versetzt. Erst wenn im Grid dieser Datensatz verlassen wird, wird er tatsächlich eingefügt. Das DbGrid kann diese Aktion nicht verhindern - das DataSet schon. Schau Dir mal das Ereignis "BeforeInsert" des DataSets an. Dort könntest Du ansetzen und zum Beispiel mit
Delphi-Quellcode:
procedure TForm1.Query1BeforeInsert(DataSet: TDataSet);
begin
  DatabaseError('Diese Datenmenge kann nur gelesen werden', Self);
end;
verhindern, das ein Datensatz eingefügt wird. Diese Variante verhindert so allerdings das Einfügen eines Datensatzes in dieses DataSets, egal woher die Einfügung stammt. Wenn Du also auf andere Art als über das Grid ein Hinzufügen von Datensätzen zulassen möchtest, müsstest Du entweder checken, wer da gerade einfügen möchte und nur im Falle des Grids den Fehler anzeigen, oder ein anderes Dataset zum einfügen benutzen. Dort müsstest Du dann nach dem Einfügen das Dataset des Grids aktualisieren.

Gruß
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat