AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Unterschiedlicher Zugriff auf MS-SQL per ADO
Thema durchsuchen
Ansicht
Themen-Optionen

Unterschiedlicher Zugriff auf MS-SQL per ADO

Offene Frage von "sx2008"
Ein Thema von Brinkman · begonnen am 10. Mai 2012 · letzter Beitrag vom 11. Mai 2012
Antwort Antwort
Brinkman

Registriert seit: 22. Mär 2012
10 Beiträge
 
#1

Unterschiedlicher Zugriff auf MS-SQL per ADO

  Alt 10. Mai 2012, 12:44
Datenbank: MSSQL • Version: 2008 Express • Zugriff über: ADO
Hallo zusammen,

es existiert eine kleine Anwendung die per ADO auf MS-SQL bzw. MS-SQL Express zugreift.
Die Angabe, auf welchen Host zugegriffen wird, wird durch einen Eintrag in einer INI geregelt. Standardmäßig steht dort ein Eintrag wie:
Code:
Server=Servername\SQLEXPRESS
Diese Anwendung ist bei vielen Kunden im Einsatz und läuft so rund ohne Probleme.
Nun gibt es einen neuen Kunden, der vielfache Probleme hat.
Es gibt inzwischen drei INI-Dateien mit den fogenden Einträgen:
Code:
Server=Servername.Kunde.com\SQLExpress
Server=\\Servername\SQLExpress
Server=Servername\SQLExpress
Beim Kunden sind öffentliche IPs im Netz verfügbar.

Hat jemand eine Idee, warum dort verschiedene INI-Einträge benötigt werden? Mir gehen langsam die Ideen aus.

Beste Grüße
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Unterschiedlicher Zugriff auf MS-SQL per ADO

  Alt 10. Mai 2012, 13:07
Das liegt wohl am Netz Deines Kunden. Ich kenne mich mit den Namenskonvetionen nicht besonders gut aus, aber MS hat da verschiedene Möglichkeiten Rechnernamen zu definieren.
Soweit ich weiß gibt es auch Unterschiede, wenn über Domänengrenzen zugegriffen werden muß.
Schau mal in diese Richtung, vielleicht hilft Dir das weiter.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Unterschiedlicher Zugriff auf MS-SQL per ADO

  Alt 11. Mai 2012, 04:44
Also ich würde den ConnectionString als UDL-Datei nach aussen legen.
http://www.zerbit.de/artikel/univers...t_gemacht.aspx

Falls es eine UDL-Datei gibt, würde ich diese verwenden und andernfalls
wie bisher weitermachen.
In einer UDL-Datei kannst du die Connection viel besser und bequemer einstellen,
als mit deiner Ini-Datei.
Delphi-Quellcode:
var
  udlfile : string;
begin
  udlfile := ChangeFileExt(ParamStr(0), 'udl'); // Name wie die EXE-Datei nur mit Endung .udl
  if FileExists(udlfile) then
  begin
    ADOConnection1.ConnectionString:='FILE NAME='+udlfile;
  end
  else
  begin
    // Wie bisher die Connection aus Ini-File lesen
  end;
  ADOConnection1.Connected := True;
  Mit Zitat antworten Zitat
Brinkman

Registriert seit: 22. Mär 2012
10 Beiträge
 
#4

AW: Unterschiedlicher Zugriff auf MS-SQL per ADO

  Alt 11. Mai 2012, 07:41
Hallo und vielen Dank erst einmal für die Antworten!

@p80286: Das vermute ich auch, aber da habe ich keinen Einfluß drauf, kann da also nur Tipps geben. Die Idee wäre, dies irgendwie abzufangen ohne dass es größere Timeouts gibt. Wäre dann nur die Frage, anhand welcher Kriterien man welche Namenskonvetion einbauen sollte ;-(

@sx2008: Auch dieser Ansatz ist interessant, aber meines Erachtens verlagert man das Problem in Richtung der Definition der UDL-Datei. Das Proble der Namensgebung bleibt. Zusätzlich habe ich ann das Problem, dass das im Code fest verdrahtete Passwort wieder in der UDL sichtbar wird, oder?

Besten Dank trotzdem
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#5

AW: Unterschiedlicher Zugriff auf MS-SQL per ADO

  Alt 11. Mai 2012, 08:10
aber meines Erachtens verlagert man das Problem in Richtung der Definition der UDL-Datei.
Schon, aber genau das ist eine gute Sache.
Man kann einen SQL-Server z.B. auch über die IP-Adresse und Portnr ansprechen:
Code:
10.4.9.25,1433
Damit erzwingt man quasi dass TCP/IP verwendet wird.
Anderfalls könnte ja auch Named Pipes verwendet werden, wass im gemischten Umgebungen mit Domänen-Controllern und Rechnern, die nicht in der Domäne sind zu Problemen führen kann.

Das Proble der Namensgebung bleibt.
Wo soll da ein Problem sein?
Die Schreibweise "Servername\SQLExpress" ist die Richtige.
Natürlich muss die Namensauflösung für "Servername" funktionieren.
Und TCP/IP muss sowohl Server- als auch Clientseitig aktiviert sein.

dass das im Code fest verdrahtete Passwort wieder in der UDL sichtbar wird
Man braucht/soll das PW in der UDL ja nicht speichern.
Delphi-Quellcode:
// Anmeldung mit festen PW
ADOConnection1.Open('username', 'festesPasswort');
  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 14:49 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