Gdzie zapisac baze danych sqlite

0

Witam

Mam takie oto pytanie: gdzie moge zapisac plik bazy danych sqlite tak aby program ktory dziala na kazdym koncie uzytkownika mogl zapisywac i odczytywac ta baze danych. Obecnie baza danych jest utworzona w:

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
(C:\users\nazwa_uzytkownika\AppData\Roaming)

Tutaj jest oczywiscie problem bo kazdy uzytkownik ma swoja kopie bazy danych. Czy jest mozliwosc utworzenia jednej kopii bazy danych dla wszystkich uzytkownikow i gdzie moge ta baze danych zapisac?

Z gory dziekuje za pomoc

0

C:/Users/All users

0

Nie mam takiej lokalizacji "C:/Users/All users"

Kazdy uzytkownik ma swoj folder i jest tez folder "Default" i "Public".
Uzywam windows 7

Czy mam utworzyc folder "All users" ?

Wczesniej probowalem zapisac baze danych do C:\programdata ale standardowy uzytkownik nie ma prawa dostepu do tego folderu

0

Właśnie widzę, że All Users jest zmapowane do c:\ProgramData\ wiec teoretycznie tam powinieneś to wrzucić.

4

A co jeśli ktoś ma folder z użytkownikami na dysku D? Podawanie zahardcodowanych ścieżek jest bez sensu - w zależności od języka będziesz miał swój mechanizm na znalezienie odpowiedniego folderu przykład https://msdn.microsoft.com/en-us/library/system.environment.specialfolder(v=vs.110).aspx

0

Jesli zapisze baze danych do:

Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) & "\pc_child_timer_db.db3"
(C:\ProgramData\pc_child_timer_db.db3)

albo do:

My.Computer.FileSystem.SpecialDirectories.AllUsersApplicationData & "\pc_child_timer_db.db3"
(C:\ProgramData\PC_Child_Timer\PC_Child_Timer\1.0.0.0\pc_child_timer_db.db3)

wyskakuje blad "attempt to write a readonly database" jesli uzywam standardowego konta, konto admina jest ok

jest to problem zwiazany z windows permissions.
Czy mam zmienic ustawienia dotyczace uprawnien np dla folderu aplikacji? (C:\ProgramData\PC_Child_Timer\PC_Child_Timer\1.0.0.0\pc_child_timer_db.db3)

1 użytkowników online, w tym zalogowanych: 0, gości: 1