Netzwerk Datenbank Anwendung auf mobilen Laptop bringen

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Netzwerk Datenbank Anwendung auf mobilen Laptop bringen

    Folgendes Problem, was ich seit Wochen immer im Blick habe, was ich aber vor mir her schiebe:


    Ich habe in unserem Netzwerk einen SQL Server 2008 R2. Dieser dient mir als zentrale Datenbank, alle Informationen im Netzwerk werden so abrufbar.
    Allerdings muss das Programm ebenso mobil werden.

    Dazu muss folgendes realisiert werden:
    - Export der SQL Server 2008 Datenbank am liebsten als *.sdf
    - Wenn keine Verbindung mit dem SQL Server 2008 herstellbar ist, prüfen ob *.sdf vorhanden ist und ggf. auf diese Datenbank zugreifen

    Ich habe dabei ein stark typisiertes Dataset. - D.h. der connectionString steht in der app.config.

    Wie kann ich das realisieren? Gibts da schon was?
    Dieses SynchronisationsProblem zw. zentralen und ungebundenen Satelliten-DBs wird üblicherweise mit Replikationen gelöst - guggemal auf Wiki, und bei MSDN.

    Ansonsten habich grad was gebastelt, womit man glaub auch von einer auf eine andere DB umswitchen kann: [VB 2008] DBExtensions
    Aber das eigliche Problem: von allen Datensätzen auf Knopfdruck die neuesten Versionen in die Zentrale zu überspielen - löst das natürlich nicht - wie gesagt: Stichwort Replikation
    Also sowas?:

    VB.NET-Quellcode

    1. Public Sub ExportSQL2CE()
    2. Dim repl As SqlCeReplication = Nothing
    3. Try
    4. repl = New SqlCeReplication
    5. repl.Publisher = "SQL_Server"
    6. repl.PublisherDatabase = "dbXY"
    7. repl.PublisherSecurityMode = SecurityType.NTAuthentication
    8. repl.Subscriber = "XY"
    9. Dim dbName As String = Application.StartupPath & "\Database.sdf"
    10. repl.SubscriberConnectionString = String.Format("Data Source={0};Password={1};Max Database Size=4091;Max Buffer Size = 1024;Default Lock Escalation =100;Encrypt Database=True", dbName, "XY")
    11. repl.Publication = "Export"
    12. repl.Synchronize()
    13. Catch ex As Exception
    14. Finally
    15. repl.Dispose()
    16. End Try
    17. End Sub


    Allerdings fehlt mir die "repl.InternetUrl" - ich habe in meinem Netzwerk keinen http-Server wo ich eine *.dll platzieren könnte. Lokale Pfade nimmt er leider nicht an.

    Wird das wirklich verwendet um eine SQL Server Datenbank zu einer SQL Server CE Datenbank zu exportieren?
    was der ObjectBrowser dazu aussagt - was meinst du: sieht es danach aus?

    Aber wies angewendet wird, weißich auch nicht, ich wusste bis eben garnet, dasses so Replikations-Klassen ühaupt gibt.

    Und ob eine SqlServer-DB sich in eine SqlCe-DB replizieren kann, ist auch erst noch zu untersuchen.

    Katmay schrieb:

    Mal ne Zwischenfrage:

    Bist du der einzige, der mit dieser Datenbank arbeitet?

    LG
    Katmay



    Nein. Auf den SQL Server greifen ca. 20 Computer zu, dabei ist das Programm mehr oder weniger ein Monitoring Tool. Nutzerspezifische Settings werden lokal auf dem Rechner abgelegt.
    Zusätzlich soll das Programm eben auch noch für unterwegs gebaut werden, dass die Daten eben auch mobil vorhanden sind.
    Die Datenbank selbst kann man nur mit den entsprechenden Rechten befüllen und das macht nur einer. (Ich)
    (OffTopic: Muss das sein, immer den gesamten Text des Vorredners zu zitieren?)

    VB2010 User schrieb:

    Die Datenbank ... befüllen ... macht nur einer. (Ich)

    Na, dann braucht man ja nicht aufwändig zu replizieren und Theater. Da kann man ja einfach die Datenbank-Datei auf den Satelliten-Rechner kopieren - fertig.

    ErfinderDesRades schrieb:

    Na, dann braucht man ja nicht aufwändig zu replizieren und Theater. Da kann man ja einfach die Datenbank-Datei auf den Satelliten-Rechner kopieren - fertig.



    Das ist ja das Problem. Die Datenbank ist ja keine Datei, das ist ein SQL Server, mittels dieser beiden Konsolen Programme kann ich es aber als *.sdf exportieren:
    erikej.blogspot.com/2010/02/ho…qlce-to-migrate-from.html


    Das dauert zwar Stunden, wahrscheinlich sogar Tage, aber es wird konvertiert.

    Allerdings bleibt das Problem, wie ich denn die app.config so beim Start manipuliere, dass er eine Verbindung auf die *.sdf DB herstellt, wenn kein Zugriff auf den SQL Server möglich ist.