AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Invalid use of keyword. Token .....

Ein Thema von Gelson62 · begonnen am 8. Sep 2007 · letzter Beitrag vom 8. Sep 2007
Antwort Antwort
Seite 1 von 2  1 2      
Gelson62

Registriert seit: 8. Sep 2007
7 Beiträge
 
#1

Invalid use of keyword. Token .....

  Alt 8. Sep 2007, 18:21
Hallo zusammen

Habe folgenden Code in meinem Programm (Delphi 7):

Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
begin

DBGrid1.DataSource := DataSource4;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add ('Select * from Kunde.DB');
Query1.SQL.Add('where Request_Formular='+DateToStr(DateTimePicker3.Date));
Query1.RequestLive := true;
Query1.Open;

end;
Wenn ich das Programm laufen lasse und auf den Button klicke erscheint die Fehelermeldung:

Invalide use of keyword. Token = Request_Formular=23.08

Hier noch die Erklärung, was alles vorher abläuft, bevor das Programm zur Ausführung kommt:

Bevor man auf diesen Button klickt muss man ein Datum aus einer DateTimePicker Komponente auswählen. Danach klickt man auf den "Suchen"-Button und nun soll die obige SQL-Abfrage im Datenbank-Feld "Request_Formular" das ausgewählte Datum suchen und mir alle Datensätze anzeigen, welche das gesuchte Datum enthalten.

Leider geht's nit. Was ist falsch an diesem Code?? Vielen Dank für die Hilfe.
  Mit Zitat antworten Zitat
ConstantGardener

Registriert seit: 24. Jan 2006
Ort: Halberstadt
376 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Invalid use of keyword. Token .....

  Alt 8. Sep 2007, 19:52
Hallo Gelson62,

du solltest beim einbinden von Datumsangaben in SQL-Statements mit Parmetern arbeiten. Stichwort TQuery.ParamsByName....

Gruß ConstantGardener

ps. vor dem WHERE fehlt auch noch ein Leerzeichen !!
Andreas Schachtner
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Invalid use of keyword. Token .....

  Alt 8. Sep 2007, 20:08
Herzlich willkommen in der Delphi-PRAXiS, Gelson62.

Die Fehlermeldung rührt daher, dass du dein Datum nicht als String-Literal in das Statement eingefügt hast - QuotedStr(DateToStr(DateTimePicker3.Date)) wäre richtig gewesen. Da du aber oft erst Handbücher wälzen musst um heraus zu finden, welches Format beim Datum erwartet wird, ist es wirklich besser, wenn du mit Parameterübergabe arbeitest:

Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
begin
  DBGrid1.DataSource := DataSource4;
  with Query1 do
  begin
    SQL.Text := 'Select * from Kunde.DB where Request_Formular = :datum';
    Params.ParamByName.AsDateTime := Trunc(DateTimePicker3.Date);
    // RequestLive := True; // besser im Object Inspector setzen
    Open;
  end;
end;
Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
Gelson62

Registriert seit: 8. Sep 2007
7 Beiträge
 
#4

Re: Invalid use of keyword. Token .....

  Alt 8. Sep 2007, 20:18
Danke marabu für die Hilfe

Ich glaube aber, dass da nicht genügend Parameter vorhanden sind. Wenn ich das Script solaufen lasse wie Du es ^schreibst meldet der Compiler das nicht genügend Parameter da sind bei "Params.ParamByName.AsDateTime".
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#5

Re: Invalid use of keyword. Token .....

  Alt 8. Sep 2007, 20:20
Er meinte Params.ParamByName('datum').AsDateTime
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Gelson62

Registriert seit: 8. Sep 2007
7 Beiträge
 
#6

Re: Invalid use of keyword. Token .....

  Alt 8. Sep 2007, 20:28
Geht leider immer noch nicht. Compilieren kann er es jetzt, doch zur Laufzeit gibt es den Fehler:

Query1: Parameter 'datum' not found.

Bin vielleicht zu blöd um den Fehler zu sehen.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#7

Re: Invalid use of keyword. Token .....

  Alt 8. Sep 2007, 20:34
Wie sieht der Source denn jetzt aus?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Gelson62

Registriert seit: 8. Sep 2007
7 Beiträge
 
#8

Re: Invalid use of keyword. Token .....

  Alt 8. Sep 2007, 20:37
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
begin
  DBGrid1.DataSource := DataSource4;
  with Query1 do
  begin
    SQL.Text := 'Select * from Kunde.DB where Request_Formular = :datum';
    Params.ParamByName('datum').AsDateTime := Trunc(DateTimePicker3.Date);
    Open;
  end;
end;
Der sieht so aus
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#9

Re: Invalid use of keyword. Token .....

  Alt 8. Sep 2007, 20:39
Hi,

soweit ich mich erinnern kann, musst Du davor .UseParam(s) (oder ähnlich) auf true stellen:

Delphi-Quellcode:
  DBGrid1.DataSource := DataSource4;
  with Query1 do
  begin
    UseParams := true;
    SQL.Text := 'Select * from Kunde.DB where Request_Formular = :datum';
    Params.ParamByName('datum').AsDateTime := Trunc(DateTimePicker3.Date);
    Open;
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#10

Re: Invalid use of keyword. Token .....

  Alt 8. Sep 2007, 20:41
Das wäre mir neu. Aber evtl. hilft ein Close vor dem Neubelegen des SQL.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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 22:29 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