![]() |
Datenbank: dBase • Zugriff über: TQuery
Nur bestimmte Schulklassen (Datensätze) auslesen
Ich möchte, dass aus meiner *dbf nur bestimmte Klassen ausgelesen werden.
Diese werden in der Spalte BETKLA in der Form 'R5a=R5b=' etc gespeichert. Um nun den Abteilungsplan ausgeben zu können, müssen die nötigen Klassen aus der Datei ABTxxx.txt abgerufen werden. Inhalt z.B.
Code:
Diese Klassen müssen nun so zusammengefügt werden, dass diese in eine WHERE-Bedingung passen.
H5a
H6a H6b H7a Dafür habe ich folgende Funktion benutzt:
Delphi-Quellcode:
Übergabe an Query:
function GetAbtString1(myFile:String): String;
var klasse: String; s: String; f: Textfile; begin AssignFile(f,myFile); Reset(f); while not eof(f) do begin ReadLn(f,s); klasse:=klasse+','+'"'+StringReplace(s,' ','',[rfReplaceAll])+'="'; end; CloseFile(f); Result:=klasse; end;
Delphi-Quellcode:
Problem: manchmal kommen da völlig unlogische Dinge bei raus! Der Query liefert teilweise Ergebnisse, die gar nicht gefordert sind (z.B. irgendwelche Daten, die vom Datum her lange zurückliegen und nicht mit der Abfrage übereinstimmen).
if FileExists(path+'\ABT'+abt+'.txt') then begin
abteilung:=GetAbtString1(path+'\ABT'+abt+'.txt'); abteilung:=' AND BETKLA IN ('+StringReplace(abteilung,',','',[])+')'; end else abteilung:='';
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; |
Re: Nur bestimmte Klassen auslesen
Lass dir mal den erzeugten String anzeigen
|
Re: Nur bestimmte Klassen auslesen
Zitat:
ich habe jetzt fast zwei Minuten auf dein Posting geschaut und mich gefragt was Du für Klassen (im Sinne von TClass) aus einer DB ziehen möchtest. Dann habe ich zufällig ![]() Du siehst also wie gut es ist am anfang ersteinmal zu beschreiben um was es eigentlich geht. |
Re: Nur bestimmte Klassen auslesen
SQL-Code:
Ebenfalls ist unten als Vertretungslehrer 'Hec' drin; diese Vertretung gibt es an diesem Tag aber gar nicht.
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 Einträge Montag: 134 Dienstag: 132 Mittwoch: 132 Donnerstag: 131 Freitag: 131 Schüler: ![]() Lehrer: ![]() |
Re: Nur bestimmte Schulklassen (Datensätze) auslesen
@Svenkan: was ich mich frage, hast du dir denn gedanken über das datenmodell gemacht... als du angefangen hast zu programmieren...
falls es noch nicht zu spät ist.. würd ich damit mal beginnen... wie sieht denn bspw. dein aktuelles ERM aus? dank und gruss GG |
Re: Nur bestimmte Schulklassen (Datensätze) auslesen
Sry, aber ich steh nich so ganz auf Abkürzungen..
Was meinst du mit ERM? |
Re: Nur bestimmte Schulklassen (Datensätze) auslesen
ERM = Entity Relation Model
|
Re: Nur bestimmte Schulklassen (Datensätze) auslesen
ERM = Entity Relationship Model oder auf Deutsch, dein Datenmodell
du hast doch eins entworfen, bevor du zu programmieren begonnen hattest... oder nicht... |
Re: Nur bestimmte Schulklassen (Datensätze) auslesen
OK, ich selbst wusste bisher nicht so ganz, was damit gemeint ist. (hoffe mal, das Richtige gefunden zu haben^^)
Auf alle Fälle: die Struktur der Datenbank kommt nicht von mir! Diese wird von einem - nicht von mir erstellten Programm - erzeugt. Ich lasse die Daten nur auslesen und in HTML-Dateien exportieren. |
Re: Nur bestimmte Schulklassen (Datensätze) auslesen
wie wäre es da, die daten zu kapseln ...
PS: bei dem aktuellen buff, würd ich mich weigern da weiterzumachen ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:33 Uhr. |
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