AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Connection zu SQL Server Express über lokales Netzwerk..Wie?
Thema durchsuchen
Ansicht
Themen-Optionen

Connection zu SQL Server Express über lokales Netzwerk..Wie?

Ein Thema von torud · begonnen am 24. Mär 2006 · letzter Beitrag vom 5. Apr 2006
Antwort Antwort
Seite 1 von 6  1 23     Letzte »    
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

Connection zu SQL Server Express über lokales Netzwerk..Wie?

  Alt 24. Mär 2006, 08:37
Datenbank: MS SQL Server Express • Zugriff über: Ado
Hallo Wissende,

ich habe mir gestern mal den kostenlosen MS SQL Server Express gezogen und installiert. Nach anfänglichen Schwierigkeiten läuft das Ding nun und ich kann auch Lokal mit folgendem Code eine Verbindung herstellen:
Delphi-Quellcode:
  ADOConnection1.ConnectionString:= 'Provider=MSDataShape;Data Provider=SQLOLEDB;Data Source=PCName\ServerName;Initial Catalog=DBNAME;User ID=BenutzerName;Password=Pass;';
  ADOConnection1.Connected:=true;
Ich habe natürlich sofort in all der Euphorie versucht mit der Applikation von einem anderen PC aus mich mit dem Server zu verbinden. Leider klappt das so nicht! Ich habe mal bei ConnectionString.com geschaut. Dort steht aber nur, dass man bei DataSource entweder den Servernamen oder nen Netzwerkpfad eingeben muss. Ich habe das dann mal so umgeschrieben.

Delphi-Quellcode:
  ADOConnection1.ConnectionString:= 'Provider=MSDataShape;Data Provider=SQLOLEDB;Data Source=\\PCName\PCName\ServerName;Initial Catalog=DBNAME;User ID=BenutzerName;Password=Pass;';
  ADOConnection1.Connected:=true;
Leider hat das nicht geklappt. Liegt es am Server oder der Serverkonfiguration oder am ConnectionString?
Danke
Tom
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Connection zu SQL Server Express über lokales Netzwerk..

  Alt 24. Mär 2006, 09:11
Hallo Tom,

ich verwende in ADO nur extern konfigurierte Connections. Microsoft hat dazu den Universal Data Link erfunden. Wenn du das noch nicht kennst, dann kopiere dir die Textdatei aus dem Anhang in dein Projektverzeichnis und benenne sie entprechend um. Danach kannst über Doppelklick in der Shell die Konfiguration vornehmen. Der Servername ist ein DNS-Name und kein UNC-Name wie in deinem Beispiel. Benutzen kannst du die UDL-Datei in deinem Programm dann so (D7):

Delphi-Quellcode:
begin
  fn := ChangeFileExt(ParamStr(0), '.udl');
  with ADOConnection do
    ConnectionString := Format('FILE NAME=%s', [fn]);
  // ...
end;
Grüße vom marabu

Edit: Bin mit dem Anhängen irgendwie nicht zurecht gekommen. Scheinbar werden UDL-Dateien als potentiell schädlich angesehen, deshalb habe ich den Namen jetzt verstümmelt.
Angehängte Dateien
Dateityp: txt dummy-udl_205.txt (226 Bytes, 61x aufgerufen)
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#3

Re: Connection zu SQL Server Express über lokales Netzwerk..

  Alt 24. Mär 2006, 09:15
Hallo Marabu,

danke für Deine Antwort. Leider fehlte die TextDatei im Anhang. Kannst Du bitte mal nachreichen?
Danke
Tom
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Connection zu SQL Server Express über lokales Netzwerk..

  Alt 24. Mär 2006, 09:33
Provider=MSDataShape? Also ich verwende einfach den SQLOLEDB Provider für SQL-Server

Delphi-Quellcode:
'Provider=SQLOLEDB.1;Password=<myPassword>;'+
'Persist Security Info=True;User ID=<MyUser>;'+
'Initial Catalog=<MyDatabaseName>;'+
'Data Source=<MyServerComputerName>;'+
'Use Procedure for Prepare=1;Auto Translate=True;'+
'Packet Size=4096;Workstation ID=<MyWorkstationName>;'+
'Use Encryption for Data=False;Tag with column collation when possible=False';
Beachte, das Du Username, Password, Server-Computernamen und den Datenbanknamen noch einsetzen musst.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#5

Re: Connection zu SQL Server Express über lokales Netzwerk..

  Alt 24. Mär 2006, 10:00
Also ich habe nun die UDL-Datei auf den Client kopiert und dort mal ausgeführt. Es öffnete sich nun der Dialog "Datenverknüpfungseigenschaften", in dem ich unter Punkt 1 den Servernamen auswählen sollte. Erfreulicherweise stand dort mein Server schon drin. Ich habe dann noch den Benutzernamen und das Kennwort eingegeben und wollte dann mal die Verbindung testen.

NIX DA!

Fehler beim Testen der Verbindung durch einen Fehler beim Initialisieren des Providers. [DBNMPNTW] Der angegebene SQL-Server wurde nicht gefunden.

Wie geht das denn? Ich konnte ihn doch oben auswählen! Ich habe dann mal bei der Serverkonfiguration die Öberflächenkonfiguration für Dienste und Verbindungen geöffnet und dort dann bei Remoteverbindungen auf TCP/IP und Named Pipes umgestellt und den Server neu gestartet. Leider auch nix. Was könnte es jetzt noch sein, was mir die Verbindung nicht zulässt?

//Edit
@ alzaimar
Habe meinen Code geändert und so funktioniert es auch. Danke!
Danke
Tom
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Connection zu SQL Server Express über lokales Netzwerk..

  Alt 24. Mär 2006, 14:39
Gut!

Wie ist das in SQL 2005. Bedenke, das Du im Server und auf den Clients die gleiche Clientlibrary installiert und eingerichtet haben musst. Wie greifst Du auf den Server zu? UDP/TCP/Named Pipes? Egal was Du nimmst, es muss auf allen PC gleich eingerichtet sein (Portnummer, Pipename etc.) Normalerweise ist es das auch, aber wenn nicht, sucht man sich einen Wolf.

Die Tatsache, das ein SQL-Server gefunden wurde, heißt noch nicht, das man mit ihm auch reden kann... Das Auffinden aller SQL-Server ist eine Windows-API Funktion.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#7

Re: Connection zu SQL Server Express über lokales Netzwerk..

  Alt 24. Mär 2006, 14:49
Hallo!

Danke für Deine Antwort. Auf den Clients habe ich noch gar nichts eingerichtet. Ich habe mir nun extra die Hilfe von 120 MB heruntergeladen und wurde leider enttäuscht, da dort nichts zu finden ist.

Kannst Du bitte noch etwas ins Detail gehen, was ich auf den Clients wie einrichten muss? Ich habe am Server, wohl eher aus Verzweiflung alles auf TCP/IP und Named Pipes eingestellt, weil ich einfach alles aufgemacht haben wollte, damit der Client "reinkommt".

Was muss ich also auf dem Client Kopieren oder installieren, damit er per TCP auf den Server zugreifen kann? Netzwerktechnisch ist alles fein. Die Clients sehen den Server als Rechner und auch den Server selbst. Ich muss zugeben, dass ich das hier zu ersten mal mache und mich habe überrumpeln lassen, dies auf SQL-Server-Basis zu tun, da Access wohl nicht geeignet scheint für einen gleichzeitigen Zugriff von mehr als 20 Clients...
Danke
Tom
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: Connection zu SQL Server Express über lokales Netzwerk..

  Alt 24. Mär 2006, 15:33
Is schon richtig. Access geht noch nicht mal bei 5 Clients mehr richtig.

Mit Named Pipes gab es mal Probleme (mit ADO und SQL 2000). Seitdem verwende ich nur noch TCP/IP über Port 1433.

Versuch das mal:
Tu so, also ob Du eine ODBC-Verbindung zum SQL-Server einrichten willst. Der Treiber 'SQL-Server' müsste so ziemlich der letzt in der Liste sein.

Wenn Du dem Kind einen Namen gegeben hast, und den Server ausgewählt hast, sollte auf der nächsten Seite vom Einrichtungsdialog ein Knopp 'Clientkonfiguration' erscheinen. Hier kann man dann die SQL-Zugriffslibraries einrichten (ist doch logisch, das man das unter ODBC macht, obwohl man über OLE-DB drauf zugreift).
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Connection zu SQL Server Express über lokales Netzwerk..

  Alt 24. Mär 2006, 19:18
Der SQL Server 2005 Express erwartet (zumindest bei meinen Installationen) immer als Servernamen den Namen des Servers und anschließend mit einem Backslash getrennt den Namen "SQLEXPRESS", also: "MeinServer\SQLEXPRESS" damit funktioniert es dann mit ADO und dem "Microsoft OLE DB Provider for SQL Server".

Grüße
Michael
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: Connection zu SQL Server Express über lokales Netzwerk..

  Alt 24. Mär 2006, 19:32
Bei der Vorgänger-Version (MSDE) war eine ausführliche Installationsanleitung dabei. Wenn ich mich recht erinnere, dann gab es zwei unterschiedliche Namenskonventionen, eine für single instance und eine für multiple instance Installationen. Außerdem hat Tom doch in seinem ersten Beitrag schon alle Parameter für einen erfolgreichen Verbindungsaufbau gehabt. Sein Problem war ursprünglich, dass er sich nicht von einer anderen Workstation aus mit dem SQL-Server verbinden konnte. Und jetzt geht auf einmal gar nichts mehr? Seltsam.

Grüße vom marabu
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 6  1 23     Letzte »    


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 22:38 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