Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Ungültiges Schlüsselwort (https://www.delphipraxis.net/23776-ungueltiges-schluesselwort.html)

PES 9. Jun 2004 15:05


Ungültiges Schlüsselwort
 
Hallo habe folgendens code
SQL-Code:
 
  Query2.Close;
  Query2.SQL.Clear;
  Query2.SQL.Add ('SELECT count(*) as anzahl2 from Auftrag where  FormAuftragaendern.DBCheckBoxEingestellt:=checked');
  Query2.Open;
Bekomme immer Die Fehlermeldung:
Ungültiges Schlüsselwort FormAuftragaendern.DBCheckBoxEingestellt


Oder funzt es nicht weil die form ja nicht in der tabelle Auftrag vorhanden ist? Wäre mein Tipp.
Die spalte in der tabelle heißt Statuseingestellt. Und ich möchte diese zählen die den eintrag true haben. Hat jemand ne ahnung??


Danke Pes

CalganX 9. Jun 2004 15:12

Re: Ungültiges Schlüsselwort
 
Hi,
ich denke deine SQL-Abfrage muss so lauten:
SQL-Code:
SELECT count(*) AS anzahl2 FROM Auftrag WHERE FormAuftragaendern.DBCheckBoxEingestellt = 'checked'
Chris

Smokey 9. Jun 2004 15:16

Re: Ungültiges Schlüsselwort
 
wie du schon richtig vermutet hast, kann SQL mit deiner Form nichts anfangen weil es sich nur auf die Datenbank bezieht.
Wenn du Abfragen willst wo True ist dann einfach mit :

SQL-Code:
SELECT
  count(*) AS anzahl2 
FROM
  Auftrag
WHERE
  statuseingestellt = true
wenn "statuseingestellt vom Typ String/Varchar/Text oder wie auch immer ist, muss True in ""

PES 9. Jun 2004 15:17

Re: Ungültiges Schlüsselwort
 
So habe ich folgendes:

Fehlermeldung Bezeichner 'checked' nicht gefunden.

PES 9. Jun 2004 15:21

Re: Ungültiges Schlüsselwort
 
Hallo Smokey, danke deine Lösung läuft :bounce1:

struppelohr 31. Mai 2005 19:26

Re: Ungültiges Schlüsselwort
 
Habe das gleiche Problem, arbeiten mit Delphi 5 und einem MySQL Server sowie der ZeosKomp.

Delphi-Quellcode:
procedure btnclick....

var schaltung : string;

begin
query2.active:=false;
query2.close;

schaltung:= char(39) + combobox1.text + char(39); { hier kann man auch auf itemindex gehn spielt hier keine rolle }

query2.sql.add('select *' + 'from auto' + where Getriebe' + '=' + schaltung);
query2.open;
query2.active:=true;
end;
Bekommen immer das Problem das er meistens das ='Automatik' (hier kann auch ein anderer Wert stehn) als ungültiges Schlüsselwort anzeigt, oder nur das = als ungültiges Schlüsselwort....

haben viel probiert und mussten oben den String schon in viele ' ergänzen damit er die anderen nicht als ungültig anzeigt.

Weiss einer wo der Fehler ist?

[edit=MrSpock]Delphi Codes eingefügt. Mfg, MrSpock[/edit]

GuenterS 31. Mai 2005 19:50

Re: Ungültiges Schlüsselwort
 
Zitat:

Zitat von struppelohr
Habe das gleiche Problem, arbeiten mit Delphi 5 und einem MySQL Server sowie der ZeosKomp.

procedure btnclick....

var schaltung : string;

begin
query2.active:=false;
query2.close;

schaltung:= char(39) + combobox1.text + char(39); { hier kann man auch auf itemindex gehn spielt hier keine rolle }

query2.sql.add('select *' + 'from auto' + where Getriebe' + '=' + schaltung);
query2.open;
query2.active:=true;
end;

Bekommen immer das Problem das er meistens das ='Automatik' (hier kann auch ein anderer Wert stehn) als ungültiges Schlüsselwort anzeigt, oder nur das = als ungültiges Schlüsselwort....

haben viel probiert und mussten oben den String schon in viele ' ergänzen damit er die anderen nicht als ungültig anzeigt.

Weiss einer wo der Fehler ist?

Meist hilf es wenn Du dir den zusammengestoppelten SQL String anschaust. In Deinem SQL Statement fehlen auch ein ', aber ich denk das ist hier beim Posten verlorengegangen.

marabu 31. Mai 2005 21:10

Re: Ungültiges Schlüsselwort
 
Zitat:

Zitat von struppelohr
Habe das gleiche Problem, arbeiten mit Delphi 5 und einem MySQL Server sowie der ZeosKomp.

So könnte es vielleicht gehen:

Delphi-Quellcode:
procedure btnclick
const
  sql = 'select * from auto where getriebe = ''%s''';
begin
  query2.sql.text := Format(sql, [ComboBox1.Text]);
  query2.open;
end;
Grüße vom marabu

Sharky 1. Jun 2005 05:55

Re: Ungültiges Schlüsselwort
 
Hai struppelohr,

ich kann es nur immer wiederholen. Versucht eure SQL-Befehle mit Parametern aufzubauen. Dann habt ihr wesentlich weniger Probleme ;-)

Hier einmal ein Beispiel mit einigen Anmerkungen zu deinem Code:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  schaltung: string;
begin
  //  query2.active:=false; // Entweder aktive := false ODER .close
  query2.Close;
  schaltung := combobox1.Text; // Durch die Übergabe als Parameter sind die ' überflüssig
  query2.SQL.Clear; // Wenn man mit .Add arbeitet sollte man den SQL.Text vorher löschen
  query2.sql.add('select * from auto where Getriebe = :getriebe');
  query2.ParamCheck := True; // Parameterverarbeitung einschalten
  query2.ParamByName('getriebe').AsString := schaltung; // Parameter mit Wert füllen
  query2.Open;
  //  query2.active:=true; // Siehe oben
end;

struppelohr 1. Jun 2005 07:46

Re: Ungültiges Schlüsselwort
 
DAnke Euch beiden. ( man man der Sharky is n Frühaufsteher ;) )

Nun leuchtet mir vieles ein, jedoch wenn ich dein Bsp nehme Sharky, erhalte ich Fehlermeldung ungültiges Schlüsselwort auto.

Habe aber geschaut die Tabelle heisst auto und ist auch alles richtig per Datasource etc verknüpft, er zeigt mir ja im dbgrid alles an...

wie kann das denn jetzt zusammen hängen?

und nochmals vielen dank


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:19 Uhr.
Seite 1 von 2  1 2      

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