AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Filter auf ein berechnendes Feld

Filter auf ein berechnendes Feld

Ein Thema von waldforest · begonnen am 19. Sep 2016 · letzter Beitrag vom 20. Sep 2016
Antwort Antwort
waldforest

Registriert seit: 8. Mai 2005
366 Beiträge
 
Delphi XE3 Enterprise
 
#1

Filter auf ein berechnendes Feld

  Alt 19. Sep 2016, 20:58
Datenbank: Firebird • Version: 2.5 • Zugriff über: Zeos
Hallo,
ich habe mir einen Filterdialog erstellt, der mir einen Filter auf die vorhanden Felder eines Querys baut.
Dieser funktioniert so lange, bis ein Filter auf ein fkCalculated Field, welches ich im OnCalcFields berechne, benutzt wird.

Welche Möglichkeit gibt es, auf dieses Feld zu Filtern ?
mfg wf
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.934 Beiträge
 
Delphi 12 Athens
 
#2

AW: Filter auf ein berechnendes Feld

  Alt 19. Sep 2016, 22:34
Ich kenne mich mit Zeos nicht aus, aber das geht bei TDataSet schon mal nicht. Lediglich auf fkInternalCalc Felder kann man einen Index oder einen Filter legen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
waldforest

Registriert seit: 8. Mai 2005
366 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: Filter auf ein berechnendes Feld

  Alt 20. Sep 2016, 12:53
Hallo,
danke für den Hinweis.
Ich kann das Feld auf fkInternalCalc umstellen. Allerdings erhalte ich beim Aufruf der Query die Fehlermeldung, dass das Feld nicht gefunden wird.

Was muss zusätzlich noch angepasst werden ?

mfg
mfg wf
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.016 Beiträge
 
Delphi 12 Athens
 
#4

AW: Filter auf ein berechnendes Feld

  Alt 20. Sep 2016, 13:03
fkInternalCalc muß von der Zugriffskomponente unterstützt werden (k.A. ob Zeros das tut), denn der berechnete "Wert" wird im Record-Speicher jedes Datensatzes abgelegt. (genauso, wie die normalen Werte der Abfrage)
Bei fkCalculated liegt der Wert nur in der TField-Komponete, für jeweils den aktiven Datensatz.
http://docwiki.embarcadero.com/RADSt...Standardfelder


fkInternalCalc: für jeden Datensatz existiert der Wert und kann daher darauf gefiltert werden
fkCalculated: nur für den aktiven Datensatz, daher nicht filterbar, da nicht alle Werte bekannt sind
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (20. Sep 2016 um 13:05 Uhr)
  Mit Zitat antworten Zitat
waldforest

Registriert seit: 8. Mai 2005
366 Beiträge
 
Delphi XE3 Enterprise
 
#5

AW: Filter auf ein berechnendes Feld

  Alt 20. Sep 2016, 13:27
Hallo,

Zitat:
fkInternalCalc: für jeden Datensatz existiert der Wert und kann daher darauf gefiltert werden
fkCalculated: nur für den aktiven Datensatz, daher nicht filterbar, da nicht alle Werte bekannt sind
danke für die Erklärung.

Die Auswahl des Field.Kinds wird in Zeos zwar angeboten, aber anscheinend wohl nicht unterstützt.
mfg wf
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#6

AW: Filter auf ein berechnendes Feld

  Alt 20. Sep 2016, 16:18
Wenn Du sowieso schon eine Query verwendest, mach doch die Berechnung dort oder gleich in einem View. Dann kann der Filter sicher normal verwendet werden.
Gruß, Jo
  Mit Zitat antworten Zitat
waldforest

Registriert seit: 8. Mai 2005
366 Beiträge
 
Delphi XE3 Enterprise
 
#7

AW: Filter auf ein berechnendes Feld

  Alt 20. Sep 2016, 18:33
Hallo,
die Berechnung erfolgt in der Query,
aber genau dort tritt der Fehler mit Filter auf dieses zu berechnende Feld auf.
mfg wf
  Mit Zitat antworten Zitat
waldforest

Registriert seit: 8. Mai 2005
366 Beiträge
 
Delphi XE3 Enterprise
 
#8

AW: Filter auf ein berechnendes Feld

  Alt 20. Sep 2016, 18:34
Hallo,
die Berechnung erfolgt in der Query,
aber genau dort tritt der Fehler mit Filter auf dieses zu berechnende Feld auf.

So wie die bisherigen Post's beschreiben, ist dies nicht möglich auf berechnende Felder ein Filter zu legen.
mfg wf
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Filter auf ein berechnendes Feld

  Alt 20. Sep 2016, 18:41
Berechnung in der Abfrage:

SQL-Code:
select
  a, b, a+b as erg
from
  <Tabelle>;
und nicht als berechnetes Feld.
Markus Kinzler
  Mit Zitat antworten Zitat
waldforest

Registriert seit: 8. Mai 2005
366 Beiträge
 
Delphi XE3 Enterprise
 
#10

AW: Filter auf ein berechnendes Feld

  Alt 20. Sep 2016, 18:45
Hallo,
dies ist auch eine Idee, werde ich einmal ausprobieren
allerdings benötige ich Teile der Berechnung aus einer Subabfrage.


!! Passt, funktioniert, Danke....!!
mfg wf

Geändert von waldforest (20. Sep 2016 um 19:17 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 19:49 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