Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TTable Filtern (https://www.delphipraxis.net/110387-ttable-filtern.html)

f4k3 17. Mär 2008 13:39

Datenbank: Paradox • Version: 7 • Zugriff über: BDE

TTable Filtern
 
Moin Moin liebe DP'ler,

ich hab nen Screen auf dem die Kunden mit Ihren Terminen stehen.
Quasi ein elektronisches Terminboard angezeigt auf nen dicken Flatscreen ;) *hrhr*

Nun isses aber so dass in meiner Terminverwaltung gnadenlos für jeden tag ein Termin eingetragen werden kann.

Ich muss also beim Screen meine TTable filtern. und dass mit 2 Argumenten.

Einmal das Datum des Datensatzes mit dem heutigen Datum vergleichen
und Nummero Duo ob der Kunde angezeigt werden darf (Datenschutzgründe) also Pseudo-Code Show = True;

Ich hab in der Hilfe gelesen dass TTable.Filter nur ein Argument haben darf,
und nicht mit and verknüpft werden kann ...

Ich habs nun über ne TQuery-Komponente probiert, aber leider filtert er mir nix.
Ich hab den Query mit ner datasource verbunden. Ein DBGrid ist ebenfalls mit dieser Datasource verbunden.
Meine SQl-Anweisung im Query sieht folgendermaßen aus:

SQL-Code:
SELECT * FROM TermineService.DB WHERE 'Datum' = <aktuelles Datum> AND 'Show' = True;
für das aktuelle Datum weiß ich noch nich den Code wie ich mir das holen könnte. wär auch ne frage an euch ;)

Wenn ichs so probiere:

SQL-Code:
SELECT * FROM TermineService.DB WHERE 'Show' = True;
Zeigt er mir alle Datensätze an, ob Show = False oder Show = True hinterlegt ist.

Wo ist also nun der Fehler den ich mach?

Oder liegts einfach daran dass unter anderem Paradox sehr beschränkt ist?!

Danke für eure Antworten,


Euer f4k3 ;)

marabu 17. Mär 2008 14:03

Re: TTable Filtern
 
Hallo Fake,

Zitat:

Zitat von f4k3
... Ich hab in der Hilfe gelesen dass TTable.Filter nur ein Argument haben darf,
und nicht mit and verknüpft werden kann ...

wo genau hast du das denn gelesen?

In deinem SQL-Code darfst du Feldnamen nicht einfach in Quotes einschließen, sie werden sonst als Literale angesehen.
SQL-Code:
SELECT * FROM TermineService.DB WHERE 'Datum' = <aktuelles Datum> AND 'Show' = True;
Zitat:

Zitat von f4k3
... Oder liegts einfach daran dass unter anderem Paradox sehr beschränkt ist?! ...

Bei einer Software, die viele Jahre kommerziell vermarktet wurde, würde ich den Fehler immer zuerst bei mir suchen.

Grüße vom marabu

mkinzler 17. Mär 2008 14:06

Re: TTable Filtern
 
Zitat:

f4k3 hat folgendes geschrieben:
... Oder liegts einfach daran dass unter anderem Paradox sehr beschränkt ist?! ...

Bei einer Software, die viele Jahre kommerziell vermarktet wurde, würde ich den Fehler immer zuerst bei mir suchen.
Ich würde aber heutzutage trotzdem kein Programm mit der BDE starten

f4k3 17. Mär 2008 14:08

Re: TTable Filtern
 
War ja nur ne frage weil wenn man n comment zu Paradox-Datenbanken bekommt, dann wird einem meistens empfohlen auf Firebird etc. umzusteigen weil Paradox nicht mehr mithalten kann ...

Die Aussage basiert also rein auf requests von den Usern hier im Forum.

Ähm ja also des mim Filtern hab ich mitlerweile schon ... über ne TQuery klappt des ganz gut ...
mein Prob is nur dass er mir abgelaufene Datensätze nicht mehr rauskickt ...

aber da is basteln angesagt ... danke für deine hilfe marabu ;)

mkinzler 17. Mär 2008 14:11

Re: TTable Filtern
 
Du hast Recht Paradox ist nur bei Benutzern dieses Forums aus und habe keine Ahnung und plappere nur die Meinung von anderen nach. :wall:

f4k3 17. Mär 2008 14:17

Re: TTable Filtern
 
Zitat:

Zitat von mkinzler
Du hast Recht Paradox ist nur bei Benutzern dieses Forums aus und habe keine Ahnung und plappere nur die Meinung von anderen nach. :wall:

www.deutsch.de?!

Kannst mal des vernünftig Formulieren weil aus dem gestammel kann ich mir keinen reim machen ...

Ich hab ja nicht gesagt dass du die Meinung von anderen nachplapperst ... und dass du keine Ahnung hast hab ich auch in keiner zeile erwähnt ...

also wo is dei problem?

bluesbear 17. Mär 2008 15:07

Re: TTable Filtern
 
Zitat:

Zitat von f4k3
Ich muss also beim Screen meine TTable filtern. und dass mit 2 Argumenten.

Mit TTabel.OnFilterRecord kann man sowas prima machen.

hoika 17. Mär 2008 16:21

Re: TTable Filtern
 
Hallo,

zur Query

Delphi-Quellcode:
with Query do
begin
  Close;

  SQL.Clear;
  SQL.Add('SELECT * FROM TermineService');
  SQL.Add(WHERE (Datum=:Datum) And (Show=:Show)');
  ParamByName('Datum').AsDateTime:= Date; // z.B. heute
  ParamByName('Show').AsBoolean:= True;
  Open;

  ...
end;
Interessant ist noch, welchen Datentyp Show hat.

Und wie immer ein Wort zur BDE ;)
Die BDE-Weiterentwicklung ist schon vor NT4 praktisch zum Erliegen gekommen.
in einem schöne c't - Artikel stand sehr sinnvoll "anachronistischer Sperrmechanismus".
Das Vorgehen von Paradox beim Sperren von Records bekommt bei
opportunistischen Sperren (opportunistic lock) nen Haufen Probleme,
und jedes neuere BS benutzt diese Art von Sperren.


Heiko

bluesbear 17. Mär 2008 19:35

Re: TTable Filtern
 
Ich bin leider berufsbedingt einer der Experten für antike Technik hier.
BDE, Paradox und TQuery - lieber nicht. Es funktioniert "meistens". Meiner Erfahrung nach funktioniert das OnFilter event von TTable allerdings äußerst zuverlässig.
Multiuseranwendungen damit...
Zitat:

in einem schöne c't - Artikel stand sehr sinnvoll "anachronistischer Sperrmechanismus".
Das ist ein sehr schöner Euphemismus :-D

hoika 18. Mär 2008 06:58

Re: TTable Filtern
 
Hallo,

das Wort musste ich erst mal suchen ;)

http://www.uni-essen.de/einladung/Vo...k/euphemis.htm


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:31 Uhr.
Seite 1 von 3  1 23      

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