![]() |
Datenbank: Firebird • Version: 2.1 • Zugriff über: Dataset
CalcFields von Dataset funktioniert nicht
Hallo,
ich benutze in einigen Datasets die Eigenschaft OnCalcFields. Bis jetzt hat es gut funktioniert. In einem neuem Modul greife ich ebenfalls mit einem Dataset auf eine Tabelle. Im Dataset (wie üblich) habe ich ein berechnetes Feld 'NUMMER :Integer' erstellt und in der Eigenschaft CalcFields von diesem Dataset ebenfalls
Delphi-Quellcode:
eingefügt. Dieses Feld zeige ich in einem DBGrid an. Aber es funktioniert nicht. Habe jetzt alle Datasets miteinander vergliechen, aber keinen Unterschied gefunden. Hat Jemand eine Idee woran es liegen kann?
procedure TDataModule8.IBDataSetAuswaertungCalcFields(DataSet: TDataSet);
begin with IBDataSetAuswaertung do Begin FieldValues['NUMMER'] := RecNo; end; end; Danke, Luckner |
AW: CalcFields von Dataset funktioniert nicht
Erstmal was zur Fehlervermeidung:
Rate mal, warum diese Methode einen Parameter besitzt. :stupid: Haltepunkt in die Event-Methode: Wird sie auch aufgerufen? Das Event hängt auch wirklich an OnCalcFields dran? |
AW: CalcFields von Dataset funktioniert nicht
Hallo himitsu,
kapier nicht so ganz, was Du meinst. Luckner |
AW: CalcFields von Dataset funktioniert nicht
Zitat:
Er meinte zudem noch, dass du in der Methode
Delphi-Quellcode:
schon frei Haus die entsprechende Referenz auf das DataSet erhältst und fragt sich, warum du diese Referenz nicht benutzt?
procedure TDataModule8.IBDataSetAuswaertungCalcFields( DataSet: TDataSet );
Delphi-Quellcode:
procedure TDataModule8.IBDataSetAuswaertungCalcFields(DataSet: TDataSet);
begin DataSet.FieldValues['NUMMER'] := DataSet.RecNo; end; |
AW: CalcFields von Dataset funktioniert nicht
Und das heißt letzten Endes:
Delphi-Quellcode:
Und hier mal einen Haltepunkt setzen und schauen, ob das Ereignis überhaupt ausgelöst wird, d.h. das Programm im Debugger auch anhält.
procedure TDataModule8.IBDataSetAuswaertungCalcFields(DataSet: TDataSet);
begin DataSet{Das ist der Parameter}.FieldValues['NUMMER'] := DataSet{Das ist auch der Parameter}.RecNo; end; |
AW: CalcFields von Dataset funktioniert nicht
Hallo sir Rufo,
Zitat:
Zitat:
Luckner. |
AW: CalcFields von Dataset funktioniert nicht
Es steht doch jetzt schon 2 Mal da oben, wie und wo :)
|
AW: CalcFields von Dataset funktioniert nicht
Zitat:
|
AW: CalcFields von Dataset funktioniert nicht
Habe ich jetzt umgeschrieben.
Delphi-Quellcode:
Kein Erfolg. Komisch, als ob diese Prozedur hier nicht angestossen wird. Bei den Anderen funktioniert es. Irgendwie sehe ich vor lauter Wald, die Bäume nicht.:?
procedure TDataModule8.IBDataSetAuswaertungGridCalcFields(DataSet: TDataSet);
begin IBDataSetAuswaertungGrid.FieldValues['NUMMER'] := IBDataSetAuswaertungGrid.RecNo; end; |
AW: CalcFields von Dataset funktioniert nicht
Zitat:
Bzw.
Delphi-Quellcode:
würde eventuell auch funktionieren, aber dennoch macht man sowas "besser" nicht.
with DataModule8.IBDataSetAuswaertung do
Bezüglich Debugger wurde ja schon so Einiges genannt. Besser sich damit mal auseinanderzusetzen, denn du kannst da schneller und vorallem besser/leichter nach Problemen suchen, als wir, die wir nur einen Bruchteil deines Codes kennen. Zitat:
|
AW: CalcFields von Dataset funktioniert nicht
![]() |
AW: CalcFields von Dataset funktioniert nicht
Zitat:
procedure TDataModule8.IBDataSetAuswaertungGridCalcFields( DataSet : TDataSet); dann benutze doch einfach den Parameter:
Delphi-Quellcode:
procedure TDataModule8.IBDataSetAuswaertungGridCalcFields(DataSet: TDataSet);
begin // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // Wir nehmen hier den Parameter DataSet // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! DataSet.FieldValues['NUMMER'] := DataSet.RecNo; end; |
AW: CalcFields von Dataset funktioniert nicht
Zitat:
|
AW: CalcFields von Dataset funktioniert nicht
Hier die letze Änderung
Delphi-Quellcode:
. Danke für den Hinweis mit dem ae. Leider kein Erfolg. Werde jetzt in allen Datasets diese Korrektur vornehmen.
procedure TDataModule8.IBDataSetAuswertungGridCalcFields(DataSet: TDataSet);
begin DataSet.FieldValues['NUMMER'] := DataSet.RecNo; end; |
AW: CalcFields von Dataset funktioniert nicht
Wird der Code denn überhaupt ausgeführt?
|
AW: CalcFields von Dataset funktioniert nicht
Zitat:
Es wurde alles mehrfach gesagt. Ich bin raus. Zur vermutlichen Lösung einfach die bissherigen Beiträge lesen und abarbeiten. |
AW: CalcFields von Dataset funktioniert nicht
Werde mich mit den Debugger mal beschäftigen. Wenn die Prozedure jedoch nicht ausgeführt wird, woran kann Das liegen? Ich sehe überhaupt kein Unterschie zu den anderen Datasets. Eine Idee hätte ich noch. Die werde ich ausprobieren und dann berichten.
|
AW: CalcFields von Dataset funktioniert nicht
Als Notfall-Alternative kannst Du auch die Dateien
DataModule8.pas DataModule8.dfm Zippen und hier hochladen. |
AW: CalcFields von Dataset funktioniert nicht
Ich habe es :thumb:. Der Fehler war (wenn es ein Fehler ist), das DBGrid aus einem anderem Frame des Projektes zu kopieren um mir einige Arbeit am Design des Grid zu sparren. Habe zwar, so dachte ich, das kopierte Grid entsprechend angepasst und alle Felder wurden angezeigt. Nur das CalcField eben nicht. Jetzt habe ich ein neues DBGrid erstellt und die Felder eingefügt und es funktioniert. Jetzt werde ich mir das Design des Grids vornehmen.
Danke Euch, habe hier wieder einiges gelernt. Und diesen Debugger werde ich mir in dem neuem Delphi vornehmen. Möglicherweise ist er etwas verständlicher als in Delphi7. Gruß, Luckner |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:01 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