Wo Datenbank speichern?

gander

Mitglied
Hi Leute,

hab da mal ne Frage, wo muss ich meine Access Datenbank im Projekt speichern damit ich, wenn ich eine .exe erstell, Zugriff darauf hab, auch bei anderen rechnern.
Also das die DB sozusagen mit in der exe gespeichert wird sodass ich die exe auf einem anderen Rechner starten kann und das Programm dort auch auf die DB zugreifen kann.
Also sozusagen das die DB lokal auf jedem PC gespeichert ist.

Hoffe Ihr versteh was ich meine.


gruß
 
Ich erklär das Problem ml etwas anders. Also ich hab die Datenbank zum Beispiel unter C/Dokumente und EInstellungen/DB/Datenbank.accdb gespecihert. Wenn ich jetzt eine .exe ersetll und die auf einem anderen rechner installiere, dann ist auf dem anderen Rechner unter C/Dokumente und Einstellungen/DB/ die Datenbank logischerweise nciht vorhanden weil sie ja keienr da abgelegt hat. jetzt hab ich mir gedacht das ich die Datenbank in das Projekt rein speichere. und wenn ich dann eine . exe erstell müsste die DB da ja auch enthalten sein. Und im ConnectionString könnte der Pfad dann ja so irgendwie aussehen : Pfad: "Datenbank.accdb" oder vll auch "../Datenbank.accdb" also eine relative pfadangabe. Aber wo genau, also in welchen Ordner im Projekt muss ich die Datenbank ablegen damit die "mit in die .exe" gespeichert wird oder geht das gar nicht? wie kann ich es dann machen? Hab im internet leider nix gefunden
 
Hi

Wo du das Access File in deinem Projekt (ich geh jetzt mal von einem Visual Studio Projekt aus) ist dir überlassen. Erstelle einen Ordner mit einem Namen deiner Wahl und leg da das File rein.

Wichtiger ist das Setup, da du erstellst. Das muss die DB dann auf dem Zielrechner entsprechend ablegen.
Dabei kommt es darauf an, ob die Anwendung benutzerspezifisch (1) ist oder für alle Anwender auf dem Rechner gleich ist (2)
1) Das Setup legt die DB in das AppData-Verzeichnis des Anwenders und dein Programm öffnet auch von da
2) Das Setup legt die DB in das ProgramData-Verzeichnis (Anwendungsdaten von "All Users" unter XP)

Aber noch ein Punkt zu Access
Ist das eine Neuentwicklung oder die die DB schon älter? Wenn ersteres hätte ich an deiner Stelle nicht Access genommen sondern eher Sql Server Express oder Compact Edition
 
Hi danke dir für deine Antwort.

Ja richtig hatte vergessen zu sagen das ich mit Visual Studio arbeite.
Also für mich kommt eher (2) in Frage.
Es ist eine Neuentwicklung, wieso würdest du mir deshalb von Access abraten?
 
Microsoft bietet mit dem Sql Server Express und SQl Server Compact fortschrittlichere Technologien als Access, die auch aufeinander aufbauen und sich ähneln.
Access ist eine Insel, die nicht kompatibel ist zum Sql Server. Wenn deine Anwendung also mal wächst und du auf ein ausgewachsenes DBMS angewiesen bist musst du ggf. deine Sql Querys anpassen (Access verwendet andere Funktionen als T-SQL)
Von der Compact Edition hast du es da leichter. Und es werden zu dem die entsprechenden Klassen für .NET zur Verfügung gestellt. Bei Access hast du nur OLE DB und ODBC zur Verfügung
 
hmm ok ...
ich würde sagen ich steh noch ziemlich am anfang was programmieren angeht da sind solche tipps immer gut, danke dir.
Wenn ich mit SQL Server arbeiten würde, wäre es dann acuh möglich das ich die Anwendung auf einem Rchner benutze auf dem kein SQL Server installiert ist?

und um noch mal auf dieses Thema zu kommen:
1) Das Setup legt die DB in das AppData-Verzeichnis des Anwenders und dein Programm öffnet auch von da
2) Das Setup legt die DB in das ProgramData-Verzeichnis (Anwendungsdaten von "All Users" unter XP)
ich hab mir (1) noch mal durchgelesen und hab es glaub doch nicht ganz verstanden:
Das Setup erledigt das für mich? also wenn ich die DB im Projekt speichere und dann ein setup erstelle und diesen ausführe legt er mir die DB ins AppData-Verzeichnis (Wo liegt dieses Verzeichnis? )? So hab ich das jetzt verstanden aber ich glaube das ist falsch :) oder? Dann müsste ich ja auch den ConnectionString wieder anpassen z.B.: ConnectionString = "...AppData/MeineDatenbank.mdb" oder? könntest du mir das eventuell noch mal kurz erklären?

danke schon mal


gruß Gander
 
Hi

Du musst das Setup schon entsprechend konfigurieren. Es wird noch eine Weile dauern, bis der Computer von allein weiß, was der User will ;)

@AppData: Ausführen --> %AppData% --> Enter

Und da eine Pfadvariable ist kennst du den Pfad.

Es ist mehr oder weniger egal wo du deine DB ablegst. Du solltest nur bedenken, dass ab Windows >= 6.0 eine Anwendung nur noch mit vollen Adminrechten ins Programmverzeichnis schreiben kann. Demnach solltest du dich damit genauer beschäfftigen
 

Neue Beiträge

Zurück