Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Nur bestimmte Schulklassen (Datensätze) auslesen (https://www.delphipraxis.net/103935-nur-bestimmte-schulklassen-datensaetze-auslesen.html)

Svenkan 24. Nov 2007 23:49

Re: Nur bestimmte Schulklassen (Datensätze) auslesen
 
Ja ok, die Abkürzungen sind teilweise etwas verwirrend...
Aber mit der Zeit lernt man damit umzugehn. :D
Aber wie siehts denn nun mit meiner Abfrage aus?
Das Problem ist:
bei manchem Klassenkombinationen (wie oben) funktioniert es problemlos!
Wenn ich aber nun z.B. die Datei Abt3.txt einlese mit dem Inhalt

Code:
AG  
Nh  
SV
dann kommen die genannten Probleme.
Und das macht mir verdammte Sorgen. Denn es sollte nach Möglichkeit mit allem funktionieren.....

mkinzler 24. Nov 2007 23:52

Re: Nur bestimmte Schulklassen (Datensätze) auslesen
 
Ich gebe grenzgaenger recht. Bring das Ganze in ein konsistenten Schema. dann wird alles einfacher und weniger fehleranfällig

raiguen 25. Nov 2007 13:11

Re: Nur bestimmte Schulklassen (Datensätze) auslesen
 
Abgesehen von grenzgängers und mkinzlers Aussage...macht mich das hier ein bischen stutzig
hier (#1) 'bastelst' du das SQL-Statement zusammen:
Delphi-Quellcode:
Query1.Close;
  Query1.SQL.Text := 'SELECT * FROM "VT'+sj+'"';
  Query1.SQL.Add('WHERE NOT S="M" AND NOT S="E" '+abteilung+' AND NOT S="H" AND DATUM=:today');
  Query1.SQL.Add('ORDER BY DATUM DESC,'+order1);
  Query1.ParamByName('today').Value := today;
  Query1.Open;
und hier(#4) ist angeblich der erzeugte SQL-Code:
Delphi-Quellcode:
SELECT * FROM "VT07_08.dbf"
WHERE NOT S="M" AND NOT S="E" AND BETKLA IN ("AG=","Nh=","SV=") OR KLASSEN IN ("AG","Nh","SV") AND NOT S="H" AND DATUM=:today
ORDER BY DATUM DESC,KLASSEN ASC,S ASC
irgendwie passt das nicht zusammen :gruebel: Woher kommt das OR KLASSEN IN ("AG","Nh","SV")??? Hab ich da was übersehen??
Ich würde bspw. das SQL-Statement so aufbauen, sprich die Bedingungen vernünftig zusammenfassen (Stichwort: Klammern!):
SQL-Code:
SELECT * FROM "VT07_08"
  WHERE ( S NOT IN ("M","E","H")
          AND ( BETKLA IN ("AG=","Nh=","SV=")
                OR KLASSEN IN ("AG","Nh","SV")
               )
         )
         AND DATUM=:today
  ORDER BY KLASSEN ASC,S ASC
Sortierung nach Datum hab ich mir geschenkt - weil: warum danach sortieren , wenn eh nur ein bestimmtes Datum (nämlich der heutige Tag) ausgeguckt wird???


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:47 Uhr.
Seite 2 von 2     12   

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