![]() |
Bug bei DataSource/DataSet State (dsInsert) & SetEnabled & DisableControls
Hallo,
ist jemand folgender Bug bekannt? Resultat sind unter anderem schief stehende DB-Navigatoren. Form, DataSet, DataSource, DBNavigator
Delphi-Quellcode:
DataSet.Open;
DataSet.DisableControls; //DataSource merkt sich State in FState (dsBrowse) DataSet.Insert; //da Disabled Controls, keine Änderung im DataSource DataSource.Enabled:=True; //DataSource bekommt zwangsstate "dsInsert" DataSet.Post; //da Disabled Controls, keine Änderung im DataSource, bleibt auf dsInsert DataSet.EnableControls; //Abgleich von FDisabledState und DataSet.State: dsBrowse = kein Umsetzen des State der DataSource, somit steht das ungleich. Totales Durcheinander der Status. ;
Delphi-Quellcode:
Somit steht DataSource auf Insert, DataSet auf Browse.
TDataSet.EnableControls;
... if FDisableState <> FState then DataEvent(deUpdateState, 0); //durch das falsch zwischengesetzte State mittels Enabled:=True schlägt es hier fehl In kurz: ein wechsel des DataSet.BrowseMode zu vor DisableControls und wechsel des DataSource.EnabledState während DisabledControls führt zum Bug. |
AW: Bug bei DataSource/DataSet State (dsInsert) & SetEnabled & DisableControls
[OT]
wer keine datensensitiven Controls verwendet, kennt soche Fehler nicht:stupid: [/OT] Gruß K-H |
AW: Bug bei DataSource/DataSet State (dsInsert) & SetEnabled & DisableControls
Ist es ein Bug, oder ein Fehler in der Anwendung der Komponenten?
Würdest Du das wirklich so machen wollen, bzw. was erhoffst du dir von Deinem Vorgehen? Sherlock |
AW: Bug bei DataSource/DataSet State (dsInsert) & SetEnabled & DisableControls
[OT]wer keine Datensensitiven Komponenten verwendet, muß sich diese selbst bauen oder er braucht die X-Fache Entwicklungszeit ;)[/OT]
Das ist ein Bug. Das Problem ist, das andere Komponentenhersteller bestimmte Status voraussetzen. ![]() So hatten wir zB einfach im Before/After-Insert unserer Basisklassen ein Enabled:=True eingebaut. Resultat ist dann aber dieser Bug, wenn mit DisableControls gearbeitet wurde. Letztlich ist es ein Bug, da es einfach zu einem fehlerhaften Status führt. Insb. da im SetEnabled nicht mal auf If Enabled=Value then Exit geprüft wurde. Wenn das so nicht sein darf, also Enabled im DisableControls umstellen, muß eine Exception kommen. Wir haben das Problem bei uns jetzt gelöst, allerdings mal wieder haufenweise Stunden für diesen Senf versenkt. |
AW: Bug bei DataSource/DataSet State (dsInsert) & SetEnabled & DisableControls
Blöde Frage: Wer fummelt denn am DataSource.Enabled herum? Mir käme das auch nicht in den Sinn.
Aber es ist ein Bug, keine Frage... |
AW: Bug bei DataSource/DataSet State (dsInsert) & SetEnabled & DisableControls
Zitat:
Die Frage ist wirklich nur blöd. Schon einmal über eine benutzerabhängige Datenanzeige nachgedacht, bei der das Layout der Anwendung nicht verändert wird. |
AW: Bug bei DataSource/DataSet State (dsInsert) & SetEnabled & DisableControls
Zitat:
Qualität setzt sich eben durch. |
AW: Bug bei DataSource/DataSet State (dsInsert) & SetEnabled & DisableControls
Zitat:
Wäre die obige Frage jetzt eine Frage, welche qualitativ an Dein hohes Niveau herankommt? |
AW: Bug bei DataSource/DataSet State (dsInsert) & SetEnabled & DisableControls
Enabled:=False schaltet alle Datensensitiven Komponenten komplett ab, als wäre das DataSet geschlossen bzw hätten diese kein DataSource zugewiesen. Nutzen wir zB wenn eine Suche keinen Treffer ergibt und man nicht will, das durch AutoEdit=True dann automatisch ein Datensatz angelegt werden kann.
Zum Rest (Qualität blöder Fragen) kann ich heute aufgrund schlechter Laune nichts gutes / ironisches beisteuern, dazu gab es heute schon zu viele ;) |
AW: Bug bei DataSource/DataSet State (dsInsert) & SetEnabled & DisableControls
Danke für die Aufklärung: Interessant, hatte ich nie auf dem Schirm. Ich hab -glaube ich- einfach immer das TDatasource vom TDatset entkoppelt.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:02 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