Re: In SQL Anweisung Feld Inhalt abfragen lassen
Zitat:
Also das:
Delphi-Quellcode:
geht auch, sieht komisch aus - aber okay.
''' + Datum2.text + ''''
Gleiches Ergebnis wie mit ". |
Re: In SQL Anweisung Feld Inhalt abfragen lassen
oder
Delphi-Quellcode:
Sieht besser aus. Für mich sieht eher die Pfadangabe nach FROM komisch aus. Warum nutzt Du keine BDE-Aliase (in Verbindung mit TDatabase im Programm)?
sSQL := 'SELECT * FROM "t:eDienstreisebuch\mainDBalt.dbf" where dienst_pkw = ' + QuotedStr (PKW.Text);
|
Re: In SQL Anweisung Feld Inhalt abfragen lassen
Zitat:
|
Re: In SQL Anweisung Feld Inhalt abfragen lassen
Zitat:
Der Code ist interessant, so könnte man sogar (eventuell) nach der Uhrzeit gucken lassen. Aber alles nach und nach. Jetzt fehlt mir noch n kleines Stück Wissen, bis ich den Code auch tatsächlich verwenden kann. Es ist ja so, ein User trägt sein Antrag ein, dass Programm schaut ob an dem Tag das Auto welches er haben möchte frei ist, wenn ja - dann soll der Datensatz einfach eingestellt werden. Sollte der gewünschte Wagen aber schon vergeben sein, so muss eine Meldung erscheinen (z.B. durch aufpoppen eines neuen Forms) und es muss der Datensatz angezeigt werden, der den Wagen schon belegt. Aber wie schreib ich den SQL Code um, dass wenn es ein Ergebnis gibt (sprich: der Wagen schon weg ist) auch eine Handlung vom Programm ausgeführt wird. Bis jetzt schreibt er das Ergebnis ja nur in ein Query, den ich über n Grid ausgeben lasse. Ideen? Gibts da eine Lösung oder muss ich ganz anders rangehen? [edit=sakura] :wall: Doppel-Post, dritten Post, vierten Post und :!: fünften Post :shock: gelöscht. Mfg, sakura[/edit] |
Re: In SQL Anweisung Feld Inhalt abfragen lassen
Moin.
Also wenn ich dich richtig verstanden habe, willst du eine eierlegende Wollmilchsau. :zwinker: Nehme eine Query, die prüft, ob es schon Einträge für das Auto zu dem Zeitpunkt gibt. (Genau das macht der Code in dem anderem Thread) Wenn die Abfrage nix gefunden hat kannst du normal weitermachen, andernfalls eine Meldung ausgeben. |
Re: In SQL Anweisung Feld Inhalt abfragen lassen
@sakura
Das war wirklich nicht meine Absícht, ich hab immer nur Fehlermeldungen vom Browser erhalten, und dann auf ein neues versucht. Das es am Ende so schlimm aussah, wusste ich nicht. Sorry. Kleines Problem gibts noch mit dem Code. Ich hab dafür ja ein Testprogramm erstellt, nun wollte ich es übernehmen. Das Problem liegt in den verwendeten Komponenten, die Abfrage welcher PKW genutzt werden soll, erfolgt über eine DBCombobox. Kein Problem, läßt sich in der Form abgreifen:
Delphi-Quellcode:
Das Datum hingegen, stammt aus dem DateTimePicker. Und läßt sich natürlich nicht so einfach abgreifen,
Dienst_Pkw.text
ich habs dann mit:
Delphi-Quellcode:
versucht. Klang mir recht logisch.
DateT.Date
Der Code sieht demzufolge nun so aus:
Delphi-Quellcode:
Delphi mag aber nicht compilieren, Delphi sagt dazu:
var
sSQL: string; Procedure TForm1.Button9Click(Sender: TObject); Begin Query2.Close; Query2.SQL.Clear; sSQL := 'SELECT * FROM "t:eDienstreisebuch\mainDB.dbf" where dienst_pkw = "' + Dienst_Pkw.text + '" AND datum = ''' + DateT.Date + ''''; Query2.sql.add(sSQL); Query2.Active:=True; Zitat:
Delphi-Quellcode:
schreiben, aber in SQL funktioniert jenes nicht.
AsDateTime := DateT.Date;
Wie kann ich das Problem lösen... es hindert jetzt extrem am Fertigstellen... . *seufz* |
Re: In SQL Anweisung Feld Inhalt abfragen lassen
Wenn du SQL-Variablen benutzt bekommst du 1. ein paar Probleme weniger und 2. läuft es nächsten Ausführen wesentlich schneller.
Delphi-Quellcode:
p.s.: Die Lesbarkeit ist so auch wesentlich besser...
Query1.SQL.TEXT :=
'SELECT *' + #10 + 'FROM "t:eDienstreisebuch\mainDB.dbf"' + #10 + 'WHERE Dienst_PKW = :iDienst_PKW And' + #10 + ' Datum = :iDateT'; Query1.prepare; Query1.ParamByName('iDienst_PKW').AsString := Dienst_Pkw.text; Query1.ParamByName('iDateT').AsDateTime := DateT.DateTime; Query1.open; |
Re: In SQL Anweisung Feld Inhalt abfragen lassen
Zitat:
brauch ich für prepare ein neuen Query? Weil du Query1 geschrieben hast, ich momentan für den eigentlichen Code allerdings Query 2 nutze. Wofür steht eigentlich '+ #10 +'? Nur damit ich auch mal n wenig was lerne. |
Re: In SQL Anweisung Feld Inhalt abfragen lassen
:oops:
Ich hatte mich verschrieben. Es sollte in der ersten Zeile auch "Query1" stehen (ich werden den Post abändern) #10 ist ein LineFeed und reicht in SQL als Zeilenumbruch (du brauchst kein #13#10) |
Re: In SQL Anweisung Feld Inhalt abfragen lassen
Verdammt,
da gibts noch n Problem mit deinem Code. Er schaut jetzt im Programm so aus:
Delphi-Quellcode:
Ein Fehler fällt auf, die Zeile die ich ausgeklammert habe, kann in der Form ja auch nicht funktionieren. Denn sSQL ist ja nicht mehr vorhanden, die Deklaration davon - könnte ich also auch entfernen.
var
sSQL: string; procedure TForm1.Button2Click(Sender: TObject); begin Query2.Close; Query2.SQL.Clear; Query2.SQL.Text := 'SELECT *' + #10 + 'FROM "t:eDienstreisebuch\mainDB.dbf"' + #10 + 'WHERE Dienst_PKW = :iDienst_PKW And' + #10 + ' Datum = :iDateT'; Query2.prepare; Query2.ParamByName('iDienst_PKW').AsString := Dienst_Pkw.text; Query2.ParamByName('iDateT').AsDateTime := DateT.DateTime; Query2.open; //Query2.sql.add(sSQL); Query2.Active:=True; if Query2.Bof and Query2.Eof then begin ShowMessage('Dateneingabe'); end else ShowMessage('Keine Daten'); Nun sieht es leider so aus, dass das Programm immer
Delphi-Quellcode:
ausführt, niemals
then begin ShowMessage('Dateneingabe');
Delphi-Quellcode:
[/delphi]. Auch wenn es eine Summe im Query gibt.
else ShowMessage('Keine Daten');
Der alte Code, der funktioniert hat sah so aus:
Delphi-Quellcode:
Dabei gabs dann aber das Problem mit dem DateTimePicker... .
var
sSQL: String; procedure TForm1.Button1Click(Sender: TObject); begin Query2.Close; Query2.SQL.Clear; sSQL := 'SELECT * FROM "t:eDienstreisebuch\mainDBalt.dbf" where dienst_pkw = "' + PKW.Text + '" AND datum = ''' + Datum2.text + ''''; Query2.sql.add(sSQL); Query2.Active:=True; if Query2.Bof and Query2.Eof then ShowMessage('Keine Daten'); end; Was hab ich denn an dem Code oben falsch gemacht? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:09 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