AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Nur bestimmte Schulklassen (Datensätze) auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Nur bestimmte Schulklassen (Datensätze) auslesen

Offene Frage von "Svenkan"
Ein Thema von Svenkan · begonnen am 24. Nov 2007 · letzter Beitrag vom 25. Nov 2007
Antwort Antwort
Seite 1 von 2  1 2      
Svenkan

Registriert seit: 10. Feb 2007
Ort: Bersenbrück
547 Beiträge
 
Delphi 7 Enterprise
 
#1

Nur bestimmte Schulklassen (Datensätze) auslesen

  Alt 24. Nov 2007, 15:44
Datenbank: dBase • Zugriff über: TQuery
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:
H5a
H6a
H6b
H7a
Diese Klassen müssen nun so zusammengefügt werden, dass diese in eine WHERE-Bedingung passen.
Dafür habe ich folgende Funktion benutzt:

Delphi-Quellcode:
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;
Übergabe an Query:

Delphi-Quellcode:
  if FileExists(path+'\ABT'+abt+'.txt') then begin
   abteilung:=GetAbtString1(path+'\ABT'+abt+'.txt');
   abteilung:=' AND BETKLA IN ('+StringReplace(abteilung,',','',[])+')';
  end
  else
   abteilung:='';
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).

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;
Sven Kannenberg
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Nur bestimmte Klassen auslesen

  Alt 24. Nov 2007, 16:02
Lass dir mal den erzeugten String anzeigen
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Nur bestimmte Klassen auslesen

  Alt 24. Nov 2007, 16:03
Zitat von Svenkan:
... nur bestimmte Klassen ausgelesen werden. ...
Hai Svenkan,

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 diesen Thread gelesen und bemerkt das es wohl um "Schulklassen" geht

Du siehst also wie gut es ist am anfang ersteinmal zu beschreiben um was es eigentlich geht.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Svenkan

Registriert seit: 10. Feb 2007
Ort: Bersenbrück
547 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Nur bestimmte Klassen auslesen

  Alt 24. Nov 2007, 16:21
SQL-Code:
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
Ebenfalls ist unten als Vertretungslehrer 'Hec' drin; diese Vertretung gibt es an diesem Tag aber gar nicht.

Einträge
Montag: 134
Dienstag: 132
Mittwoch: 132
Donnerstag: 131
Freitag: 131

Schüler: http://svenkan.sv.ohost.de/vplan_fehler/vplan_index.htm
Lehrer: http://svenkan.sv.ohost.de/vplan_feh..._index_leh.htm
Sven Kannenberg
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#5

Re: Nur bestimmte Schulklassen (Datensätze) auslesen

  Alt 25. Nov 2007, 00:10
@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
  Mit Zitat antworten Zitat
Svenkan

Registriert seit: 10. Feb 2007
Ort: Bersenbrück
547 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Nur bestimmte Schulklassen (Datensätze) auslesen

  Alt 25. Nov 2007, 00:12
Sry, aber ich steh nich so ganz auf Abkürzungen..
Was meinst du mit ERM?
Sven Kannenberg
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Nur bestimmte Schulklassen (Datensätze) auslesen

  Alt 25. Nov 2007, 00:15
ERM = Entity Relation Model
Markus Kinzler
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#8

Re: Nur bestimmte Schulklassen (Datensätze) auslesen

  Alt 25. Nov 2007, 00:15
ERM = Entity Relationship Model oder auf Deutsch, dein Datenmodell

du hast doch eins entworfen, bevor du zu programmieren begonnen hattest... oder nicht...
  Mit Zitat antworten Zitat
Svenkan

Registriert seit: 10. Feb 2007
Ort: Bersenbrück
547 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Nur bestimmte Schulklassen (Datensätze) auslesen

  Alt 25. Nov 2007, 00:18
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.
Sven Kannenberg
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#10

Re: Nur bestimmte Schulklassen (Datensätze) auslesen

  Alt 25. Nov 2007, 00:24
wie wäre es da, die daten zu kapseln ...
  • die daten in eine ordentliche datenbank zu schieben, mit 'n ordentlichen datenmodell, auf welchen dann die abfragen aufsetzen oder
  • die daten komplett in objekte einzulesen und die objekte stellen die entsprechenden zugriffsroutinen zur verfügung...
mit dem ganzen abkürzungsscheiss "S", da weisste doch 5 minuten nachdem du dein progy aus der hand gelegt hast, nicht mehr, was damit gemeint ist... dies nur so als kleiner tipp

PS: bei dem aktuellen buff, würd ich mich weigern da weiterzumachen ...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 10:24 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