Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi zur MySQL Verbinden und Einträge überprüfen (https://www.delphipraxis.net/73129-zur-mysql-verbinden-und-eintraege-ueberpruefen.html)

iron 12. Jul 2006 21:09

Datenbank: mySQL • Zugriff über: mySQL direkt

zur MySQL Verbinden und Einträge überprüfen
 
Hallo Leute,

Hab mir mal das Tutorial hier angesehen, www.dsdt.info/tutorials/mysqldirect/

Funzt auch alles recht gut mit dem Connencten zu meiner Datenbank, allerdings ist mir noch nich klar wie ich
den Inhalt überprüfen kann.

also hier mal den Code
Delphi-Quellcode:
   
  procedure TForm1.BitBtn1Click(Sender: TObject);
  var dwConnectionTypes: DWORD;
  begin

  if not InternetGetConnectedState(@dwConnectionTypes, 0) then
    // not connected
  if not InternetAutodial(INTERNET_AUTODIAL_FORCE_ONLINE or
  INTERNET_AUTODIAL_FORCE_UNATTENDED, 0) then
 
   begin
   FMysql.Free;
   if FResult<>nil then
   FResult.free;
   Form1.Close
   end;
     
  FMysql.Host := 'http://localhost/............';
  FMysql.port := 3306;
  FMysql.user :='.............';
  FMysql.password := '.............';
  FMysql.UnixSocket := '';
  FMysql.Db := '.............'; // Datenbank auf dem Server
  FMysql.UseNamedPipe := false;
  FMysql.UseSSL := false;
  FMysql.Compress := true;
  FMysql.TrySockets := false;
 
  if FMysql.Connect then Form4.Show;

  if FMysql.Connect
  then Form4.Label1.Caption := 'Verbindung aufgebaut, Benutzer wird überprüft, Bitte Warten'
  else Form4.Label1.Caption := 'Fehler beim Verbinden: '+FMysql.LastError;

 
  end;
Nun ich habe auf der ersten Form ein Edit, wo der jenige seinen Usernamen einträgt.
Auf einen klick auf den Button verbindet sich das Programm mit dem Internet, und dem Server der Datenbank.
Danach öffnet sich eine neue Form.

Wie kann ich nun das so machen das nach dem Verbinden zur Datenbank der Username, den der jenige eingetragen hat, mit der Datenbank verglichen wird, und das Programm dann dementsprechend handelt

vielleicht kenn sich ja jemand mit funpic.de aus, auf dem liegt meine Datenbank.

Danke an alle schonmal

mkinzler 12. Jul 2006 21:14

Re: zur MySQL Verbinden und Einträge überprüfen
 
Zitat:

Wie kann ich nun das so machen das nach dem Verbinden zur Datenbank der Username, den der jenige eingetragen hat, mit der Datenbank verglichen wird, und das Programm dann dementsprechend handelt
Ist das der Benutzer der Datenbank? Oder ein Benutzername, der in der Datenbank steht?

iron 12. Jul 2006 21:16

Re: zur MySQL Verbinden und Einträge überprüfen
 
Das soll der benutzer sein der in der Datenbank steht

mkinzler 12. Jul 2006 21:26

Re: zur MySQL Verbinden und Einträge überprüfen
 
Wie sieht die Tabelle aus?

Du mußt dafür eine Abfrage in der art machen:
SQL-Code:
select * from Users where Username = <benutzername>;

iron 12. Jul 2006 21:31

Re: zur MySQL Verbinden und Einträge überprüfen
 
Die Tabelle heist "user" es ist nur eine Spalte für die verschiedenen Namen vorhanden.

Und wie erstelle ich so ne Abfrage, damit kenne ich mich nich aus, iss mein erstes mal mit so ner Datenbank.

Ich stehe da, wie ein Affe vor dem Scheunentor

mkinzler 12. Jul 2006 21:34

Re: zur MySQL Verbinden und Einträge überprüfen
 
Schau mal auf der seite 4 des von dir genannten Tutorial

iron 12. Jul 2006 21:44

Re: zur MySQL Verbinden und Einträge überprüfen
 
SELECT * FROM `User` WHERE 1, steht bei der Abfrage des PhPmyAdmin, nur wie kann ich das dafür werwenden.

habe den Code der Abfrage des Tutorials mal verwendet und dann die Abfrage eingegeben und das
hat schon mal geklappt, aber wie kann ich das nun verbinden das der jenige sein Usernamen ins Edit eingibt,
das mit der Tabelle verglichen wird und er mir sagt das zugriff erlaubt oder nich

mkinzler 12. Jul 2006 21:48

Re: zur MySQL Verbinden und Einträge überprüfen
 
Wie sieht die Tabelle genau aus (Metadaten=Felder)? Geht es dir nur darum festzustellen ob der eingegebene Benutzername in der Datenbank existiert oder sollen weitere Informationen zu diesem Benutzer ermittelt werden?

iron 12. Jul 2006 22:04

Re: zur MySQL Verbinden und Einträge überprüfen
 
Es geht nur drum das das Programm ermittelt ob der eingegebene Name Existiert, nichts weiter.


Ich weis nich ob dir das weiterhilft aber hier mal ein Bild der Tabelle.


*schnipp schnapp*

Iss also ne Datenbank für mehrere Namen die in dem Programm überprüft werden sollen

[edit=Sharky]Toten Link auf das Bild entfernt. Mfg, Sharky[/edit]

mkinzler 12. Jul 2006 22:09

Re: zur MySQL Verbinden und Einträge überprüfen
 
Ich galube du hast da was falsch verstanden. Was machst du wenn du mal 1000 oder mehr Benutzer hast? Tausend Felder? ;-)
Normalerweise würde sich eine derartige Struktur anbieten:

ID UserName Name ...
1 pmueller Peter Müller
2 smaier Susi Meier

iron 12. Jul 2006 22:15

Re: zur MySQL Verbinden und Einträge überprüfen
 
Ja da gebe ich dir recht, aber mir gings erst mal um die ausführung.

Ich wollt erst mal das mit dem überprüfen kennelernen, bevor ich mich daran mache,
die sache weiter auszubauen, außerdem bezweifle ich es 100 oder mehr Benutzer eintragen
zu müssen.

Erstmal Danke, das du dir die Zeit nimmst, mir das verständlich zu machen

mkinzler 12. Jul 2006 22:24

Re: zur MySQL Verbinden und Einträge überprüfen
 
Nur deine Struktur ist sehr schlecht, da um zu überprüfen ob ein Beutzer existiert alle Felder überprüft werden müßen.

Zitat:

select count( *) from Users where User1 = '<user>' or User2 = '<user>' or ...
währrend die Abfrage bei der anderen Lösung so aussehen würde:

SQL-Code:
select * from Users where Username = '<user>';
Und wenn ein neuer Benutzer dazukommt brauchst du nur ein Insert machen, anstatt wie bei deiner Lösung erst die Struktur der Tabelle und die Abfrage zu ändern.

iron 12. Jul 2006 22:30

Re: zur MySQL Verbinden und Einträge überprüfen
 
Na gut, dann werd ich mal drüber hirnen, und es nach deinem Vorschlag machen.

Ich danke dir für deine Geduld.

mkinzler 12. Jul 2006 22:40

Re: zur MySQL Verbinden und Einträge überprüfen
 
Keine Ursache.

iron 16. Jul 2006 10:14

Re: zur MySQL Verbinden und Einträge überprüfen
 
Hallo mkinzler,

Habe mir deinen Rat zu Herzen genommen und in die Tabelle jetz mit ID eingegeben.

Und habe es jetzt geschaft die Abfrage zu Formulieren und den Inhalt kann ich jetzt in eine Listbox anzeigen lassen.

Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
var q: string;
    ex: boolean;
    i:integer;
begin
//Verbindung zur Datenbank
FMysql.Host := 'http://localhost/ssfmessenger.ss.funpic.de';
FMysql.port := 3306;
FMysql.user :='ssfmessenger_02';
FMysql.password := 'saschascholz';
FMysql.UnixSocket := '';
FMysql.Db := 'ssfmessenger_02'; // 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;
q:='SELECT Name FROM username WHERE ID';
FResult := FMysql.query(q, true, ex);

if assigned(FResult) then begin
Form3.Listbox1.Items.Clear;
i:=-1;
FResult.First;
while not FResult.Eof do begin
i:=i+1;
Form3.Listbox1.items[i] :=FResult.FieldValueByName('Name');
FResult.Next;
stellt sich mir nur noch die Frage, wie kann ich jetzt den eingegebenen Namen im Edit
mit der Datenbank vergleichen ob er vorhanden ist.

Kannst du mir da eventuell helfen?

mkinzler 16. Jul 2006 10:22

Re: zur MySQL Verbinden und Einträge überprüfen
 
Anmerkungen zum vorhandenen Code:
In Zeile 21 reicht
SQL-Code:
SELECT Name FROM username;
Außerdem brauchst du die Zählervariable i nicht
Delphi-Quellcode:
Form3.Listbox1.items.add(FResult.FieldValueByName('Name'));
Um Herauszufinden, ob ein User vorhanden ist kannst du eine Select auf ihn machen:
SQL-Code:
Select * from username where name = '<name>';
Also z.B.

Select * from username where name = 'iron';[/sql]

Wenn du ein Ergebnis erhälst ist der Benutzer vorhanden.

iron 16. Jul 2006 10:30

Re: zur MySQL Verbinden und Einträge überprüfen
 
Ey Wunderbar, Danke für alles


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:39 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