Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.10;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.038 c
4-1147274009
suharew
2006-05-10 19:13
2006.09.10
чтение из COM порта


3-1151687027
Bad tester
2006-06-30 21:03
2006.09.10
Подскажите как лучше работать с базой данных MySQL из Делфи?


4-1147544916
parovoZZ
2006-05-13 22:28
2006.09.10
Аналог TWebBrowser-а на апях


2-1155992408
DillerXX
2006-08-19 17:00
2006.09.10
Можно ли в TStatusPanel сделать Progress Bar...


2-1156281523
ArtemESC
2006-08-23 01:18
2006.09.10
Содержимое консоли консольного приложения...