AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Bug bei DataSource/DataSet State (dsInsert) & SetEnabled & DisableControls
Thema durchsuchen
Ansicht
Themen-Optionen

Bug bei DataSource/DataSet State (dsInsert) & SetEnabled & DisableControls

Ein Thema von DSCHUCH · begonnen am 26. Jan 2015 · letzter Beitrag vom 28. Jan 2015
Antwort Antwort
Seite 1 von 2  1 2      
DSCHUCH

Registriert seit: 6. Jun 2007
Ort: Dresden
185 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

Bug bei DataSource/DataSet State (dsInsert) & SetEnabled & DisableControls

  Alt 26. Jan 2015, 15:30
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:
TDataSet.EnableControls;
...
if FDisableState <> FState then DataEvent(deUpdateState, 0); //durch das falsch zwischengesetzte State mittels Enabled:=True schlägt es hier fehl
Somit steht DataSource auf Insert, DataSet auf Browse.

In kurz: ein wechsel des DataSet.BrowseMode zu vor DisableControls und wechsel des DataSource.EnabledState während DisabledControls führt zum Bug.

Geändert von DSCHUCH (26. Jan 2015 um 15:35 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Bug bei DataSource/DataSet State (dsInsert) & SetEnabled & DisableControls

  Alt 26. Jan 2015, 15:37
[OT]
wer keine datensensitiven Controls verwendet, kennt soche Fehler nicht
[/OT]

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#3

AW: Bug bei DataSource/DataSet State (dsInsert) & SetEnabled & DisableControls

  Alt 26. Jan 2015, 15:38
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
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
DSCHUCH

Registriert seit: 6. Jun 2007
Ort: Dresden
185 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#4

AW: Bug bei DataSource/DataSet State (dsInsert) & SetEnabled & DisableControls

  Alt 26. Jan 2015, 16:04
[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.
https://www.devexpress.com/Support/C...etails/T114617

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.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#5

AW: Bug bei DataSource/DataSet State (dsInsert) & SetEnabled & DisableControls

  Alt 27. Jan 2015, 08:01
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...
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#6

AW: Bug bei DataSource/DataSet State (dsInsert) & SetEnabled & DisableControls

  Alt 27. Jan 2015, 09:58
Blöde Frage: Wer fummelt denn am DataSource.Enabled herum? Mir käme das auch nicht in den Sinn.
Da muss ich Dir endlich einmal Recht geben.

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.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#7

AW: Bug bei DataSource/DataSet State (dsInsert) & SetEnabled & DisableControls

  Alt 27. Jan 2015, 12:59
Da muss ich Dir endlich einmal Recht geben.

Qualität setzt sich eben durch.
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#8

AW: Bug bei DataSource/DataSet State (dsInsert) & SetEnabled & DisableControls

  Alt 27. Jan 2015, 13:15
Da muss ich Dir endlich einmal Recht geben.

Qualität setzt sich eben durch.
Wie misst man die Qualität blöde Fragen zu stellen?

Wäre die obige Frage jetzt eine Frage, welche qualitativ an Dein hohes Niveau herankommt?
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
DSCHUCH

Registriert seit: 6. Jun 2007
Ort: Dresden
185 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#9

AW: Bug bei DataSource/DataSet State (dsInsert) & SetEnabled & DisableControls

  Alt 28. Jan 2015, 18:23
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
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#10

AW: Bug bei DataSource/DataSet State (dsInsert) & SetEnabled & DisableControls

  Alt 28. Jan 2015, 18:35
Danke für die Aufklärung: Interessant, hatte ich nie auf dem Schirm. Ich hab -glaube ich- einfach immer das TDatasource vom TDatset entkoppelt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz