AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TSQLQuery und CalcFields-Event, erster Datensatz leer
Thema durchsuchen
Ansicht
Themen-Optionen

TSQLQuery und CalcFields-Event, erster Datensatz leer

Ein Thema von JoeBar · begonnen am 24. Jan 2003 · letzter Beitrag vom 30. Jan 2003
Antwort Antwort
JoeBar

Registriert seit: 24. Jan 2003
4 Beiträge
 
#1

TSQLQuery und CalcFields-Event, erster Datensatz leer

  Alt 24. Jan 2003, 13:06
Hallo,

ich benutze eine TSQLQuery zum Zugriff auf eine Oracle-DB.
Das Projekt soll von BDE (TQuery) aud dbExpress (TSQLQuery) umgestellt werden, die Abfragen an sich sind also in Ordnung.

Im Query-Objekt gibt es zusätzliche berechnete Felder welche im CalcField-Event gefüllt werden sollen.

Dabei habe ich folgendes Problem:
Nach Öffnen der Abfrage laufe ich durch die Ergebnisdatenmenge und der CalcField-Event wird ausgelöst, nur ist der erste Datensatz immer leer.
D.h., der Datensatz ist nicht leer (auf der DB), nur sowohl über persistente Felder, als auch über FieldByName steht im ersten Datensatz nichts drin, dh. wenn ich das Ergebnis in einem Grid darstelle sind die berechneten Felder des ersten Datensatzes leer, die nicht-berechneten Felder werden jedoch normal angezeigt.

Kennt jemand das Problem ?
Für Eure Hilfe wäre ich wirklich dankbar.

Gruß
Joe Bar
  Mit Zitat antworten Zitat
JoeBar

Registriert seit: 24. Jan 2003
4 Beiträge
 
#2
  Alt 24. Jan 2003, 14:10
Workaround:

Im Event AfterOpen noch mal manuell die Methode CalcField aufrufen, dann sind die persistenten Felder gefüllt.

Kennt jemand was eleganteres ?

Gruß
JoeBar
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#3
  Alt 28. Jan 2003, 07:49
Hallo JoeBar,

wenn ein Versuch einer Antwort auch etwas später kommt , zunächst einmal herzlich willkommen im Delphi Praxis Forum.

Zu deinem Problem. Es sollte eigentlich gar nicht nötig sein, die Datenmenge zu durchlaufen. Wenn die Eigenschaft AutoCalcFields auf TRUE steht, wird schon beim öffnen der Datenmenge und mein normalen "Abruf" der Daten das OnCalcField Event ausgelöst. Überprüfe doch einmal den Wert der AutoCalcFields Eigenschaft.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
JoeBar

Registriert seit: 24. Jan 2003
4 Beiträge
 
#4
  Alt 30. Jan 2003, 09:39
Hallo Mr Spock,

danke für die nette Begrüßung im Forum.

Zu Deiner Antwort auf "mein" Problem, für das ich ja auch ein Workaround gepostet habe:

Mit meinem "laufe ich durch die Ergebnisdatenmenge" meinte ich die "ganz normale" Bearbeitung der Daten.

Das Problem bleibt aber, im gesamten Projekt welches ich auf dbExpress umstelle (> 200.000 Zeilen), darf ich in allen Abfragen die einen OnCalcField-Handler haben den obigen Workaround einsetzen...

Gruß
JoeBar
  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 14:18 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