Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Speicherort für Firebird Datenbank (https://www.delphipraxis.net/89962-speicherort-fuer-firebird-datenbank.html)

Artur 9. Apr 2007 17:50

Datenbank: Firebird • Version: 2.0 • Zugriff über: local / Netzwerk

Speicherort für Firebird Datenbank
 
Hallo zusammen,

mal eine ganz triviale Frage: Wo speichert Ihr Eure Datenbank-Datei?
Ich habe dazu irgendwie keine rechte Antwort gefunden.

Derzeit habe ich meine Datenbank-Datei direkt in einem Unterverzeichnis von C:\ was sehr unelegant ist, aber zumindest unter XP keine Probleme macht. Und solange ich noch am rumbasteln bin, ist es recht praktisch...

Allerdings ist mir nicht klar, ob ich Problem bekomme, wenn ich sie unter
C:\Dokumente und Einstellungen\All Users\Anwendungsdaten ablege (wo sie "gefühlt" hingehört) und wie sich VISTA dann verhalten wird.
(Trau mich noch nicht recht, meinen Rechner auf VISTA "upzugraden").

Schönes Restostern noch...

Ciao,

Artur

mkinzler 9. Apr 2007 17:53

Re: Speicherort für Firebird Datenbank
 
Dort ist sie eigentlich gut aufgehoben, wenn der Serverdienst genügend Rechte hat.

Artur 9. Apr 2007 17:57

Re: Speicherort für Firebird Datenbank
 
Hi mkinzler,

na gut, dann werde ich das mal testen :-)
Danke für die superflotte Antwort.

Ciao,

Artur

grenzgaenger 9. Apr 2007 19:04

Re: Speicherort für Firebird Datenbank
 
das kommt drauf an. wenn deine db nur von einem user vewendet werden soll, kannste sie unter anwendungsdaten speichern. wenn mehrere leut drauf zugreifen sollten, so solltest du die daten in ein separates verzeichnis ablegen (normal jedoch nicht im programmverzeichnis).

Hansa 9. Apr 2007 19:51

Re: Speicherort für Firebird Datenbank
 
Zitat:

Zitat von grenzgaenger
...wenn mehrere leut drauf zugreifen sollten, so solltest du die daten in ein separates verzeichnis ablegen (normal jedoch nicht im programmverzeichnis).

Wenn nicht ins Programmverzeichnis, wohin dann ? Das da ist eine Sache, die unter Vista wohl Ärger machen wird. Es muss eine zentrale Stelle für ALLE User geben. Man kann ja wohl nicht alle Daten in das User-Verzeichnis eines bestimmten, aber nicht mit dem momentanenen User identischen Users speichern ? Toller Satz, was ? :P Also : wohin letztenendes mit den Daten ? Von dieser Frage mal abgesehen, bisher sehe ich zumindest INI-Dateien dafür vor, den genauen Speicherort festzuhalten. Wie stellt sich Mickysoft das eigentlich vor ? :shock:

omata 9. Apr 2007 19:56

Re: Speicherort für Firebird Datenbank
 
Vielleicht hilft das hier weiter.

Gruss
Thorsten

grenzgaenger 9. Apr 2007 20:01

Re: Speicherort für Firebird Datenbank
 
tja, klassisch ins [data] verzeichnis... aber so was gibts ja bei windows nich.. daher dann normal selbst erstellen \data kann man dann auch wunderbar backupen... und die user spezifischen verzeichnise werden dabei nicht berührt. mal davon abgesehen, dass auf so 'n system dann normal 'n dedicated server für die datenbank vorzusehen wär, wenn man sich nicht ärger im überfluss einhandeln möchte...

PS: @hansa, für so 'n fall bietet es sich an, die Einstellung wie bisher in die ini, des programmverzeichnises zu stellen, oder in die registry unter local machine (mal die registry zumüllen ;-) ) . aber wenn er der einzige ist, der auf die datenbank zugreift, warum dann nicht unter benutzerdaten??? dann braucht er ja auch keinen locking mechanismus zu implementieren ;-)

Hansa 9. Apr 2007 20:11

Re: Speicherort für Firebird Datenbank
 
Ich merke, die Zeit ist reif für solche Diskussionen. :mrgreen: Also gut : 10 User. Dedicated Server sind out und Locking Mechanismen für FB auch. :stupid: Jetzt habe ich einen Server. Mein Programm soll von allen genutzt werden und zwar mit den gleichen Daten. Laut M$ sollen Schreibrechte (sofern keine Administratorrechte) nur im User - Verzeichnis gewährt werden. Und nun ? 10 User = 10 verschiedene Verzeichnisse. Trotzdem sollen die Daten gemeinsam genutzt werden. :shock:

mkinzler 9. Apr 2007 20:23

Re: Speicherort für Firebird Datenbank
 
@Hansa:
Zitat:

C:\Dokumente und Einstellungen\All Users\Anwendungsdaten

Artur 9. Apr 2007 20:51

Re: Speicherort für Firebird Datenbank
 
@Alle

Vielen Dank für die rege Beteiligung. So kann man sich täuschen (von wegen triviale Frage...).
Ich werde es mal testen (wie geschrieben unter C:\Dokumente und Einstellungen\All Users\Anwendungsdaten)

Aber nach der Diskussion frage ich mich, wo IHR Eure Daten laßt?
Und wer von Euch hat sich schon mit VISTA beschäftigt (in Hinblick auf das Thema Datenbank)?

Bei VISTA könnte ja ein separates Verzeichnis noch funktionieren (?), aber sobald es im "C:\Programme"-Pfad liegt, dürfte Schluß mit lustig sein, da dort ja nur Admins schreiben dürfen (und mein FB embedded hat ja nur die gleichen Rechte wie mein Programm, also die des Benutzers oder?).

Meine INI habe ich schon mal sauber in den jeweiligen Dokumente Bereich des Users ausgelagert, damit gibt es kein Problem und jeder User kann seine eigenen Einstellungen machen. (Thorsten hat ja auch schon auf ShFolder hingewiesen).

Aber darf der emmbedded Firebird in All Users schreiben? Ich habe noch kein Installationsprogramm gemacht, sondern bisher alles händisch kopiert bzw. auf meinem Entwicklungsrechner läuft natürlich ein vollwertiger Firebird-Server.

Und was passiert, wenn die schnelle Benutzerumschaltung verwendet wird, knallt es dann?

Fragen über Fragen.

Ciao,

Artur

Hansa 9. Apr 2007 21:07

Re: Speicherort für Firebird Datenbank
 
Zitat:

Zitat von Artur
(Trau mich noch nicht recht, meinen Rechner auf VISTA "upzugraden").

Ohne dies zu tun kann man aber wohl nur im Nebel rumstochern. Unter XP kann ich jedenfalls machen, was ich will und mein Programm läuft immer. :lol: Wohlgemerkt : auch mit eingeschränkten Rechten ! Kann man das Vista-Verhalten irgendwie simulieren ? Oder kann das mal jemand mit "All Users" testen ? Dann stellt sich auch schon die nächste Frage : was ist mit nicht-deutschen Windows-Versionen ? Wo ist eine Übersicht, wie diese Verzeichnisse alle heißen ? Also %homepath% usw.

mkinzler 9. Apr 2007 21:17

Re: Speicherort für Firebird Datenbank
 
Unter Visat gibt es keine loaklisierte Verzeichnisnamen mehr. Also kein Dokumente und Einstellungen. Diese sind nur Verknüpfungen auf Documents and Settings

hoika 10. Apr 2007 09:34

Re: Speicherort für Firebird Datenbank
 
Hallo,

um zur Frage zurückzukommen ;)
Ich speichere mein DB dorthin,
wo der Admin der jeweiligen Firma sagt ...

Meistens sind es 2000er-Server.
Die DB hat nichts zu suchen an einer Stelle,
wo (theoretisch über die Rechte) jeder User hinkommen kann.

Die DB bekommt meistens nur SYSTEM als Recht (darunter läuft ja Firebird).

Zum Speicherort, Daten und Programme trennen (2 Partitionen/2 Platten)
e:\data\mein_programm

E wäre z.B. ein Raid.


Heiko

TBx 10. Apr 2007 10:10

Re: Speicherort für Firebird Datenbank
 
Hallo!

Ich Habe mir ein Verzeichnis Databases in C:\ angelegt.
Hierunter nun jeweilig ein Verzeichnis, das ich genauso benenne wie das, in dem mein Programm liegt (bzw. wenn es eine Gruppe von Programmen ist, die auf die Datenbank zugreifen sollen, dann nutze ich den Namen dieser Gruppe).
In diesem Verzeichnis lege ich dann die Datenbank ab.

Zugriff auf diese Datenbank habe ich niemals über die éxakte Pfadangabe sondern nur über Aliase (--> siehe aliases.conf).

Ich lege alle Datenbanken in einen Verzeichnisbaum, da es sich empfihlt, Datenbanken vom Virenscan auszuschließen. Dies läßt sich dann sehr einfach realisierne, indem man den ganzen Baum ausklammert.

Die Verwendung von Aliasen macht mir eine Verlagerung der Datenbanken jederzeit sehr einfach.

Gruß

Thomas

Lemmy 10. Apr 2007 12:25

Re: Speicherort für Firebird Datenbank
 
Hi,

direkt mit den Verzeichnisnamen zu arbeiten ist meiner Meinung nach Schwachsinn - dazu gibt es in den neuen Windows-Versionen Funktionen (ab Windows NT 4.0), die den entsprechenden Verzeichnisnamen zurückliefern (z.B. AllUsers - Anwendungsdaten). Wo der dann genau liegt kann eigentlich wurscht sein, so lange der Pfad bei der Installation und im Programm nachher gleich sind.

In meiner aktuellen Entwicklung verwende ich dwspfAppData (aus DelphiWorks) welches mit den "Anwendungsdaten"-Pfad von AllUsers zurückliefert. Das Programm (incl. Setup) funktioniert ohne Probleme unter Windows 2000 bis zu Windows Vista unter Standard-User-Rechten! Wobei es sich da um ne Stand-Alone-Anwendung handelt (Firebird embedded).

Aber auch auf dem Server würde ich mir gut überlegen, ob der User bestimmen darf wo die Datenbank installiert werden soll, denn sonst kommt der Anwender (auch wenn es der Administrator ist) auf die Idee und "sichert" die Datenbank im Laufenden Betrieb per copy-paste. ALs einzigen Grund für die Wahl des DB-Verzeichnisses spricht dafür, dass der Anwender ein Verzeichnis ohne automatische Replikation aussuchen kann, denn das bekommt FB auch nicht gut...

Was für mich persönlich ein Grund wäre eine Software NICHT einzusetzen: Wenn das Ding ungefragt auf C:\ irgend welche Verzeichnisse anlegt, ohne dass ich einen Einfluss darauf habe.

Grüße
Lemmy

Hansa 10. Apr 2007 13:30

Re: Speicherort für Firebird Datenbank
 
So, morgen habe ich Vista. :P Für Support-Fälle ist das wohl noch unproduktiver als die Vorgängerversionen. Es ist ein Unding, notfalls den Enduser die DB suchen zu lassen, z.B. um die genaue Dateigröße zu ermitteln. Wer soll das bezahlen ? Start -> ausführen -> %homepath% ist schon zuviel für DAUs. Das kriegen die nicht fehlerfrei hin. Wetten ? :mrgreen:

mkinzler 10. Apr 2007 14:05

Re: Speicherort für Firebird Datenbank
 
In diesem Fall sollte man die Alias-Funktion verwenden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz