AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL Connectionstring
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Connectionstring

Offene Frage von "onkelmehli"
Ein Thema von onkelmehli · begonnen am 6. Feb 2008 · letzter Beitrag vom 7. Feb 2008
Antwort Antwort
onkelmehli

Registriert seit: 8. Mär 2006
119 Beiträge
 
Delphi 2007 Professional
 
#1

SQL Connectionstring

  Alt 6. Feb 2008, 14:34
Datenbank: SQL Server • Version: 2005 • Zugriff über: ADO
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
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: SQL Connectionstring

  Alt 6. Feb 2008, 16:01
Zitat von onkelmehli:
Mein Ziel ist, zu vermeiden, dass jemand Benutzer und Passwort etc. eingeben kann, da dieses vorgegeben wird.
Kein Problem, das kann man zur Laufzeit in der ADOConnection im Event OnWillConnect besteuern:
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 = 'Adminthen
   begin
      Password := 'JunkiONDRUGS';
   end
   else if UserID = 'Userthen
   begin
      Password := 'grünbrotschimmel';
   end else if UserID ='then
   begin
      UserID := 'guest';
      Password := 'ismirschlecht';
   end;
end;
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Xong
Xong

Registriert seit: 9. Jan 2008
186 Beiträge
 
Delphi 2006 Professional
 
#3

Re: SQL Connectionstring

  Alt 6. Feb 2008, 16:07
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
  Mit Zitat antworten Zitat
onkelmehli

Registriert seit: 8. Mär 2006
119 Beiträge
 
Delphi 2007 Professional
 
#4

Re: SQL Connectionstring

  Alt 6. Feb 2008, 16:10
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
  Mit Zitat antworten Zitat
onkelmehli

Registriert seit: 8. Mär 2006
119 Beiträge
 
Delphi 2007 Professional
 
#5

Re: SQL Connectionstring

  Alt 6. Feb 2008, 16:16
@Xong:
Zitat:
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.
Ich bin nur der "kleine" Entwickler hierfür, alle Beschwerden bitte an meinen Vorgesetzten....
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: SQL Connectionstring

  Alt 6. Feb 2008, 16:21
Zitat von onkelmehli:
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.
Ich würde mit UDL-Dateien arbeiten; dafür sind sie ja da.
Dein connectionstring wird so erzeugt:
  ConnectionString := 'FILE NAME='+ ChangeFileExt(ParamString(0), '.UDL'); Neben deiner Anwendung liegt dann einfach eine UDL-Datei.
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.
Andreas
  Mit Zitat antworten Zitat
onkelmehli

Registriert seit: 8. Mär 2006
119 Beiträge
 
Delphi 2007 Professional
 
#7

Re: SQL Connectionstring

  Alt 6. Feb 2008, 16:55
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
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#8

Re: SQL Connectionstring

  Alt 7. Feb 2008, 12:31
Zitat von onkelmehli:
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.
Wenn du meinen Vorschlag annimmst, hast du folgende Vorteile:
* 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 ?
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: SQL Connectionstring

  Alt 7. Feb 2008, 12:52
Zur Info: Crosspost bei Entwickler-Forum
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:46 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