Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Alias [D7, D2005, XP, 2003]


ronyn ©   (2006-08-15 11:03:00) 

Создав программу, использующую БД, я копирую её на комп пользователя вместе с этими БД - как быть с псевдонимами, не придется ли в этом случае копировать(изменять) файл IDAPI32.cfg?
                                     Заранее благодарен.


ronyn   (2006-08-18 01:05:00) [1]

DatabaseName:=extractfilepath(Application.ExeName)+'Bases\dbMain.db'
Так правильно указать статик патч?
>Elen[6] в данном случае это без разницы написать C:\Program Files\xyz\... или ExtractFilePath(Application... - не имеет значения, ведь реч совсем о другом


MsGuns   (2006-08-17 11:43:00) [2]

>Elen ©   (15.08.06 12:01) [3]
>В результате я в TTable прописываю полный путь к базам, который основан на пути где программа и проблемы исчезли

Так делать не совсем правильно. При работе с БДЕ лучше все же использовать централизацию обмена с БД через TDataBase

>AbrosimovA ©   (17.08.06 10:44) [7]

Длинно, громоздко, запутанно. А главное, ничего не решает и в общем-то на фиг не нужно.

РЕБЯТА, РАБОТАЮЩИЕ С БДЕ !!! Рекомендуется к внимательному прочтению хелп по TSession. Там, в частности, есть и про алиасы. А, главное, много чего написано для понимания принципов работы движка.


Desdechado   (2006-08-17 11:35:00) [3]

автор, ты каждый день будешь заново эту тему создавать?
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1155627240&n=18


Плохиш   (2006-08-17 11:01:00) [4]


> ronyn   (16.08.06 23:08) [4]
> Тогда не понятно, в чем же смысл "чудо изобретения - псевдонима"

Псевдонимы преднозначены для того, чтобы отвязать программу от физического расположения файлов БД.  Если кто-то решает использовать их через пятую точку опоры, то псевдонимы-то тут в чём виноваты?


AbrosimovA   (2006-08-17 10:44:00) [5]

Program Book;

uses
 Forms,
 Windows,
 Registry,
 SysUtils,
 Messages,
 Classes,
 DBTables,
 Splash in 'Splash.pas' {SplashForm},
 Module in 'Module.pas' {DataModule1: TDataModule},
 Data in 'Data.pas' {MainForm},
 Login in 'Login.pas' {PasswordDlg},
 Change in 'Change.pas' {PasswordDlg1},
 About in 'About.pas' {AboutBox};

{$R *.RES}

var Error: boolean;
   Index: integer;
   L : TStringList;
Label Quit;

begin
Application.Initialize;
Application.Title:='Список работников цеха';

with TRegistry.create do begin
 Rootkey := HKEY_LOCAL_MACHINE;
 if not (OpenKey('SOFTWARE\BORLAND\DATABASE ENGINE', false)) then begin
  MessageBox(0,PChar('Не установлена BDE на этот компьютер.'),
     PChar(Title), mb_OK);
  goto Quit;
 end else begin
  CFGFile := ReadString('CONFIGFILE01');
  Free;
  Application.CreateForm(TDataModule1, DataModule1);
end;
DataModule1.Session1.ConfigMode := cmPersistent;
L := TStringList.Create;
DataModule1.Session1.GetAliasNames(L);
for Index := 0 to L.Count - 1 do
 if L.Strings[Index]='MyBase' then begin
  DataModule1.Session1.DeleteAlias('MyBase');
  Break;
 end;
L.Add('DEFAULT DRIVER=DBASE');
L.Add('PATH='+ExtractFilePath(Application.Exename)+'Data');
DataModule1.Session1.AddAlias('MyBase', 'STANDARD', L);
DataModule1.Session1.SaveConfigFile;
Error:=false;
try
 DataModule1.Session1.Active:=true;
except
 MessageBox(0,PChar('Ошибка настройки базы данных MyBase(DBase) !!!'),
   PChar(Title), mb_OK);
 Error:=true;
end;
L.Free;
if Error then goto Quit;
try
 DataModule1.Cust.Active:=true;
except
 MessageBox(0,PChar('Отсутствуют файлы базы данных !!!'),
   PChar(Title), mb_OK);
 Error:=true;
end;

if Error then goto Quit;
try
 SplashForm := TSplashForm.Create(Application);
 SplashForm.Show;
 SplashForm.Update;
 SplashForm.Hide;
finally
 SplashForm.Free;
end;
Application.CreateForm(TMainForm, MainForm);
Application.CreateForm(TPasswordDlg, PasswordDlg);
Application.CreateForm(TPasswordDlg1, PasswordDlg1);
Application.Run;
Quit:
end;


Elen   (2006-08-17 07:48:00) [6]


> статик пач

Не статик, а получаемый при запуске из Application.ExeName. Иначе прога будет непереносима. Алиасы были впервые использованны в FoxPro (кажись), а там это необходимая и удобная вещь, но они там не такие как в BDE, более гибкие.


Германн   (2006-08-17 00:35:00) [7]


> ronyn   (16.08.06 23:08) [4]
>
> Тогда не понятно, в чем же смысл "чудо изобретения - псевдонима"
>

Станет понятно в последущем.


ronyn   (2006-08-16 23:08:00) [8]

Тогда не понятно, в чем же смысл "чудо изобретения - псевдонима", если использовать его можно практически, только локально. Тогда и в самом деле проще статик пач прописать и все. Значит буду делать так-)


Elen   (2006-08-15 12:01:00) [9]


> как быть с псевдонимами,

Не используй псевдонимы. У меня были кучи проблем с переносимостью настроек BDE. В результате я в TTable прописываю полный путь к базам, который основан на пути где программа и проблемы исчезли


Alarm   (2006-08-15 11:52:00) [10]

> ronyn   (15.08.06 11:03)  
Желательно, чтобы программа проверяла наличие этого псевдонима (Alias), и в случае отсутствия, создавать его программно


fast2   (2006-08-15 11:48:00) [11]

что за БД?


Наверх

Титульная страница Поиск, карта сайта Написать письмо