AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi nochmal eine mySQL Frage....Login
Thema durchsuchen
Ansicht
Themen-Optionen

nochmal eine mySQL Frage....Login

Ein Thema von iron · begonnen am 17. Jul 2006 · letzter Beitrag vom 17. Jul 2006
Antwort Antwort
Seite 1 von 2  1 2      
iron

Registriert seit: 10. Jul 2006
Ort: Berlin
113 Beiträge
 
Delphi 2005 Personal
 
#1

nochmal eine mySQL Frage....Login

  Alt 17. Jul 2006, 14:58
Datenbank: mySQL • Zugriff über: Internet
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
wer früher stirbt, ist länger Tot

Berliner Community http://berliner-cafe.de
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

Re: nochmal eine mySQL Frage....Login

  Alt 17. Jul 2006, 15:11
hi ich vermute mal ich weiß wo dein problem liegt:

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

probiers mal so:

q:='Select Name from username = "'+ Edit1.Text +'" '; ich hoffe mal das dass dein fehler war und jetzt alles geht
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
iron

Registriert seit: 10. Jul 2006
Ort: Berlin
113 Beiträge
 
Delphi 2005 Personal
 
#3

Re: nochmal eine mySQL Frage....Login

  Alt 17. Jul 2006, 15:13
En, damit Akzeptiert er garkeine eingabe mehr
wer früher stirbt, ist länger Tot

Berliner Community http://berliner-cafe.de
  Mit Zitat antworten Zitat
uwewo

Registriert seit: 14. Jul 2004
Ort: Karlsruhe
479 Beiträge
 
Delphi 2006 Professional
 
#4

Re: nochmal eine mySQL Frage....Login

  Alt 17. Jul 2006, 15:18
Ich denke mal das Deine SQL Syntax nicht korrekt ist
 q := 'Select Name from username where Username = '+QuotedtStr(Edit1.Text); Probiers mal damit
Uwe
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

Re: nochmal eine mySQL Frage....Login

  Alt 17. Jul 2006, 15:23
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'"'
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
iron

Registriert seit: 10. Jul 2006
Ort: Berlin
113 Beiträge
 
Delphi 2005 Personal
 
#6

Re: nochmal eine mySQL Frage....Login

  Alt 17. Jul 2006, 15:35
Danke für eure Vorschläge aber die gehen nich, ich hab einen Haufen Fehelermeldungen dabei
wer früher stirbt, ist länger Tot

Berliner Community http://berliner-cafe.de
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.439 Beiträge
 
Delphi 2007 Professional
 
#7

Re: nochmal eine mySQL Frage....Login

  Alt 17. Jul 2006, 15:42
Also vermute mal so sollte die SQL Anweisung aussehen ...

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.
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Avax2k

Registriert seit: 6. Okt 2005
186 Beiträge
 
Delphi 2005 Professional
 
#8

Re: nochmal eine mySQL Frage....Login

  Alt 17. Jul 2006, 15:45
versuch es mal so:

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
  Mit Zitat antworten Zitat
uwewo

Registriert seit: 14. Jul 2004
Ort: Karlsruhe
479 Beiträge
 
Delphi 2006 Professional
 
#9

Re: nochmal eine mySQL Frage....Login

  Alt 17. Jul 2006, 15:48
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
Uwe
  Mit Zitat antworten Zitat
iron

Registriert seit: 10. Jul 2006
Ort: Berlin
113 Beiträge
 
Delphi 2005 Personal
 
#10

Re: nochmal eine mySQL Frage....Login

  Alt 17. Jul 2006, 16:23
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.
wer früher stirbt, ist länger Tot

Berliner Community http://berliner-cafe.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:59 Uhr.
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