Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2010.12.05;
Скачать: [xml.tar.bz2];

Вниз

Путь к БД - захардкодить или как?   Найти похожие ветки 

 
George ©   (2010-08-30 02:45) [0]

Вот задался себе таким вопросом.
ОБычно при старте приложения делаю что-то вроде
MySQLConnection.DatabasePath := ExtractFilePath(Application.ExeName) + "mybase.blablabla"
Это вообще то верный подход? А то мне начинает казаться, что я чего то не то делаю - ни у кого больше такого не видел. Можно конечно путь в Ini какой нибудь записать или реестр, но и этого не видел. Как вы делаете?


 
Германн ©   (2010-08-30 03:41) [1]


> Это вообще то верный подход? А то мне начинает казаться,
>  что я чего то не то делаю - ни у кого больше такого не
> видел. Можно конечно путь в Ini какой нибудь записать или
> реестр, но и этого не видел.

Нет неверный. Приложения как правило устанавливаются в "Program Files", а в этот каталог юзер не может писать.


 
Anatoly Podgoretsky ©   (2010-08-30 08:58) [2]

> George  (30.08.2010 02:45:00)  [0]

Дважды неправильный

1. размещение в папке с программой, и записи туда нет и может заблокировать
доступ
2. нельзя перенести базу в другое место, более нормальное


 
DVM ©   (2010-08-30 09:08) [3]


> George ©   (30.08.10 02:45) 

Верный путь - хранить строку подключения к базе данных (если она вообще нужна) в файле в папке, предназначенной для хранения пользовательских данных программы или в реестре. Саму базу хранить тоже в папке с пользовательскими данными, если не требуется иначе. Если база пустая и создается при установке программы, то все пути изначально могут указывать на эту созданную пустую базу данных.

В самой программе (или отдельной утилите для настройки программы) желательно предусмотреть возможность смены базы данных, например с помощью сборки и редактирования той же строки подключения.


 
Ega23 ©   (2010-08-30 10:41) [4]

ini-файлы - наше фсьё!


 
Petr V. Abramov ©   (2010-08-30 13:20) [5]

по-хорошему юзер должен иметь возможность выбирать, с какой базой работать (по пути, по алиасу, не знаю еще как). Последнюю выбранную надо запоминать в реестре, в ini, где нравится, и при старте пронграммы она должна быть по умолчанию выбрана.


 
George ©   (2010-08-30 13:30) [6]

Тогда вопрос, правильнее ли будет разместить БД в папке программы в Application Data по дефолту ну и путь к ней да, в реестре прописать?


 
George ©   (2010-08-30 13:37) [7]


> George ©   (30.08.10 13:30) [6]

и если да, то в каком именно Application Data надо хранить БД? Ведь программа может устанавливаться для всех пользователей, а может и для одного.


 
Anatoly Podgoretsky ©   (2010-08-30 13:55) [8]

> George  (30.08.2010 13:30:06)  [6]

Смотря в какой именно, их же не одна.


 
Ega23 ©   (2010-08-30 14:04) [9]


> правильнее ли будет разместить БД в папке программы в Application
> Data по дефолту ну и путь к ней да, в реестре прописать?


Надо задать возможность размещения БД в инсталляторе. По-умолчанию - ну пусть в AppData. А вообще - где пользователь выберет. Ну и дальше сохранять подключение.


 
George ©   (2010-08-30 14:36) [10]


> Ega23 ©   (30.08.10 14:04) [9]

InnoSetup пользую. Умеет ли он, в зависимости от того, для всех пользователей или только для текущего устанавливается программа, писать соотв. запись в реестр и размещать БД в соответствующей аппдате?


 
Anatoly Podgoretsky ©   (2010-08-30 14:38) [11]

> George  (30.08.2010 13:37:07)  [7]

Если для всех пользователей, то именно All Users, но по при этом, вероятно
придется сменить права на папку, вроде бы рядовым пользователям туда
запрещено писать. Другой вариант, создает новую папку DB в любом месте и
опять же настраиваем права.


 
George ©   (2010-08-30 14:54) [12]


> Anatoly Podgoretsky ©   (30.08.10 14:38) [11]

А Local Machine? Или це для служб?


 
Медвежонок Пятачок ©   (2010-08-30 14:56) [13]

вот потому то хмл - "наше всьийо".
там хоть для текущего юзера, хоть для всех сразу


 
George ©   (2010-08-30 15:42) [14]


> Медвежонок Пятачок ©   (30.08.10 14:56) [13]

Экий Вы проповедник хмл. Это не совсем то, что мне сейчас нужно. Мне нужно понять, где винрарнее хранить БД программы.

> Если для всех пользователей, то именно All Users, но по
> при этом, вероятно придется сменить права на папку, вроде
> бы рядовым пользователям туда запрещено писать.
Это смущает.


 
Медвежонок Пятачок ©   (2010-08-30 15:50) [15]

вспомнил притчу про две копны сена и одно животное.
оно тоже долго не могло решить какая копна наивинрарнейшая.


 
George ©   (2010-08-30 15:55) [16]


> Медвежонок Пятачок ©   (30.08.10 15:50) [15]

всего лишь поиск оптимального решения, разве не в этом наша работа?


 
Anatoly Podgoretsky ©   (2010-08-30 16:01) [17]

> George  (30.08.2010 15:55:16)  [16]

А есть волшебная таблетка?


 
Медвежонок Пятачок ©   (2010-08-30 16:12) [18]

оптимального - это какого?


 
George ©   (2010-08-30 18:40) [19]


> Медвежонок Пятачок ©   (30.08.10 16:12) [18]

наиболее объективно правильного, надежного, быстрого, простого и т.д. в контексте задачи и окружающей среды. наверное вот так )


> Anatoly Podgoretsky ©   (30.08.10 16:01) [17]

це ж Вам виднее


 
asail ©   (2010-08-30 19:17) [20]


> George ©   (30.08.10 18:40) [19]

> наиболее объективно правильного, надежного, быстрого, простого

Эти свойства могут оказаться взаимоисключающими...


 
George ©   (2010-08-30 19:31) [21]


> asail ©   (30.08.10 19:17) [20]

Ну должна быть какая-то сущность, которая объединяет все подобные свойства, так вот это и есть оптимальность. Какие-то свойства как правило приоритетнее.


 
Медвежонок Пятачок ©   (2010-08-30 22:41) [22]

наиболее объективно правильного, надежного, быстрого, простого и т.д. в контексте задачи и окружающей среды. наверное вот так )

Ну вот тебе два места хранения БД:

C:\Наиболее\объективно\правильный\надежный\быстрый\простой\database.dat

D:\ЕщеБолее\Наиболее\объективно\правильный\надежный\быстрый\простой\database.dat

Какой из них оптимальнее?


 
George ©   (2010-08-30 23:03) [23]


> Медвежонок Пятачок ©   (30.08.10 22:41) [22]

Тут разницы нет. А вот хранить в Аппдате или в папке рядом с программой, либо вообще в моих документах, а то и в System32 (ну вдруг я псих?) есть.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2010.12.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.005 c
2-1284398519
_Сергей_
2010-09-13 21:21
2010.12.05
Иероглифы а именах файлов


2-1284465557
azamatufa
2010-09-14 15:59
2010.12.05
Как в D7 сделать обновление структуры БД FireBird


15-1282647499
unisk
2010-08-24 14:58
2010.12.05
чего то вопросы не добавляются((


15-1282555120
Игорь Шевченко
2010-08-23 13:18
2010.12.05
Это интересно - журнал по Delphi


3-1248425517
Анна
2009-07-24 12:51
2010.12.05
импорт данных из MSSQL2000 в MSSQL2005





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский