![]() |
Ungültiges Schlüsselwort
Hallo habe folgendens code
SQL-Code:
Bekomme immer Die Fehlermeldung:Query2.Close; Query2.SQL.Clear; Query2.SQL.Add ('SELECT count(*) as anzahl2 from Auftrag where FormAuftragaendern.DBCheckBoxEingestellt:=checked'); Query2.Open; 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 |
Re: Ungültiges Schlüsselwort
Hi,
ich denke deine SQL-Abfrage muss so lauten:
SQL-Code:
Chris
SELECT count(*) AS anzahl2 FROM Auftrag WHERE FormAuftragaendern.DBCheckBoxEingestellt = 'checked'
|
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:
wenn "statuseingestellt vom Typ String/Varchar/Text oder wie auch immer ist, muss True in ""
SELECT
count(*) AS anzahl2 FROM Auftrag WHERE statuseingestellt = true |
Re: Ungültiges Schlüsselwort
So habe ich folgendes:
Fehlermeldung Bezeichner 'checked' nicht gefunden. |
Re: Ungültiges Schlüsselwort
Hallo Smokey, danke deine Lösung läuft :bounce1:
|
Re: Ungültiges Schlüsselwort
Habe das gleiche Problem, arbeiten mit Delphi 5 und einem MySQL Server sowie der ZeosKomp.
Delphi-Quellcode:
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....
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; 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] |
Re: Ungültiges Schlüsselwort
Zitat:
|
Re: Ungültiges Schlüsselwort
Zitat:
Delphi-Quellcode:
Grüße vom marabu
procedure btnclick
const sql = 'select * from auto where getriebe = ''%s'''; begin query2.sql.text := Format(sql, [ComboBox1.Text]); query2.open; end; |
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; |
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 |
Re: Ungültiges Schlüsselwort
Wenn sich deine Version von MYSQL an auto stört, dann probiere es mal mit "auto".
marabu |
Re: Ungültiges Schlüsselwort
Zitat:
Aber, so ganz am Rande... ich würde in der Tabelle nicht die Bezeichnung des Getriebes speichern sonder die ID als Forenkey auf eine extra Tabelle für die Getriebearten. @marabu: "auto" würde eine Exception auslösen. Bei mySQL ist der Syntax : `auto` |
Re: Ungültiges Schlüsselwort
Zitat:
"Niemals reservierte Schlüsselwörter benützen, auch wenn es möglich wäre" Grund: falls später mal der Bedarf entsteht, mit externen Werkzeugen (z.B. M$ Access oder Data Mining Tools) auf die Datenbank zuzugreifen, gibt es sicher Probleme. Also die Tabelle von auto nach Fahrzeuge umbenennen und gut. |
Re: Ungültiges Schlüsselwort
an das 'true' könntest ja auch über ein "BoolToStr(frmFoos.cbBar.Checked, True)" herannkommen :) dann könnst das so wies is in dein sSql einbaun
|
Re: Ungültiges Schlüsselwort
so sqlstring läuft, im editor zeigt er mir genau an was sache ist, auch dank der namens änderung der tabelle :)
Nur nun refresht er mir nicht mehr den dbgrid, hab es eigentlich über navigatorbtn click auf refresh doch nun stürzt das prog nicht ab, aber es passiert auch nichts Das grid sollte ja eigentlich nach der sql abfrage nur noch die zeilen zeigen mit getriebe = automatik oder was auch immer tut er nicht, nur im editor :( gibts da n trick?! und schon mal mega viel danke :) dbnavigator2.btnclick(nbrefresh); dbgrid3.DataSource:=Datasource2; muss ich da noch was open closen? |
Re: Ungültiges Schlüsselwort
"muss ich da noch was open/closen"
naja, anstatt zu fragen, kann mans doch auch einfach mal probieren :P </senf> |
Re: Ungültiges Schlüsselwort
ja lol aber was denn?
wenn ich etwas in einer anderen tabelle einfüge geht das mittels dbnavigator1.btnclick(nbpost); dbnavigator1.btnclick(nbrefresh); jedoch geht das ja nich bei der suche :( gibts nich n kleinen tip?! :) *büdde* |
Re: Ungültiges Schlüsselwort
An irgendeiner Stelle wirst Du doch die Parameter für deine SQL-Abfrage setzen?
Danach einfach ein .Open und gut ist. |
Re: Ungültiges Schlüsselwort
Sharky du bist mein Big Fish im TEich :)
Funktioniert aber leider nicht... uach nicht so :/ procedure TForm1.BitBtn3Click(Sender: TObject); var schaltung: string; begin if ComboBox1.text='Handschaltung' then schaltung:=' Gang' else schaltung:=ComboBox1.Text; Query2.sql.clear; Query2.SQL.add('Select * from fahrzeug where Getriebe like '+chr(39)+schaltung+chr(39)); Query2.Open; end; dein quellcode geht ja aber macht auch da stop :( problem ist ja das grid müsste ja automatisch refreshen aber das tut es nicht :/ vermute es leigt an der db, denn alle andern tabellen funzen ja :/ werde es nue machen und dann posten ob es geht:) |
Re: Ungültiges Schlüsselwort
Liste der Anhänge anzeigen (Anzahl: 2)
ALso finde den fehler nicht, es muss ein Programmier-Fehler sein und bestimmt ein ganz dummer :/
Habe alles neu gemacht und DB neu doch es ist immer das gleiche :( Ein Kunde kann ohne Probleme eingefügt werden, und wird sofort im DBgrid angezeigt, bei den Autos ist das nicht der fall :/ Und eine Selectirung funzt auch nicht, man drückt auf den Button, doch nichts passiert ;/ hier mal der gesamte code PS: weiss ist sehr mikrig der coder aber mittel zum Zweck :& |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:05 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 by Thomas Breitkreuz