![]() |
Datenbank: SQL Server • Version: 2005 • Zugriff über: ADO
SQL Connectionstring
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 |
Re: SQL Connectionstring
Zitat:
Delphi-Quellcode:
procedure TDMcvs.ADOConnectionWillConnect(Connection: TADOConnection;
var ConnectionString, UserID, Password: WideString; var ConnectOptions: TConnectOption; var EventStatus: TEventStatus); begin UserID := Connection.Properties.Item['User ID'].Value; Password := Connection.Properties.Item['Password'].Value; if UserID = 'Admin' then begin Password := 'JunkiONDRUGS'; end else if UserID = 'User' then begin Password := 'grünbrotschimmel'; end else if UserID ='' then begin UserID := 'guest'; Password := 'ismirschlecht'; end; end; |
Re: SQL Connectionstring
Als Ergänzung: Da die Verbindung ja nicht alle fünf Minuten geändert wird, reicht es IMO, User ID und Password direkt nach dem Prompt einfach neu zu setzen. Dann kann der Nutzer zwar Benutzername und Passwort eingeben, es zeigt allerdings keine Wirkung.
Mein Tipp: Halte dich nicht an solchen Kleinigkeiten auf. Stell das Programm auf die Beine und kümmere dich um solche kleinen (ich meine damit wirklich nur die belanglosen) Fehler später. LG, Xong |
Re: SQL Connectionstring
Hallo,
danke erst einmal für den Tip. Damit wäre Problem 1 gelöst. Aber nun möchte ich ja die Instanz und die Datenbank auswählen, das heißt, ich möchte z. B. in einer Combobox alle verfügbaren SQL-Instanzen des Servers angezeigt bekommen. Gibt es dafür eine Funktion ? Gruß Matthias |
Re: SQL Connectionstring
@Xong:
Zitat:
|
Re: SQL Connectionstring
Zitat:
Dein connectionstring wird so erzeugt:
Delphi-Quellcode:
Neben deiner Anwendung liegt dann einfach eine UDL-Datei.
ConnectionString := 'FILE NAME='+ ChangeFileExt(ParamString(0), '.UDL');
UDL-Dateien könnem ganz einfach erzeugt werden: leere TextDatei nach *.udl umbenennen und doppelklicken. Damit brauchst du überhaupt nichts in deinem Programm, um die Connection zu ändern. |
Re: SQL Connectionstring
Nur noch mal zum Verständnis, ich möchte, das ich die Instanz selbst auswählen kann, dass heißt, ich möchte (genau wie der Editor bei PromptDataSource) alle Instanzen die verfügbar sind, angezeigt bekommen.
Folgender Hintergrund: Ich habe auf dem Rechner mehrere Instanzen des SQL-Servers, die allerdings alle (von der Struktur her) die gleiche Datenbank (auch der gleiche DB-Name) beinhalten. Nun möchte ich auswählen, zu welcher Datenbank (also zu welcher Instanz) ich mich verbinden möchte. Gruß Matthias |
Re: SQL Connectionstring
Zitat:
* kein Programmieraufwand, Programm bleibt kleiner * die Möglichkeit dich mit jeder Datenbank zu verbinden Wenn dein Programm schon läuft und du dich mit einer anderen Datenbank verbinden möchtest, dann musst du anschliesend dein Programm beenden und neu starten. (Da du ja schon mit der bisherigen DB verbunden bist) Also warum nicht einfach eine UDL-Datei verwenden ? |
Re: SQL Connectionstring
Zur Info: Crosspost bei
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 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