Помощь - Поиск - Пользователи - Календарь
Полная версия: алиас?
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Delphi
SS
Как сделать так чтобы, при запуске проги с БД, прога знала где искать файлы БД. Или создавала бы сама папку допустим C:/d , а в этой папке создавала или копировала файлы БД.
Ozzя
InstallshieldExpress, входящий в поставку Delphi, позволяет все это делать.
Бродяжник
...а если хочется чего-то другого, то можно
- юзать реестр
- юзать INI-файлы
- танцевать от автоматического определения пути к ЕХЕ-файлу (это можно сделать через объект Application. То ли Application.ExeName, то ли еще как-то так)
- в самом тупом случае действительно можно просто потребовать, чтобы юзеры непременно ставили нашу прогу в C:\MyProg\. Ах, им это неудобно?! adm.gif
Gothic_Snake
Цитата(Бродяжник @ 28.12.2005 12:26) *

...а если хочется чего-то другого, то можно
- юзать реестр
- юзать INI-файлы
- танцевать от автоматического определения пути к ЕХЕ-файлу (это можно сделать через объект Application. То ли Application.ExeName, то ли еще как-то так)
- в самом тупом случае действительно можно просто потребовать, чтобы юзеры непременно ставили нашу прогу в C:\MyProg\. Ах, им это неудобно?! adm.gif

paramstr(0) - выдает путь к екзешнику запущенной программы..
extractfiledir(paramstr(0)) - выдает текущую папку..
SS
Дело такое... проэкт проги на БД будет передан преподу. Препод будет запускать прогу не через экзешник, а делфи->открыть->проэкт и уже там F9.
Я хочу поместить файлы БД в папку, где будет находица проэкт, как сделать так, чтобы прога обращалась за БД, в ту папку откуда она запущена?
Ozzя
1. http://forum.sources.ru/index.php?showtopic=62261
2. Можно через 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
Дельфя же компилит экзешник туда же где проект, послушай Gothic_Snake (см.выше) ExtractFileDir(paramstr(0)) или ExtractFilePath(paramstr(0)) или вместо paramstr(0) впиши Application.ExeName, тоже работает cool.gif
Ozzя
YurKaluga

Речь же идет не об этом.
Цитата
Я хочу поместить файлы БД в папку, где будет находица проэкт, как сделать так, чтобы прога обращалась за БД, в ту папку откуда она запущена?
YurKaluga
Я, например, прописываю путь прямо в компоненте, что-то типа
Table1.DataBaseName:= ExtractFilePath(paramstr(0)).
Вот я о чем...
GoodWind
уж простите тупого меня... если я ошибаюсь... rolleyes.gif
Код
AddStandardAlias('MYDBDEMOS', 'C:\TESTING\DEMOS\', 'Paradox');

создает алиас... параметры
  1. Имя алиаса
  2. Путь к БД
  3. Драйвер
Gothic_Snake
Цитата(GoodWind @ 30.12.2005 23:32) *

уж простите тупого меня... если я ошибаюсь... rolleyes.gif
Код
AddStandardAlias('MYDBDEMOS', 'C:\TESTING\DEMOS\', 'Paradox');

создает алиас... параметры





  1. Имя алиаса


  2. Путь к БД


  3. Драйвер




В каком модуле процедурка описана?
GoodWind
не знаю... посмотри в дельфовом хелпе wink.gif
volvo
GoodWind, если я не ошибаюсь, AddStandardAlias это метод класса TSession, следовательно в модуле DBTables...
GoodWind
volvo скорее всего... не установлена Дельфи сейчас...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.