Форум: "Начинающим";
Текущий архив: 2006.09.10;
Скачать: [xml.tar.bz2];
ВнизAlias Найти похожие ветки
← →
ronyn (2006-08-15 11:03) [0]Создав программу, использующую БД, я копирую её на комп пользователя вместе с этими БД - как быть с псевдонимами, не придется ли в этом случае копировать(изменять) файл IDAPI32.cfg?
Заранее благодарен.
← →
fast2 (2006-08-15 11:48) [1]что за БД?
← →
Alarm © (2006-08-15 11:52) [2]> ronyn (15.08.06 11:03)
Желательно, чтобы программа проверяла наличие этого псевдонима (Alias), и в случае отсутствия, создавать его программно
← →
Elen © (2006-08-15 12:01) [3]
> как быть с псевдонимами,
Не используй псевдонимы. У меня были кучи проблем с переносимостью настроек BDE. В результате я в TTable прописываю полный путь к базам, который основан на пути где программа и проблемы исчезли
← →
ronyn (2006-08-16 23:08) [4]Тогда не понятно, в чем же смысл "чудо изобретения - псевдонима", если использовать его можно практически, только локально. Тогда и в самом деле проще статик пач прописать и все. Значит буду делать так-)
← →
Германн © (2006-08-17 00:35) [5]
> ronyn (16.08.06 23:08) [4]
>
> Тогда не понятно, в чем же смысл "чудо изобретения - псевдонима"
>
Станет понятно в последущем.
← →
Elen © (2006-08-17 07:48) [6]
> статик пач
Не статик, а получаемый при запуске из Application.ExeName. Иначе прога будет непереносима. Алиасы были впервые использованны в FoxPro (кажись), а там это необходимая и удобная вещь, но они там не такие как в BDE, более гибкие.
← →
AbrosimovA © (2006-08-17 10:44) [7]
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;
← →
Плохиш © (2006-08-17 11:01) [8]
> ronyn (16.08.06 23:08) [4]
> Тогда не понятно, в чем же смысл "чудо изобретения - псевдонима"
Псевдонимы преднозначены для того, чтобы отвязать программу от физического расположения файлов БД. Если кто-то решает использовать их через пятую точку опоры, то псевдонимы-то тут в чём виноваты?
← →
Desdechado © (2006-08-17 11:35) [9]автор, ты каждый день будешь заново эту тему создавать?
http://delphimaster.net/view/2-1155627240/
← →
MsGuns © (2006-08-17 11:43) [10]>Elen © (15.08.06 12:01) [3]
>В результате я в TTable прописываю полный путь к базам, который основан на пути где программа и проблемы исчезли
Так делать не совсем правильно. При работе с БДЕ лучше все же использовать централизацию обмена с БД через TDataBase
>AbrosimovA © (17.08.06 10:44) [7]
Длинно, громоздко, запутанно. А главное, ничего не решает и в общем-то на фиг не нужно.
РЕБЯТА, РАБОТАЮЩИЕ С БДЕ !!! Рекомендуется к внимательному прочтению хелп по TSession. Там, в частности, есть и про алиасы. А, главное, много чего написано для понимания принципов работы движка.
← →
ronyn (2006-08-18 01:05) [11]DatabaseName:=extractfilepath(Application.ExeName)+"Bases\dbMain.db"
Так правильно указать статик патч?
>Elen[6] в данном случае это без разницы написать C:\Program Files\xyz\... или ExtractFilePath(Application... - не имеет значения, ведь реч совсем о другом
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.09.10;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.047 c