Форум: "Базы";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];
Внизработа с Alias Найти похожие ветки
← →
zep (2003-07-02 23:24) [0]привыт ALL подскажите как сделать чтобы при запуске программа проверяла Alias базы и если такого нет, создавала его. желательно с примером.
← →
zep (2003-07-02 23:37) [1]??????????????????????
← →
Zacho (2003-07-03 09:03) [2]Смотри св-ва и методы TSession.
← →
гончий (2003-07-03 09:21) [3]function AliasExists(DbName: PChar): boolean;
var
E: DbiResult;
DbRec: DbDesc;
IsInit: boolean;
begin
IsInit := True;
Result := False;
while True do
begin
E := DbiGetDataBaseDesc(DbName, @DbRec);
IsInit := ( E <> DBIERR_NOCONFIGFILE );
if( not IsInit )then
begin
DbiInit(nil);
Continue;
end;{ IF }
Result := ( E = DBIERR_NONE );
Break;
end;{ WHILE }
if( not IsInit)then DbiExit;
end;
function CheckAlias(DbName, DbPath, DbType: PChar): boolean;
var PATH: string;
begin
Result := AliasExists( DbName );
if not Result then
begin
PATH := "PATH:" + DbPath;
Result := DbiAddAlias(nil, DbName, DbType, PChar(PATH), True) = DBIERR_NONE;
if Result then
SESSION.SaveConfigFile;
//Result := DbiCfgSave(nil, nil, False) = DBIERR_NONE;
end;
end;
← →
Edward (2003-07-03 09:34) [4]
var Session: TSession;
AliasParams: TStrings;
Index: Integer;
begin
Session := TSession.Create(nil);
Session.AutoSessionName := True;
try
if Session.IsAlias("MyAlias") then
ShowMessage("Алиас существует!")
else begin
AliasParams := TStringList.Create;
try
with AliasParams do
begin
Add("SERVER NAME=IB_SERVER:/PATH/DATABASE.GDB");
Add("USER NAME=MYNAME");
end;
Session.AddAlias("MyAlias","INTRBASE", AliasParams);
finally
AliasParams.Free;
end;
end;
finally
Session.Free;
end;
end;
← →
AbrosimovA (2003-07-03 13:57) [5]Program Base;
uses Forms,Windows,Registry,SysUtils,Classes,DBTables,
Module in "Module.pas" {DataModule1: TDataModule},
Main in "Main.pas" {MainForm};
{$R *.RES}
var L : TStringList;
Index: integer;
Flag: boolean;
begin
with TRegistry.create do begin
Rootkey := HKEY_LOCAL_MACHINE;
if Not (OpenKey("SOFTWARE\BORLAND\DATABASE ENGINE", false)) then
begin
MessageBox(0,PChar("Не установлена BDE."),
PChar("Ошибка"), mb_OK);
Application.Terminate;
end
else begin
CFGFile := ReadString("CONFIGFILE01");
Free;
try
Application.CreateForm(TDataModule1, DataModule1);
except
MessageBox(0,PChar("Ошибка настройки базы данных MyBase
(Paradox) !!!"),PChar("Ошибка"), mb_OK);
Application.Terminate;
end;
DataModule1.Session1.ConfigMode := cmPersistent;
L := TStringList.Create;
try
DataModule1.Session1.GetAliasNames(L);
for Index := 0 to L.Count - 1 do
if L.Strings[Index]="MyBase" then Flag:=true;
if NOT(Flag) then begin
L.Add("PATH="+ExtractFilePath(Application.Exename)+"Data");
DataModule1.Session1.AddAlias("MyBase", "STANDARD", L);
DataModule1.Session1.SaveConfigFile;
end;
DataModule1.Cust.Active:=true;
finally
L.Free;
end;
Application.CreateForm(TMainForm, MainForm);
Application.Run;
end;
end;
end.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c