Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi [MySQL] Connectionstring zur Laufzeit setzen?? (https://www.delphipraxis.net/30116-%5Bmysql%5D-connectionstring-zur-laufzeit-setzen.html)

Akut-Programming 20. Sep 2004 11:24


[MySQL] Connectionstring zur Laufzeit setzen??
 
Ich hab ne Anwendung geschrieben, die auf MySQL aufsetzt. Da der ein oder andere User aber den MySQL root User mit einem Passwort geschützt hat, läuft bei denen die Anwendung nicht, da ich im eigentlichen Connectionstring kein Passwort angebe. Bei mir zuhause hat der root User ein Passwort, dies kann ich aber nicht eingeben, da ich in der ADOConnection LoginPromt abgeschalten habe. (Grund: Meine Anwendung hat ebenfalls einen Logindialog, zwecks der Multiuser Fähigkeit) - Ich will den Nutzern keine zwei Logindialoge darstellen. :roll: Daher meine Frage, ob ich z.B. beim ersten Start der Anwendung einen extra Dialog anzeigen kann, indem dann die nötigen Parameter für die Datenbank gesetzt werden und anschließend in einer .ini Datei gespeichert werden? -

Gruß,
Sascha

Duffy 20. Sep 2004 11:53

Re: [MySQL] Connectionstring zur Laufzeit setzen??
 
Hallo Sascha,
mach es doch so wie Du es geschrieben hast. Falls keine INI-Datei vorhanden ist, dann zeigst Du einen Dialog mit den von Dir gewünschten Daten an. Denk an die Pflichtfelder, da Du für eine mySql Verbindung die Felder brauchst. Dann alles in eine INI-Datei und beim Programmstart wird daraus ein Connectionstring erzeugt. Fertig.

bye
Claus

Akut-Programming 20. Sep 2004 11:59

Re: [MySQL] Connectionstring zur Laufzeit setzen??
 
Hmm naja so hab ichs mir eben gedacht! Würde es also ausreichen, wenn ich ein Grundgerüst des Connectionstrigs habe, und dann die benötigten Werte über Variablen einsetze??

Bsp:
Delphi-Quellcode:
Provider=MSDASQL.1;Persist Security Info=False;User ID='+varUserID+';Data Source='+varSource+';Extended Properties="DSN='+varDSN+';DESC=MySQL ODBC 3.51 Driver DSN;DATABASE='+varDB+';SERVER='+varServer+';UID='+varUID+';PASSWORD='+varPassword+';PORT='+varPort+';SOCKET=;OPTION=3;STMT=;"

Duffy 20. Sep 2004 12:01

Re: [MySQL] Connectionstring zur Laufzeit setzen??
 
Hallo Sascha,
ja genau. Nicht anders passiert in der ADO Komponente. Beim Connect werden dann die Parameter benutzt.

bye
Claus

Akut-Programming 20. Sep 2004 12:09

Re: [MySQL] Connectionstring zur Laufzeit setzen??
 
Hey Claus!

Jetzt stellt sich mir noch die Frage.. in der MySQL Datenbank "mysql" stehen ja in der Tabelle "user" die ganzen Nutzer für die Datenbanken. Die Passwörter für die User werden nun nicht im MD5 verschlüsselt.. wenn ich aber gewährleisten will, das sich die Anwendung bei gegebenen Werten automatisch connected, müsst ich das Passwort (sofern benötigt) ja ebenfalls in diesem Algorithmus verschlüsseln. Hast du da ne Idee, wie ich das machen kann? oder kann ich das Passwort sozusagen im Klartext übergeben?

Gruß,
Sascha

Jelly 20. Sep 2004 12:53

Re: [MySQL] Connectionstring zur Laufzeit setzen??
 
Zitat:

Zitat von Akut-Programming
oder kann ich das Passwort sozusagen im Klartext übergeben?

Du kannst nicht nur sondern es bleibt dir keine andere Wahl.

Gruß,

Akut-Programming 20. Sep 2004 13:06

Re: [MySQL] Connectionstring zur Laufzeit setzen??
 
:gruebel: Hmm alles kloar! Dank dir. :thumb:

shmia 20. Sep 2004 13:57

Re: [MySQL] Connectionstring zur Laufzeit setzen??
 
User und Passwort können unabhängig vom Connection-String angegeben werden:
Delphi-Quellcode:
   if MeinLoginDialog.ShowModal = mrOK then
   begin
      ADOConnection1.ConnectionString := ......;
      // nicht Active := True sondern .Open aufrufen !!!
      ADOConnection1.Open(MeinLoginDialog.User, MeinLoginDialog.Password);
   end
   else
      Abort;

Jelly 20. Sep 2004 14:03

Re: [MySQL] Connectionstring zur Laufzeit setzen??
 
Zitat:

Zitat von shmia
User und Passwort können unabhängig vom Connection-String angegeben werden

Was aber nix an der Tatsache ändern, daß die Daten unverschlüsselt zum Server übertragen werden.


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