Как сделать так чтобы, при запуске проги с БД, прога знала где искать файлы БД. Или создавала бы сама папку допустим C:/d , а в этой папке создавала или копировала файлы БД.
InstallshieldExpress, входящий в поставку Delphi, позволяет все это делать.
Бродяжник
28.12.2005 9:26
...а если хочется чего-то другого, то можно
- юзать реестр
- юзать INI-файлы
- танцевать от автоматического определения пути к ЕХЕ-файлу (это можно сделать через объект Application. То ли Application.ExeName, то ли еще как-то так)
- в самом тупом случае действительно можно просто потребовать, чтобы юзеры непременно ставили нашу прогу в C:\MyProg\. Ах, им это неудобно?!
Gothic_Snake
28.12.2005 18:51
Цитата(Бродяжник @ 28.12.2005 12:26)
...а если хочется чего-то другого, то можно
- юзать реестр
- юзать INI-файлы
- танцевать от автоматического определения пути к ЕХЕ-файлу (это можно сделать через объект Application. То ли Application.ExeName, то ли еще как-то так)
- в самом тупом случае действительно можно просто потребовать, чтобы юзеры непременно ставили нашу прогу в C:\MyProg\. Ах, им это неудобно?!
paramstr(0) - выдает путь к екзешнику запущенной программы..
extractfiledir(paramstr(0)) - выдает текущую папку..
Дело такое... проэкт проги на БД будет передан преподу. Препод будет запускать прогу не через экзешник, а делфи->открыть->проэкт и уже там F9.
Я хочу поместить файлы БД в папку, где будет находица проэкт, как сделать так, чтобы прога обращалась за БД, в ту папку откуда она запущена?
1.
http://forum.sources.ru/index.php?showtopic=622612. Можно через ADO
Я делал так
Код
OpenDialog1.Filter := 'Ôàéëû ÁÄ Access (*.mdb)|*.mdb|All files (*.*)|*.*';
OpenDialog1.FilterIndex := 1; { start the dialog showing all files }
if OpenDialog1.Execute then
fn := Opendialog1.FileName;
DataModule2.ADOConnection1.ConnectionString :=
'"Provider=MSDASQL.1;'+
'Persist Security Info=False;'+
'Extended Properties="'+
'DBQ='+fn+';'+
'DefaultDir='+ExtractFilePath(fn)+';'+
'Driver={Driver do Microsoft Access (*.mdb)};'+
'DriverId=25;'+
'FIL=MS Access;'+
'FILEDSN='+ExtractFilePath(fn)+'\db1.mdb.dsn;'+
'MaxBufferSize=2048;'+
'MaxScanRows=8;'+
'PageTimeout=5;'+
'SafeTransactions=0;'+
'Threads=3;'+
'UID=admin;'+
'UserCommitSync=Yes;"';
DataModule2.ADOConnection1.Connected := True;
DataModule2.ADOTable1.Active := True;
DataModule2.ADOTable3.Active := True;
DataModule2.ADOTable2.Active := True;
DataModule2.ADOTable4.Active := True;
DataModule2.ADOTable5.Active := True;
YurKaluga
29.12.2005 12:26
Дельфя же компилит экзешник туда же где проект, послушай Gothic_Snake (см.выше) ExtractFileDir(paramstr(0)) или ExtractFilePath(paramstr(0)) или вместо paramstr(0) впиши Application.ExeName, тоже работает
YurKaluga
Речь же идет не об этом.
Цитата
Я хочу поместить файлы БД в папку, где будет находица проэкт, как сделать так, чтобы прога обращалась за БД, в ту папку откуда она запущена?
YurKaluga
30.12.2005 10:27
Я, например, прописываю путь прямо в компоненте, что-то типа
Table1.DataBaseName:= ExtractFilePath(paramstr(0)).
Вот я о чем...
GoodWind
30.12.2005 20:32
уж простите тупого меня... если я ошибаюсь...
Код
AddStandardAlias('MYDBDEMOS', 'C:\TESTING\DEMOS\', 'Paradox');
создает алиас... параметры
- Имя алиаса
- Путь к БД
- Драйвер
Gothic_Snake
10.01.2006 16:12
Цитата(GoodWind @ 30.12.2005 23:32)
уж простите тупого меня... если я ошибаюсь...
Код
AddStandardAlias('MYDBDEMOS', 'C:\TESTING\DEMOS\', 'Paradox');
создает алиас... параметры
- Имя алиаса
- Путь к БД
- Драйвер
В каком модуле процедурка описана?
GoodWind
10.01.2006 23:34
не знаю... посмотри в дельфовом хелпе
GoodWind, если я не ошибаюсь, AddStandardAlias это метод класса TSession, следовательно в модуле DBTables...
GoodWind
10.01.2006 23:53
volvo скорее всего... не установлена Дельфи сейчас...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.