![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Каталог базы данных. [D6, Paradox]
Mishenka © (2004-04-14 20:55:00)При переносе проги на другой комп, или в другой каталог выводится сообщение об ошибке, Тобишь база строго прописана по определённому пути. Как сделать, чтоб путь менялся взависимости от расположения проги?
(2004-05-02 11:46:00) [1]Удалено модератором
Mishenka (2004-05-02 04:55:00) [2]Ну наконец-то разобрался! Не прошло и года! Спасибо всем за помощь!
HSolo (2004-04-20 09:15:00) [3]Ну вот Вам еще пример(из работающей программы):
with MyDB do begin
Params.Clear;
Params.Add('DefaultDriver=DBASE');
Params.Add('EnableBCD=false');
Params.Add('Path='+fDBPath);
end;
где:
MyDB - TDataBase
fDBPath - путь к каталогу, где база лежит
Это для dBase, для Paradox - поставьте нужные параметры (какие именно - настройте алиас в BDEAdmin и посмотрите)
Mishenka (2004-04-19 19:49:00) [4]
> Hawk2 © (19.04.04 18:34) [28]
Так тоже не работает :(((
Уж незнаю что и делать, наверно скоро повешусь.
Hawk2 (2004-04-19 18:34:00) [5]Самый примитивный способ :)
procedure TMainFrm.FormShow(Sender: TObject);
var Str:string;
begin
GetDir(0,Str);
Str:=Str+'\DataFiles\';
DataModule1.Query1.DatabaseName:=Str;
end;
база должна находиться например в подкаталоге DataFiles, в том же каталоге что и файл программы, а вот сама программа к конкретному пути не привязана.
Mishenka (2004-04-19 17:21:00) [6]Почему все молчат?
Mishenka (2004-04-18 19:34:00) [7]Открываю через DataModule. Ну создавал базу конечно в BDE/ Так что подсказывай :))
Sairex (2004-04-18 16:12:00) [8]Хммм... Как же ты тогда открываешь базу? И какого она типа ?
Если BDE то могу подсказать, иначе врдяли
Черный прапорщик (2004-04-17 22:37:00) [9]Novel и Win98?
Mishenka (2004-04-17 21:09:00) [10]Чё-то я посмотрел, SCB у меня сама выдаёт ошибку unknown DataBase, а у остальных на сайте написано, что надо в alias'е путь указывать, тобишь они для этого не подходят...
Anatoly Podgoretsky (2004-04-17 15:55:00) [11]Значит отказ от алиасов и устанавливать путь до базы при старте программы. Если интересно как это делается, то сходи на мой сайт и возьми любуэ программ по работе с базами, они все в исходных текстах.
Mishenka (2004-04-17 15:41:00) [12]
> Sairex (17.04.04 15:14) [19]
Проблема не в том как определить путь к проге, я его уже 10 раз определил. Проблема в том куда этот путь потом запихнуть, чтоб база его знала.
> Anatoly Podgoretsky © (17.04.04 15:31) [20]
У меня вариант 2, тобишь база находится в папке проги в одном из подкаталогов.
Anatoly Podgoretsky (2004-04-17 15:31:00) [13]Плясать надо от следующего
1. База отвязана от программы, находится в любом месте
2. База жестко связана с программой, находится в той же папке
3. База жестко связана с программой, находится в папке пользователя
Отсюда и разные решения.
Первый вариант дает большую гибкость.
Второй вариант можно и должно нарваться на отсутствие прав
Третий вариант однопользовательский
Sairex (2004-04-17 15:14:00) [14]Есть два варианта решения этой проблемы:
1. Создаешь файл который содержит информацию о местонахождении файла (причем без разницы какой он там db или еще какой нибудь)
и При запуске проги читаешь путь где находиться база. Но есть
свои не достатки.
2. Определять путь при запуске программы. Есть различные способы
как узнать путь до твоего приложения: я же чаще делаю так
..............
Var FilePath1,S1:String;
...
Begin
....
FilePath1:=Application.ExeName; // Выводит полный путь и имя
//exe-файла
For i:=1 to Length(FIlePath1)-6 Do
S1:=S1+FilePath1[i];
....
End;
Этот код можно использовать при полной уверенности что файл не переименуют поскольку здесь отбрасывается имя exe-из 6 символов
(p1.exe). По идее можно усовершенствовать.
Mishenka (2004-04-16 21:29:00) [15]Может хоть кто-нибудь знает?
Mishenka (2004-04-16 14:33:00) [16]Так чё делать-то?
Fay (2004-04-16 00:33:00) [17]Видимо, этот вопрос предназначался ЮЮ... А мой ответ - ,да,.
ser_ega (2004-04-15 22:27:00) [18]>>Fay А этот код для какой базы? Для Paradox он подойдет или нет? Если нет то как сделать для Paradox?
Fay (2004-04-15 21:37:00) [19]Прямо не верится. Ужас какой.
Mishenka (2004-04-15 21:09:00) [20]RjhКороче бка возникает при обращении к DataModule1...