Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi nochmal eine mySQL Frage....Login (https://www.delphipraxis.net/73388-nochmal-eine-mysql-frage-login.html)

iron 17. Jul 2006 13:58

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:
//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');
ich möchte es gerne hinbekommen das er nur die Namen, die in der Tabelle auch stehen, Akzeptiert.


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

Andidreas 17. Jul 2006 14:11

Re: nochmal eine mySQL Frage....Login
 
hi ich vermute mal ich weiß wo dein problem liegt:

und zwar hier:
Delphi-Quellcode:
q:='Select Name from username = '+ Edit1.Text +' ';
das 2. hochkomma nimmt deine datanbank komponente vermutlich als ende des strings an!!!

probiers mal so:

Delphi-Quellcode:
q:='Select Name from username = "'+ Edit1.Text +'" ';
ich hoffe mal das dass dein fehler war und jetzt alles geht ;)

iron 17. Jul 2006 14:13

Re: nochmal eine mySQL Frage....Login
 
En, damit Akzeptiert er garkeine eingabe mehr

uwewo 17. Jul 2006 14:18

Re: nochmal eine mySQL Frage....Login
 
Ich denke mal das Deine SQL Syntax nicht korrekt ist
SQL-Code:
 q := 'Select Name from username where Username = '+QuotedtStr(Edit1.Text);
Probiers mal damit

Andidreas 17. Jul 2006 14:23

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'"'

iron 17. Jul 2006 14:35

Re: nochmal eine mySQL Frage....Login
 
Danke für eure Vorschläge aber die gehen nich, ich hab einen Haufen Fehelermeldungen dabei

Gruber_Hans_12345 17. Jul 2006 14:42

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.

Avax2k 17. Jul 2006 14:45

Re: nochmal eine mySQL Frage....Login
 
versuch es mal so:

Delphi-Quellcode:
q:='SELECT NAME FROM USERNAME WHERE NAME LIKE' +Edit1.Text+'';
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

uwewo 17. Jul 2006 14:48

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:
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;
oder wie schon erwähnt mit Params

iron 17. Jul 2006 15:23

Re: nochmal eine mySQL Frage....Login
 
Na gut dann hiermal noch diese Daten

Zugreifen tu ich mit mySQL direkt von http://www.dsdt.info/tutorials/mysqldirect/


Delphi-Quellcode:
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');
Wie gesagt das verbinden klappt und auch das auslesen der Datenbank in eine listbox
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 13:52 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