Announcement

Collapse
No announcement yet.

Connectionstring SQL

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Connectionstring SQL

    Hallo,

    ich möchte in meiner Anwendung den Connectionstring zur SQL-Datenbank generieren. Das funktioniert auch wunderbar mit PromptDataSource.

    Jetzt möchte ich aber nicht diesen Standard-Dialog aufrufen, sondern einen eigenen generieren. Mein Ziel ist, zu vermeiden, dass jemand Benutzer und Passwort etc. eingeben kann, da dieses vorgegeben wird. Es soll nur die Instanz und die Datenbank ausgewählt werden können.

    Meine Frage ist, kann man so einen Dialog selbst erstellen, wenn ja, wie wäre ein Lösungsansatz ? Ich bin hier bei der function PromptDataSource aus der OleDB "hängen" geblieben....

    Gruß

    Matthias

  • #2
    Hi,

    nur mal zum Verständnis. Du brauchst einfach nur ein Login-Fenster wo der Datenbankname eingegeben werden soll??

    Zunächst einmal PromptDataSource ist ein Dialog aus den Windows MDAC-Komponenten. Nur zur Info. Wenn man eine "*.udl" Datei öffnet, kommt der gleiche Dialog.

    Wenn der Datenbanktyp immer der selbe bleibt, sollte das doch kein Problem sein. Du legst einmal einen Verbindungsstring fest, und machst dir dann einen Dialog, in dem der Benutzer den DB-Name eingeben kann.
    Diesen erstezt du dann in dem Connectstring und jagst das ganze an deine Connection.

    Dürfte dan in etwa so aussehen:
    Code:
    function GetConnectionString: string;
    const
        CON_STR = 'Provider=MSDAORA.1;Password=test;User ID=test;Data Source=%s;Persist Security Info=True
    begin
        Result := Format(CON_STR, [InputBox('Datenbankname', 'Bitte geben Sie den Datenbankname ein', '')]);
    end;


    Gruß

    Stefan Laut

    Comment


    • #3
      Hallo,

      danke erst einmal für die Antwort.

      Aber ich möchte den DB-Namen nicht eingeben, sondern will halt wissen, auf welche Instanzen und welche Datenbanken ich Zugreifen kann, um hieraus eine Auswahl treffen zu können.

      Gruß Matthias

      Comment


      • #4
        Hi,


        Das dürfte sich als schwieriger erweisen, aber zunächst einmal müsste man wissen, welche Datenbanken (ORACLE, SQLServer, MySQL, etc.) du suchen willst, und über welches DB-Interface (OCI, ODBC, ADO-Provider) du dich verbinden willst??


        Gruß

        Stefan Laut

        Comment


        • #5
          Hallo,

          also ich möchte mich über ODBC zum SQL-Server verbinden.

          Das dies schwierig werden würde dachte ich mir schon, da ich bisher zu diesem Thema nichts gefunden habe und dies wahrscheinlich auch für wenige von Nutzen ist.
          Aber vielleicht hat ja hier doch jemand Erfahrungen oder eine Idee, wie man die verfügbaren SQL-Instanzen anzeigen lassen kann ?

          Gruß

          Matthias

          Comment


          • #6
            Originally posted by Matthias Mehl View Post
            also ich möchte mich über ODBC zum SQL-Server verbinden.
            Ganz schlechte Idee. Wenn man ADO verwendet greift man direkt auf den MS SQL-Treiber zu und geht nicht den Umweg über ODBC.[/QUOTE]

            Thema bei Delphi-Praxis

            Originally posted by Matthias Mehl View Post
            Aber vielleicht hat ja hier doch jemand Erfahrungen oder eine Idee, wie man die verfügbaren SQL-Instanzen anzeigen lassen kann ?
            Wege gibt es viel, jeder Weg liefert ein paar Instanzen. Suchbegriffe welche auch hier im Forum beispielquellcode liefert ist: NetServerEnum, SQLDMO, SQLBrowseConnect (über ODBC-Schnittstelle)

            Comment


            • #7
              Hallo,

              danke für die Info, das war genau das, was ich gesucht habe.
              Ist es denn richtig, das man eher mit NetServerEnum arbeiten sollte, zwecks Firewall ?

              Gruß Matthias

              Comment


              • #8
                Originally posted by Matthias Mehl View Post
                danke für die Info, das war genau das, was ich gesucht habe.
                Ist es denn richtig, das man eher mit NetServerEnum arbeiten sollte, zwecks Firewall ?
                Wir haben alle 3 Möglichkeiten implementiert da kein Weg alle Instanzen liefert.

                Comment

                Working...
                X