![]() |
Datenbank: mySQL • Zugriff über: Internet
nochmal eine mySQL Frage....Login
Hallo nochmal,
Hab es jetz einigermaßen hinbekommen mit dem Abfragen, nur mein Problem iss noch das er beim eingeben alle eingaben Akzeptiert, ob sie in der Tabelle stehen oder nich. Also in meiner Foerm ist ein Edit, in diesem Edit soll der Benutzer des Programms seinen Usernamen eintragen dieser soll mit den einträgen der Tabelle in der Datenbank verglchen werden ob er vorhanden ist. die Namen der Benutzer werden manuell von mir in die Tabelle eingetragen, und mittlerweile sind es 12 Namen.
Delphi-Quellcode:
ich möchte es gerne hinbekommen das er nur die Namen, die in der Tabelle auch stehen, Akzeptiert.
//Datenbank abfragen
q:='Select Name from username = '+ Edit1.Text +' '; FResult := FMysql.query(q, true, ex); if assigned(FResult) then begin Form1.Hide; Form3.Show; end else ShowMessage('Benutzerdaten sind nicht korrekt'); Also kann mir einer Verraten was ich falsch gemacht habe? Ich hoffe es reicht der Source, wenn nich gebe ich den ganzen noch nach. Vielen Dank |
Re: nochmal eine mySQL Frage....Login
hi ich vermute mal ich weiß wo dein problem liegt:
und zwar hier:
Delphi-Quellcode:
das 2. hochkomma nimmt deine datanbank komponente vermutlich als ende des strings an!!!
q:='Select Name from username = '+ Edit1.Text +' ';
probiers mal so:
Delphi-Quellcode:
ich hoffe mal das dass dein fehler war und jetzt alles geht ;)
q:='Select Name from username = "'+ Edit1.Text +'" ';
|
Re: nochmal eine mySQL Frage....Login
En, damit Akzeptiert er garkeine eingabe mehr
|
Re: nochmal eine mySQL Frage....Login
Ich denke mal das Deine SQL Syntax nicht korrekt ist
SQL-Code:
Probiers mal damit
q := 'Select Name from username where Username = '+QuotedtStr(Edit1.Text);
|
Re: nochmal eine mySQL Frage....Login
kann das sein das deine sql syntax falsch is???
also wir bei uns im geschäft haben auch ne mysql db und wenn ich da einen user anlege ist der in der datenbank mysql in der tabelle user dann angelegt... will ich jetzt auf nen user aus dieser tabelle abfragen dann würde mein sql statement ungefähr so aussehen:
Delphi-Quellcode:
q:= 'Select Host From mysql.user
Where Host = "'edit1.text'"' |
Re: nochmal eine mySQL Frage....Login
Danke für eure Vorschläge aber die gehen nich, ich hab einen Haufen Fehelermeldungen dabei
|
Re: nochmal eine mySQL Frage....Login
Also vermute mal so sollte die SQL Anweisung aussehen ...
Delphi-Quellcode:
q:='Select Name from TABELLE WHERE username = '''+ Edit1.Text +''' ';
Aber je nach verwendete Datenbank Komponenten würde ich mir das ParamByName oder so mal anschauen, ist einfach besser zu arbeiten mit Parameter. |
Re: nochmal eine mySQL Frage....Login
versuch es mal so:
Delphi-Quellcode:
dann musst du noch denn SQL.Execute machen damit er auch den Befehl verarbeiten kann und dann Refresh damit die Ergebnisse in der tabelle erscheinen
q:='SELECT NAME FROM USERNAME WHERE NAME LIKE' +Edit1.Text+'';
|
Re: nochmal eine mySQL Frage....Login
Leider schreibst Du nicht mit was Du zugreifst und welche MySQL Version Du verwendest.
Hier ein Bsp. wie Ich es machen würde (MySQL Ver. 4.1, Zeos 3.5)
Delphi-Quellcode:
oder wie schon erwähnt mit Params
procedure TUserForm.SQL_Open;
begin UserQuery.Sql.Clear; UserQuery.Sql.Add('SELECT Name'); UserQuery.Sql.Add('FROM Tabelle'); UserQuery.Sql.Add('Where UserName = ' + QuotedStr(Edit1.Text); UserQuery.Open; end; |
Re: nochmal eine mySQL Frage....Login
Na gut dann hiermal noch diese Daten
Zugreifen tu ich mit mySQL direkt von ![]()
Delphi-Quellcode:
Wie gesagt das verbinden klappt und auch das auslesen der Datenbank in eine listbox
procedure TForm1.BitBtn1Click(Sender: TObject);
var q: string; ex: boolean; begin //Verbindung zur Datenbank herstellen FMysql.Host := 'localhost'; FMysql.port := 3306; FMysql.user :='root'; FMysql.password := 'ironhead31'; FMysql.UnixSocket := ''; FMysql.Db := 'messenger'; // Datenbank auf dem Server FMysql.UseNamedPipe := false; FMysql.UseSSL := false; FMysql.Compress := true; FMysql.TrySockets := false; if assigned(FResult) then begin if FMysql.Status<>MYSQL_STATUS_READY then FreeAndNil(FResult); end; //Datenbank abfragen q:='Select Name from username = '+ Edit1.Text +' '; FResult := FMysql.query(q, true, ex); if assigned(FResult) then begin Form1.Hide; Form3.Show; end else ShowMessage('Benutzerdaten sind nicht korrekt'); funktioniert. Also gehe ich davon aus das alles soweit korrekt ist, nur halt mit den Namen hauts nich hin, da Akzeptiert er alles was ins Edit geschrieben wird und nicht nur die Daten die auch in der Tabelle drinstehen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:35 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