none
SQL-Server 2005 Express Datenbank auf einem Internetserver öffnen RRS feed

  • Frage

  • Hallo,
    ich arbeite mit Visual Basic 2005 Express und möchte eine Datenbank öffnen die auf einem Server im Internet liegt. Hierzu habe ich folgenden ConnectionsString geschrieben, der mir mit der angezeigten Fehlermeldung aussteigt, obwohl die Datenbank auf der angegebenen URL liegt.

    Dim

     

    c As New SqlClient.SqlConnection

     

    Private Sub Laden()

     

    'Verbindung zur Datenbank herstellen

     

    Me.Cursor = Cursors.WaitCursor

    c.ConnectionString =

    "Data Source=.\SQLEXPRESS;" _

    &

    "AttachDbFilename=http//www.h2o-4you.de/Fanglisten.mdf;" _

    &

    "Integrated Security=True;Connect Timeout=30;User Instance=True"

    c.Open()

     

    An dieser Stelle kommt jetzt die Fehlermeldung:
    Fehler beim Anfügen einer automatisch benannten Datenbank für die Datei
    http//www.h2o-4you.de/Fanglisten.mdf. Eine Datenbank mit diesem Namen ist bereits vorhanden, die angegebene Datei kann nicht geöffnet werden, oder sie befindet sich in der UNC-Freigabe.


    Wie muss ich vorgehen um eine Datenbank anzusprechen die im Web liegt?

    Vorab schon tausend Dank für eine Lösung!

    Samstag, 30. Januar 2010 18:16

Antworten

  • Danke!

    Jean

    PS. habe gerade reingeschaut, wirklich sehr sehr hilfreich!
    Nochmal Danke!
    Jean
    • Als Antwort markiert JJH56 Samstag, 30. Januar 2010 22:33
    Samstag, 30. Januar 2010 22:31

Alle Antworten

  • Hallo,

    das kann so nicht funktionieren. Die Datenbankdatei (MDF) muss auf dem gleichen Rechner liegen, auf dem auch der SQL Server ausgeführt wird. Du musst die MDF also zunächst von der Internetressource herunterladen und kannst sie dann an Deine lokale SQL Server Instanz anhängen. Da Du aber sicher auch in diese Datenbank schreiben möchtest, ist auch dieser Ansatz sinnfrei, da damit die Änderungen auch nur lokal verfügbar wären. Bleiben als Alternativen, eine SQL Server Instanz auf Deinem Webserver, auf die Du Dich von außen verbinden kannst, oder ein WebService, der über HTTP den Austausch zwischen Webserver und Deiner Anwendung regelt.

    Thorsten Dörfler
    Microsoft MVP Visual Basic
    Samstag, 30. Januar 2010 18:33
  • Hallo,
    zunächst mal vielen Dank für die schnelle Antwort.
    Kennst Du einen Webservice der solch einen Dienst zur Verfügung stellt?

    Jean Leisten
    Samstag, 30. Januar 2010 18:46
  • Hallo Jean,

    einen WebService kannst Du mit .NET selbst erstellen.
    Und der ist in der Regel auf die jeweilige Anwendung zugeschnitten.

    Voraussetzung ist ein Provider der ASP.NET und einen SQL Server (Express) anbietet.
    Die gibt es in allen Preis- und Gütekategorieren - eine Liste http://www.dotnetpro.de/provider.aspx

    Gruß Elmar

    P. S.: Du solltest die Datenbank löschen oder schützen, denn derzeit kann jeder auf sie zugreifen.
    Samstag, 30. Januar 2010 19:23
  • Hallo Elmar,

    dank dir für den Hinweis mit dem Webservice und den link zur Liste.

    Die Datenbank enthält nur Testdaten, die nicht relevant sind. Trotzdem mal die Frage wie ich die schützen kann? Reicht da einfach ein Passwort oder gibt es andere Möglichkeiten?

    Schönen Gruß
    Jean
    Samstag, 30. Januar 2010 19:43
  • Hallo Jean,

    normalerweise liegt die SQL Server Datenbank außerhalb der öffentlichen Verzeichnisstruktur Deines Webservers und wird allein über den SQL Server angesprochen. Hier sind in der Regel die Zugriffsbeschränkungen, die man im SQL Server konfigurieren kann ausreichend, um die Daten hinreichend vor Fremdzugriffen zu schützen.

    Thorsten Dörfler
    Microsoft MVP Visual Basic
    Samstag, 30. Januar 2010 20:04
  • Hallo Jean,

    in Ergänzung zu Thorstens Antwort: Sichern von SQL Server

    Zunächst kannst Du den Webservice auf Deinem Rechner entwickeln,
    so Du den Weg gehen willst.
    Dabei bleibt die Datenbank auf Deinem lokalen Rechner.

    Gruß Elmar

    Samstag, 30. Januar 2010 21:57
  • Danke!

    Jean

    PS. habe gerade reingeschaut, wirklich sehr sehr hilfreich!
    Nochmal Danke!
    Jean
    • Als Antwort markiert JJH56 Samstag, 30. Januar 2010 22:33
    Samstag, 30. Januar 2010 22:31