AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Filter auf CalculatedField ?
Thema durchsuchen
Ansicht
Themen-Optionen

Filter auf CalculatedField ?

Ein Thema von DataCool · begonnen am 8. Jul 2010 · letzter Beitrag vom 8. Jul 2010
Antwort Antwort
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#1

Filter auf CalculatedField ?

  Alt 8. Jul 2010, 10:14
Datenbank: ADS • Version: 9.1 • Zugriff über: ADS
Hi Leute,

habe hier gerade beim einem historisch gewachsenen Projekt das Problem,
das ich den Filter eines Table erweitern muss.
Soweit ja kein Problem allerdings befindet sich das Feld für den Filter in einem anderen Table.
Table gegen Query tauschen, geht leider nicht, weil historisch gewachsen ... = Riesenbaustelle
Mein Ansatz war es den Table um ein Calculated Field zu erweitern und im OnCalcFields den Wert aus dem anderen geöffneten Table zu Lesen/Zuzuweisen.
Dies ist leider nicht möglich und führt zu folgender Exception :
"Exception-Klasse EADSDatabaseError mit Meldung 'ApDS_Main: Error 3111: Unknown identifier found in a record filter expression.'"

Dann habe ich mir gedacht ich könnte das ganze eventuell über "OnFilterRecord" lösen,
der Ansatz ist auch nicht schlecht und würde auch funktionieren,
allerdings tritt erst das Event "OnFilterRecord" ein und danach erst "OnCalcFields", wo erst der richtige Wert ermittelt wird.

Hat jemand eine Idee/Denkanstoss diese Problematik zu Lösen,

Danke im vorraus,

Greetz Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Filter auf CalculatedField ?

  Alt 8. Jul 2010, 10:18
Wäre es möglich, den Filter in die Berechnung mit einbeziehen?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Filter auf CalculatedField ?

  Alt 8. Jul 2010, 10:22
@mkinzler:

Wie meinst Du das genau
Zitat:
den Filter in die Berechnung mit einbeziehen?
Greetz Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Filter auf CalculatedField ?

  Alt 8. Jul 2010, 10:29
Bei genauerer Überlegung wird das wohl nicht gehen.
Aus meiner Sicht wäre dann ein Query die einzige Alternative
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Filter auf CalculatedField ?

  Alt 8. Jul 2010, 10:49
@mkinzler:

^^ Das ^^ habe ich befürchtet, auch über ein Lookup-Field kommt ich nicht an den entsprechenden Wert,
weil der Primary Key, über den gesucht werden müßte sich aus 2 String-Feldern zusammen setzt

Bleiben mir jetzt noch 2 Möglichkeiten :
- Große Baustelle aufmachen und Table gegen Query ersetzen
- Oder das "fehlende" Feld in Table "A" redudant mitführen, erwähne diese Möglichkeit nur weil das auch schon die Lösung bei diversen anderen Feldern ist,
wie schon gesagt historisch ewachsen ... und wenn man dann den Source "vorgesetzt bekommt" kann man aus Zeitgründen nicht immer einfach alles neu machen.

Greetz Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.

Geändert von DataCool ( 8. Jul 2010 um 10:52 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: Filter auf CalculatedField ?

  Alt 8. Jul 2010, 12:45
Hallo DataCool,

ich nehme an, dass du dir anstatt der Datenbank-Tabelle keinen View bauen kannst auf DB-Ebene der das für dich erledigt? Diesen könntest du dann wieder nach belieben Filtern.

Greez, Chris
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Filter auf CalculatedField ?

  Alt 8. Jul 2010, 16:13
@ChrisE:
Die Idee mit dem View hatte ich zwischenzeitlich auch schon, leider bereitet dieser Ansatz auch Probleme mit bestehenden Strukturen.


Glücklicherweise habe ich ich Lösung für mein Problem gefunden!
- Definition eines CalculatedFields in Table A, welches im OnCalcFields den entsprechenden Wert aus Table B ermittelt
- Implementierung des Events OnFilterRecord, bis jetzt ist das Problem noch das OnFilterRecord vor OnCalcFields eintritt ...
- setzen der Option:

TableA.AdsTableOptions.AdsCalcFieldsBeforeFilter := true;

Danke an alle,

Greetz Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  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 12:25 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