![]() |
Sql Selcet fehler aber wo ?
Hallo :-D
Loginquery.SQL.Clear; loginquery.SQL.Text:='Select ID FROM USER_TABELLE WHERE USERNAME='+ ed_username.Text +' AND PASSWORT='+ ed_Passwort.Text +''; Loginquery.Open; wenn ich das ausführe kommt 2 parameter wurden erwarte aber zuwenig übergeben. Was ist Falsch MFG... |
Re: Sql Selcet fehler aber wo ?
SQL erwartet Strings in einfachen Anführungszeichen - genauso wie Delphi. Du solltest es also so machen:
Delphi-Quellcode:
Dein SQL-String wird dann so übergeben:
Loginquery.SQL.Clear;
loginquery.SQL.Text:='Select ID FROM USER_TABELLE WHERE USERNAME='+ QuotedStr(ed_username.Text) +' AND PASSWORT='+ QuotedStr(ed_Passwort.Text) +''; Loginquery.Open;
SQL-Code:
Dann sollte es klappen.
Select ID FROM USER_TABELLE WHERE USERNAME='User' AND PASSWORT='Password'
Du kannst zwar auch Anführungzeichen manuell zufügen, aber Vorsicht: Wenn der Anwender in eines der Felder ein einfaches Anführungszeichen eingibt, bekommst Du dann einen SQL-Fehler, bzw. unter Umständen ist sogar die berüchtigte "SQL-Injection" möglich, d.h. die manuelle Eingabe von manipuliertem SQL-Code. Mit der Funktion QuotedStr werden dagegen alle in der Eingabe vorhandenen Anführungszeichen durch Verdoppelung entschärft. :coder: |
Re: Sql Selcet fehler aber wo ?
Ohh danke das scheint zu funktionieren doch jetze kommt eine andere Fehlermeldung!
Das Feld USERNAME wurde nicht gefunden! Allerdings wenn ich nur selcet *from USER_TABELLE mache funtkioniert es einwandfrei und die schreibweise von Username ist korrekt! |
Re: Sql Selcet fehler aber wo ?
Habe gerade selbst gebastelt und wenn ich
ID durch * ersetze funktioniert es aber warum ? loginquery.SQL.Text:='Select * FROM USER_TABELLE WHERE USERNAME='+ QuotedStr(ed_username.Text) +' AND PASSWORT='+ QuotedStr (ed_Passwort.Text) +''; |
Re: Sql Selcet fehler aber wo ?
Das ist merkwürdig. Welche DB verwendest Du?
|
Re: Sql Selcet fehler aber wo ?
Acsess und id ist mein Primärschlüssel !!
|
Re: Sql Selcet fehler aber wo ?
Das sollte eigentlich gehen. Versuche doch mal folgendes. Schreibe doch mal vor ID den Tabellennamen (mit Punkt getrennt) und setze auch mal "spaßeshalber" beide Teile (vor und nach dem Punkt) jeweils in "". Access hat bekannterweise ein paar Macken bei SQL-Befehlen.
|
Re: Sql Selcet fehler aber wo ?
Man sollte nach Möglichkeit nie Namen für Spalten wählen, die für SQL Schlüsselwörter sind. USERNAME dürfte ein solches Schlüsselwort sein. Ich hatte einmal ein ähnliches Problem, weil ich einer Spalte den Namen "TEXT" gegeben habe.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:13 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-2025 by Thomas Breitkreuz