![]() |
AW: SQLite Datensatz löschen - [BUG ?]
Zitat:
|
AW: SQLite Datensatz löschen - [BUG ?]
Zitat:
Code:
im dataset bzw. query ondelete Event tun. Das packt das Problem m.E. eher an der "Wurzel".
abort;
Alles was Grid bezogen codiert wird, verhindert nicht das Löschen über andere Controls, [strng][entf] u.U. auch schon, wenn Du ein DBEdit auf die Form ziehst. Falls Du dann doch mal wirklich etwas löschen willst, musst Du das abort mit einer Bedingung versehen. |
AW: SQLite Datensatz löschen - [BUG ?]
Also wenn ich mich richtig erinnere, gibt es gar kein OnDelete, sondern höchstens
![]() ![]() Jetzt würde mich aber doch mal interessieren, welches Problem du bei der von mir präferierten und daher auch vorgeschlagenen Methode siehst. Hat der TE etwa irgendwo geschrieben, daß er das Löschen über alle anderen etwaigen Controls ebenfalls verhindern möchte? Meines Wissens nach nicht :stupid: Ach ja, und wenn du gerade dabei bist, kannst du mir auch gleich mal zeigen, wie man mit einem TDBEdit einen Record löscht. Das würde mich fast noch brennender interessieren wie der Vorteil irgend eines Abort-Befehls im herbeiphantasierten OnDelete-Event :lol: |
AW: SQLite Datensatz löschen - [BUG ?]
@Perlsau
Meine "Erinnerung" hat mich etwas getäuscht. Da mir das tatsächlich nicht ganz klar war, habe ich ja auch extra von "Erinnerung" geschrieben. Es ist natürlich OnBeforeDelete, der geneigte Leser wird bei dem Versuch, den Delete Event zu verdrahten ggF mit etwas(!) Hirnschmalz diese falsche Angabe entdecken und vielleicht auch darauf kommen, dass man besser vor dem Löschen das Löschen abbricht (also BeforeDelete:abort). Und auch ein bloßes DBEdit reagiert nicht auf das Kommand strng entf. Das tut aber bspw. der DBNavigator, vielleicht auch andere datensensitive Komponenten. Ob das für den TE relevant ist oder nicht, kann der sicher selbst entscheiden. Ich glaube nicht, dass es Stil dieses Forums ist, 1:1 Frage Antwort zu spielen, das wird auch Dir wohl geläufig sein. |
AW: SQLite Datensatz löschen - [BUG ?]
Zitat:
![]() Unser Kassenwart im Verein macht das ganz ähnlich: Bei einer Vorstandssitzung angesprochen auf die mit zahlreichen Rechtschreib- und Grammatikfehlern angefertigte Bewerbungen für unser Clientel (Arbeitslose und ALG-II-Empfänger), hat er doch glatt behauptet, die Fehler habe er absichtlich eingefügt, damit der jeweilige Empfänger nicht auf den Gedanken verfallen könne, der Bewerber habe seine Bewerbung nicht selbst angefertigt. Dabei ist seine Rechtschreibschwäche längst allen Vorstandsmitgliedern bekannt: Wir wissen, daß er sich gut verkaufen kann, aber nicht wirklich was drauf hat. |
AW: SQLite Datensatz löschen - [BUG ?]
Zitat:
Eben nochmal selbst getestet, frisches TDBGrid auf die Form gepackt (nichts an den Property´s geändert) mit der DataSource verbunden, Anwendung gestartet, Datensatz selektiert dann mit STRG + ENTF gelöscht. Es gibt kein DBNavigator oder irgendeine DELETE Anweisung in der Anwendung. |
AW: SQLite Datensatz löschen - [BUG ?]
Liste der Anhänge anzeigen (Anzahl: 1)
Wenn du nochmal genau lesen möchtest: Im Zitat ging es um ein TDBEdit und nicht um ein TDBGrid.
Etwas ausführlicher: Ich stelle in den meisten meiner DB-Anwendungen eine Tabelle nebst einem Formular zur Verfügung. Die Tabelle (DBGrid) dient der Auswahl des zu bearbeitenden Datensatzes. Das Eingabe-Formular dient der Änderung des aktuellen bzw. dem Einfügen eines neuen Datensatzes. Dabei ist das DBGrid stets auf ReadOnly, die DB-Eingabefelder dagegen werden in den Read-Write-Modus geschalten, sobald der Anwender das entsprechende Dataset in den Edit- oder Appendmodus versetzt. Will der Anwender den aktuellen Record bearbeiten, schaltet er um in die Formular-Darstellung und betätigt den Edit-Button. Zum Umschalten der der Komponenten habe ich immer eigene Methoden:
Delphi-Quellcode:
// ---------- Schreiben erlaubt -------------------------------------------------------------------------------------------------- Privat
Procedure TFormMain.SchreibenErlaubt; Var FarbeAktuell : TColor; begin GLD.EditModus := True; TS_ToDo_Tabelle.Enabled := False; TS_Kat.Enabled := False; TS_Option.Enabled := False; Navi_Liste.Enabled := False; AL_DB_Close.Enabled := False; AL_ED_Append.Enabled := False; AL_ED_Del.Enabled := False; AL_ED_Edit.Enabled := False; AL_ED_Post.Enabled := True; AL_ED_Cancel.Enabled := True; AL_ED_Find.Enabled := False; AL_ED_Import.Enabled := False; AL_ED_Export.Enabled := False; AL_ED_Print.Enabled := False; AL_TXT_SchriftDlg.Enabled := True; AL_TXT_Normal.Enabled := True; AL_TXT_Fett.Enabled := True; AL_TXT_Kursiv.Enabled := True; AL_TXT_FettKursiv.Enabled := True; AL_TXT_Unter.Enabled := True; AL_TXT_FettUnter.Enabled := True; AL_TXT_KursivUnter.Enabled := True; AL_TXT_Durch.Enabled := True; AL_TXT_Schwarz.Enabled := True; AL_TXT_Rot.Enabled := True; AL_TXT_Gruen.Enabled := True; AL_TXT_Blau.Enabled := True; GLD.URec.Sicht := 0; Sichtbar; AL_SICHT_Alle.Enabled := False; AL_SICHT_Jahr.Enabled := False; AL_SICHT_Monat.Enabled := False; AL_SICHT_Woche.Enabled := False; AL_SICHT_Heute.Enabled := False; Bit_Append.Enabled := False; Bit_Delete.Enabled := False; Bit_Edit.Enabled := False; Bit_Post.Enabled := True; Bit_Cancel.Enabled := True; Bit_Find.Enabled := False; Bit_Import.Enabled := False; Bit_Export.Enabled := False; Bit_Print.Enabled := False; DBEd_Titel.ReadOnly := False; DBLU_Kategorie.ReadOnly := False; DBDatePick.ReadOnly := False; DBTimePick.ReadOnly := False; DBCheck_OK.ReadOnly := False; DBRich_Notizen.ReadOnly := False; If GLD.AppendModus Then FarbeAktuell := GLD.FarbeAppend Else FarbeAktuell := GLD.FarbeEdit; DBEd_Titel.Color := FarbeAktuell; DBLU_Kategorie.Color := FarbeAktuell; DBDatePick.Color := FarbeAktuell; DBTimePick.Color := FarbeAktuell; DBCheck_OK.Color := FarbeAktuell; DBRich_Notizen.Color := FarbeAktuell; StatusBarAktuell; DBEd_Titel.SetFocus; end; // ---------- Schreiben verboten ------------------------------------------------------------------------------------------------- Privat Procedure TFormMain.SchreibenVerboten; begin GLD.EditModus := False; GLD.AppendModus := False; AL_DB_Close.Enabled := True; AL_ED_Append.Enabled := True; AL_ED_Del.Enabled := True; AL_ED_Edit.Enabled := True; AL_ED_Post.Enabled := False; AL_ED_Cancel.Enabled := False; AL_ED_Find.Enabled := True; AL_ED_Import.Enabled := True; AL_ED_Export.Enabled := True; AL_ED_Print.Enabled := True; AL_TXT_SchriftDlg.Enabled := False; AL_TXT_Normal.Enabled := False; AL_TXT_Fett.Enabled := False; AL_TXT_Kursiv.Enabled := False; AL_TXT_FettKursiv.Enabled := False; AL_TXT_Unter.Enabled := False; AL_TXT_FettUnter.Enabled := False; AL_TXT_KursivUnter.Enabled := False; AL_TXT_Durch.Enabled := False; AL_TXT_Schwarz.Enabled := False; AL_TXT_Rot.Enabled := False; AL_TXT_Gruen.Enabled := False; AL_TXT_Blau.Enabled := False; AL_SICHT_Alle.Enabled := True; AL_SICHT_Jahr.Enabled := True; AL_SICHT_Monat.Enabled := True; AL_SICHT_Woche.Enabled := True; AL_SICHT_Heute.Enabled := True; GLD.URec.Sicht := 0; Sichtbar; Bit_Append.Enabled := True; Bit_Delete.Enabled := True; Bit_Edit.Enabled := True; Bit_Post.Enabled := False; Bit_Cancel.Enabled := False; Bit_Find.Enabled := True; Bit_Import.Enabled := True; Bit_Export.Enabled := True; Bit_Print.Enabled := True; DBEd_Titel.ReadOnly := True; DBLU_Kategorie.ReadOnly := True; DBDatePick.ReadOnly := True; DBTimePick.ReadOnly := True; DBCheck_OK.ReadOnly := True; DBRich_Notizen.ReadOnly := True; DBEd_Titel.Color := GLD.FarbeBrowse; DBLU_Kategorie.Color := GLD.FarbeBrowse; DBDatePick.Color := GLD.FarbeBrowse; DBTimePick.Color := GLD.FarbeBrowse; DBCheck_OK.Color := PgCtrl_ToDo.Color; DBRich_Notizen.Color := GLD.FarbeBrowse; TS_ToDo_Tabelle.Enabled := True; TS_Kat.Enabled := True; TS_Option.Enabled := True; DatMod.V_Liste.Locate('ID',DatMod.Qset_Liste.FieldByName('ID_LISTE').AsInteger,[]); StatusBarAktuell; Navi_Liste.Enabled := True; DBEd_Titel.SetFocus; end; |
AW: SQLite Datensatz löschen - [BUG ?]
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz