![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]что за БД?