T-Back Geschrieben 17. Februar 2010 Geschrieben 17. Februar 2010 Hallo Leute, Ich habe ein Programm entwickelt für die Verwaltung meiner Videos. Bis jetzt habe ich die Programme immer auf Clients installiert, die Netzwerkzugriff zum SQL-Server haben. Jetzt möchte ich dieses Programm auch bei meinen Eltern auf dem Laptop installieren. Muss ich hierfür den kompletten SQL-Server installieren oder gibt es vom SQL-Server eine kleine Datenbank Engine, der nur die Datenbanken speichert und mittels dem Client Programm verwaltet? Könntet Ihr mir hier bitte weiterhelfen? Ich bin über jeden Tip und jeden Ratschlag sehr dankbar! Danke im Voraus! LG Zitieren
lbm1305 Geschrieben 17. Februar 2010 Geschrieben 17. Februar 2010 Es würde über eine lokale Datenbankdatei (*.sdf) funktionieren, dafür muss aber der SQL-Server 2005 Express installiert sein. Zitieren
T-Back Geschrieben 17. Februar 2010 Autor Geschrieben 17. Februar 2010 Danke für deine Antwort! Geht das auch mit dem SQL-Server 2008 Express. Könntest du mir bitte eine kurze Erklärung geben, wie das mit der "sdf" Datei funktioniert? Ist das der Service, wo im Windows XP, dann in der Taskleiste - im Infobereich das SQL-Server Symbol angezeigt wird? Danke nochmals! LG Zitieren
geloescht_unixtom Geschrieben 17. Februar 2010 Geschrieben 17. Februar 2010 Das geht auch mit der 2008. Funktioniert über den Connectionstring genauso wie beim MSSQL Zitieren
lbm1305 Geschrieben 17. Februar 2010 Geschrieben 17. Februar 2010 Der ConnectionString enthält aber dann die sdf-Datei als DataSource. sdf-Dateien habe ich soweit noch nicht genutzt. Ich hatte es mal in einem Webcast gesehen und mal kurz ausprobiert :-) Die Datei an sich wurde mit dem Visual Studio erstellt. Diese liegt dann ganz normal auf Deinem Filesystem rum. Zitieren
T-Back Geschrieben 18. Februar 2010 Autor Geschrieben 18. Februar 2010 Danke für eure Hilfen Ich würde meine Frage an euch gerne kongretisieren anhand von einem Beispiel in einer Firma Ich habe als Entwickler in einer Firma XY eine Datenbank entwickelt und dazu in C#.NET das Datenbank-Client Programm geschrieben. Z.Bsp. Für deren Vertreter die mit Ihrem Laptop unterwegs sind und dort div. Daten erfassen, die NICHT in der Firma am SQL-Server synchronisiert werden! Die Datenbank und das Programm ist nur für den Vertreter gemacht! (Bspw.: ein Programm für die Nächtigungen, die km die er gefahren ist, usw...; den Report druckt er dann aus und gibt diesen in der Personalabteilung ab! . . . . . . .Nur ein Beispiel) Ich habe mich entschieden statt einer MS-Access Datenbank eine MS-SQL Datenbank mit Client Programm zu entwickeln, da meiner Meinung nach diese Kombination besser und effektiver ist als ein Access Programm (Ein Grund liegt auch darin, dass ich nicht VBA programmieren möchte). --> Client Programm:Nun bekommt der Vertreter das Programm auf seinen Laptop installiert. --> Die Datenbank: Er benötigt keine IDE zum Ändern der Datenbank, die Datenbank soll einfach nur laufen als Dienst. --> FRAGE: Muss ich hierfür eine eigene MS SQL EXPRESS Instanz installieren oder gibt es hierfür noch etwas abgespeckteres, nur dass die Datenbank läuft? Dass ich die SQL Engine installieren muss, dachte ich mir, aber gibt es nicht noch etwas kleineres als den SQL-EXPRESS? Ich währe euch dankbar, wenn Ihr mir weiterhelfen könntet, obwohl ich mich anfangs falsch ausgedrückt habe. Ich habe bis jetzt immer nur Client Programme installiiert und geschrieben die mit dem SQL-Server verbunden waren. DANKE IM VORAUS! LG Zitieren
Gateway_man Geschrieben 18. Februar 2010 Geschrieben 18. Februar 2010 Es würde über eine lokale Datenbankdatei (*.sdf) funktionieren, dafür muss aber der SQL-Server 2005 Express installiert sein. Das ist mal falsch. Du must kein sql server express auf den clients installieren. Das ist eine ganz normale sqlcompact datenbankfile (welche auch als Lokale Datenbank bezeichnet wird). Einfach dem Projekt hinzufügen, einen Verweise auf System.Data.SqlServerCE und schon kannst du damit arbeiten. Auf den Clientrechner ist wie üblich nur das Framework notwendig um damit arbeiten zu können. Lg Gateway Zitieren
.NETter Geschrieben 18. Februar 2010 Geschrieben 18. Februar 2010 Hallo! eine kleine Erweiterung zum .sdf File. Zur Ausführung wird im Ausführungsverzeichnis die System.Data.SqlServerCe.dll benötigt, oder eine Installation des eines SQL Server CE. Sonst hagelt es Exceptions. Bei der Erstellung eines Setupprojekts (hinzufügen der primären Ausgabe) wird dies automatisch erkannt und die DLL in das entsprechende Verzeichnis kopiert. Aber ansonsten ist dies wirklich eine gute Lösung. Nicht jeder möchte einen SQL Server Express lokal installiert haben, obwohl dieser total unschädlich und auch unbelastend fürs System ist wenn man ihn richtig konfiguriert. Gruß, Thomas Zitieren
Gateway_man Geschrieben 18. Februar 2010 Geschrieben 18. Februar 2010 (bearbeitet) Danke für eure Hilfen Ich habe mich entschieden statt einer MS-Access Datenbank eine MS-SQL Datenbank mit Client Programm zu entwickeln, da meiner Meinung nach diese Kombination besser und effektiver ist als ein Access Programm (Ein Grund liegt auch darin, dass ich nicht VBA programmieren möchte). Du kannst auch mit C# auf eine Access DB zugreifen, VBA ist überhauptnicht notwendig (stichwort ODBC). --> Client Programm:Nun bekommt der Vertreter das Programm auf seinen Laptop installiert. --> Die Datenbank: Er benötigt keine IDE zum Ändern der Datenbank, die Datenbank soll einfach nur laufen als Dienst. --> FRAGE: Muss ich hierfür eine eigene MS SQL EXPRESS Instanz installieren oder gibt es hierfür noch etwas abgespeckteres, nur dass die Datenbank läuft? Dass ich die SQL Engine installieren muss, dachte ich mir, aber gibt es nicht noch etwas kleineres als den SQL-EXPRESS? Ich währe euch dankbar, wenn Ihr mir weiterhelfen könntet, obwohl ich mich anfangs falsch ausgedrückt habe. Ich habe bis jetzt immer nur Client Programme installiiert und geschrieben die mit dem SQL-Server verbunden waren. Okay dann werde ich dir mal die Gedanklichen Wegpunkte und die daraus resultierenden Aktionen erläutern: Zu allererst macht man sich Gedanken über die Art der Datenanbindung. Dazu gehört: - sollen alle auf ein und dieselbe Datenquelle zugreifen oder soll jeder seperat seine eigene Datenquelle führen. Resultat: 1. Wenn jeder auf dieselbe Datenquelle zugreifen soll wirst du auf dem Rechner auf dem die Quelle liegen muss, einen SQL Server oder allternativ einen SQL Server Express installieren müssen. Hinweis zur unterscheidung hinsichtlich SQL Server und SQL Server Express: -Auf dem Express können maximal 255 gleichzeitige Connections stattfinden -Der Express verwaltet nur bis 4 GB Datenvolumen Das was du mit Dienst meinst, sind die Dienste eines SQL Servers / oder alternativ die eines SQL Server Express. Diese agieren unter anderem auch als Listener und Browser um auf ankommende Querrys bzw. Connections zu antworten oder diese zu bearbeiten/auszuführen. 2. Wenn jeder seine seperate eigene Datenquelle haben soll, kannst du beispielsweise eine Lokale Datenbank nehmen. Hierbei handelt es sich um ein File mit der Endung (*.sdf) . Um von deiner Clientapplication auf diese Lokale Datenbank zugreifen zu können, must du einen Verweis setzten auf System.Data.sqlserverCE . Der Connectionstring sieht wie folgt aus : ("Data Source=Pfad des sdf file") Die Compact Datenbank kannst du entweder bei IDE bearbeiten (über den Serverexplorer) oder wie sonst auch üblich einfach über die dafür existenten Querrybefehle wie: Create Table, etc. Hinweis zur sqlserverCE Datenbank oder auch SQL Compact DB genannt: - Es wird auf den Clientrechnern wie schon oben beschrieben einzig und allein das Framework benötigt. - Auch hier gibt es einige Nachteile zu beachten. Die SQL Compact DB kann auch nur wie die SQL Server Express DB maximal 255 gleichzeitige Connection/Zugriffe bearbeiten. Ebenso kann diese nur maximal 4 GB an Daten verwalten. Ich hoffe ich hab es dir etwas erklären können. Lg Gateway PS: Sofern sich fehler eingeschlichen haben verbessert mich bitte. Ich hatte es gegen Ende dieses Eintrages etwas eilig Bearbeitet 18. Februar 2010 von Gateway_man Zitieren
lbm1305 Geschrieben 18. Februar 2010 Geschrieben 18. Februar 2010 @Gateway_man: Dann war meine Annahme falsch. Ich war der Meinung, dass ich das in diesem Zusammenhang gehört hatte. :-) Zum Thema Vertreterprogramm. Für dieses Szenario würde ich ein Dataset / DataTable nutzen. Speichern kann ma ein Dataset als Xml, falls der Rechner ausgeschalten werden sollte. Zitieren
T-Back Geschrieben 18. Februar 2010 Autor Geschrieben 18. Februar 2010 Ich hätte noch eine Frage zur ".sdf" Datei. Kann ich vom SQL-Server 2008 Express eine solche Datenbank Datei erstellen? Oder benötige ich hierfür den Compact SQL-Server? Wenn ich das richtig verstanden habe, dann muss ich das Setup Projekt normal erstellen und im Programm statt auf den SQL-Server, einfach nur auf die ".sdf" Compact Datenbank verweisen. Stimmt das so? DANKE LG Zitieren
Gateway_man Geschrieben 19. Februar 2010 Geschrieben 19. Februar 2010 Ich hätte noch eine Frage zur ".sdf" Datei. Kann ich vom SQL-Server 2008 Express eine solche Datenbank Datei erstellen? Oder benötige ich hierfür den Compact SQL-Server? Wenn ich das richtig verstanden habe, dann muss ich das Setup Projekt normal erstellen und im Programm statt auf den SQL-Server, einfach nur auf die ".sdf" Compact Datenbank verweisen. Stimmt das so? DANKE LG Zum erstellen einer solchen Datei brauchst du keinen Server. Eine solche Datei erstellst du in Visual Studio, besser gesagt erstellt Visual Studio diese für dich. Zweiteres stimmt. Ich habe dir nochmal ein kurz und bündiges tut inform einer PDF erstellt und das dafür genutzte beispiel ebenfalls in die Zip gepackt. Hoffe es hilft (ist schon spät ich bitte schreibfehler zu verzeihen). LG GatewayDocuments.zip Zitieren
T-Back Geschrieben 19. Februar 2010 Autor Geschrieben 19. Februar 2010 @Gateway_man: DANKE, dass du dir die Mühe gemacht hast um mir das so genau zu erklären! Jetzt kenne ich mich aus, wie das gemeint ist mit der ".sdf"-Datei. Eine Frage hätte ich noch: Kann ich eine Datenbank, die schon fertig ist genauso hinzufügen. Damit meine ich eine Datenbank, die ich auf dem SQL-Server Express entwickelt habe. Dass ich aus dieser SQL-Server Datenbank eine lokale Datenbank mache und dann so hinzufüge, wie du mir das gezeigt hast. DANKE NOCHMALS!!! LG Zitieren
Gateway_man Geschrieben 23. Februar 2010 Geschrieben 23. Februar 2010 Sry wegen längerer Wartezeit . Das geht meines wissen nicht, da die mdb files welche der MS SQL Server generiert, in der regel gelockt werden. Sprich du kannst nur über den MS SQL Serverdienst darauf zugreifen. Google doch einfach mal nach mdf converter oder ähnliches, evtl hat ja jemand ne möglichkeit gefunden und ein tool geschrieben. LG Gateway Zitieren
lbm1305 Geschrieben 23. Februar 2010 Geschrieben 23. Februar 2010 mdb files welche der MS SQL Server generiert, in der regel gelockt werden. Der SQL-Server wird mit den Dateien nichts anfangen können, da diese von Access kommen. Zitieren
Gateway_man Geschrieben 23. Februar 2010 Geschrieben 23. Februar 2010 (bearbeitet) Der SQL-Server wird mit den Dateien nichts anfangen können, da diese von Access kommen. hopla meinte natürlich mdf. Bearbeitet 23. Februar 2010 von Gateway_man Zitieren
T-Back Geschrieben 23. Februar 2010 Autor Geschrieben 23. Februar 2010 @ lbm1305: Was hat die ".sdf" Datei und die "*.mdf" Datei vom SQL-Server mit Access zu tun? Die Daten kommen ja vom SQL-Server. Ich habe immer von SQL-Server "*.mdf" - Dateien gesprochen. LG Zitieren
lbm1305 Geschrieben 23. Februar 2010 Geschrieben 23. Februar 2010 @ lbm1305: Was hat die ".sdf" Datei und die "*.mdf" Datei vom SQL-Server mit Access zu tun? Die Daten kommen ja vom SQL-Server. Ich habe immer von SQL-Server "*.mdf" - Dateien gesprochen. LG Du schon, aber Gateway_man nicht ;-) Er hatte sich verschrieben. (Siehe einen Beitrag vor meinem Zitat). Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.