AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Berechnetes Feld vom Typ Boolean erstellen und ändern
Thema durchsuchen
Ansicht
Themen-Optionen

Berechnetes Feld vom Typ Boolean erstellen und ändern

Ein Thema von viktorhugo · begonnen am 2. Sep 2006 · letzter Beitrag vom 3. Sep 2006
Antwort Antwort
viktorhugo

Registriert seit: 2. Sep 2006
3 Beiträge
 
#1

Berechnetes Feld vom Typ Boolean erstellen und ändern

  Alt 2. Sep 2006, 21:43
Datenbank: MySQL • Zugriff über: ODBC
Hallo,

ich habe ein berechnetes Feld vom Typ Boolean erstellt und möchte in Abhängigkeit vom anderem Feld
dem Werte true oder false zuweisen. Laut OH muß ich im OnCalcFields die Werte zuweisen.
Es wird aber nur beim ersten Datensatz der Wert geändert. AutoCalcFields habe ich probeweise mit true oder false ausprobiert
...
Delphi-Quellcode:
procedure TForm1.Table1CalcFields(DataSet: TDataSet);
begin
  if Table1HasChildrens.AsInteger = 0 then
     Table1B_HasChildrens.AsBoolean := false
  else
    Table1B_HasChildrens.AsBoolean := true;
end;
..
Was mache ich falsch?

Grüße

[edit=Sharky]Delphi-Tags gesetzt. Mfg, Sharky[/edit]
  Mit Zitat antworten Zitat
rider

Registriert seit: 11. Aug 2006
90 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Berechnetes Feld vom Typ Boolean erstellen und ändern

  Alt 3. Sep 2006, 08:47
Zitat von viktorhugo:
Was mache ich falsch?
AutoCalcFields muss auf True gesetzt werden, sonst wird gar nichts berechnet.
Den Code würde ich so schreiben:
Delphi-Quellcode:
procedure TForm1.Table1CalcFields(DataSet: TDataSet);
begin
  Table1B_HasChildrens.AsBoolean := Table1HasChildrens.AsInteger <> 0;
end;
Allerdings musst du beachten, dass die AutoCalc Felder nur dann berechnet werden, wenn sie auch benötigt werden.
Also z.B. zur Anzeige in einem Grid werden nur die sichtbaren Zeilen berechnet.

Wie hast du denn festgestellt, dass nur der erste Datensatz berechnet wird?
  Mit Zitat antworten Zitat
viktorhugo

Registriert seit: 2. Sep 2006
3 Beiträge
 
#3

Re: Berechnetes Feld vom Typ Boolean erstellen und ändern

  Alt 3. Sep 2006, 11:30
Zitat:
AutoCalcFields muss auf True gesetzt werden, sonst wird gar nichts berechnet.
Das habe ich ja bereits geschrieben.
Zitat:
Den Code würde ich so schreiben:
natürlich eleganter, aber für die problemlösung wurscht
Zitat:
Allerdings musst du beachten, dass die AutoCalc Felder nur dann berechnet werden, wenn sie auch benötigt werden.
Also z.B. zur Anzeige in einem Grid werden nur die sichtbaren Zeilen berechnet.
Das Boolean feld wird nicht angezeigt, es wird intern in der Komponente verwendet.
Zitat:
Wie hast du denn festgestellt, dass nur der erste Datensatz berechnet wird?
1.Im Debugger ging er nur einmal in den Event rein
2.das boolean feld wird intern für die Komponente dbtreeview verwendet, als Steuerung für Parent-Child Beziehung. Ausgehend von der Komponente müssten dann auch alle Child's angezeigt werden, ist aber nicht der Fall

Grüße
  Mit Zitat antworten Zitat
rider

Registriert seit: 11. Aug 2006
90 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Berechnetes Feld vom Typ Boolean erstellen und ändern

  Alt 3. Sep 2006, 11:38
Zitat von viktorhugo:
Das Boolean feld wird nicht angezeigt, es wird intern in der Komponente verwendet.
Ich vermute, hier liegt der Hund begraben. Kannst du mal ein Stück Code reinstellen, wie du dann auf dieses berechnete Feld zugreifst?
Wie gesagt, die berechneten Felder werden quasi on demand berechnet. Du kannst nicht davon ausgehen, dass alle Datensätze durchgehend berechnet werden.
  Mit Zitat antworten Zitat
viktorhugo

Registriert seit: 2. Sep 2006
3 Beiträge
 
#5

Re: Berechnetes Feld vom Typ Boolean erstellen und ändern

  Alt 3. Sep 2006, 12:11
Hallo rider,

ich habe DBGrid angeschlossen und es sind tatsächlich alle boolean Felder richtig geändert.
Also muß ich tiefer greifen, weil die Komponente habe ich irgendwo im www runtergeladen und wollte
einsetzen bzw. ausprobieren.
Erst mal Danke!

Grüße
  Mit Zitat antworten Zitat
Antwort Antwort


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:47 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