|
#1
|
||||
|
||||
BDE Administrator
Подскажите пожалуйста как программным путем сделать так чтобы псевдоним(алиас) сам создавался в программе BDE Administrator при включении моей программы. в моем случае псевдоним называется "s"
|
#3
|
||||
|
||||
упс
А по проще какнибудь можно?
представленный код слишком сложен для восприятия и все пояснения на английском языке |
#4
|
||||
|
||||
Можно, переходите на ADO там алиасы делать не обязательно.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#5
|
||||
|
||||
Да и в BDE не обязательно, можно просто путь к таблицам указывать и все.
|
#6
|
||||
|
||||
Цитата:
но можно так то, но у меня плачевный случай, я квери очень много уже поставил и обращаюсь к ним через алиаз, и чтоб перенести все на путь скорее всего суток 2е уйдет.. |
#7
|
||||
|
||||
Код:
var AParams: TStringList; MyAlias,Path: string; begin MyAlias := '!ALIAS!'; Path:='d:\'; if not Session.IsAlias(MyAlias) then begin try Session.AddStandardAlias(MyAlias,PATH,'PARADOX'); Session.SaveConfigFile; except showmessage('ЫЫЫЫЫ! Не пашет!'); Exit; end; end; AParams := TStringList.Create; AParams.Add('PATH=' + PATH); Session.ModifyAlias(MyAlias,AParams); Session.SaveConfigFile; AParams.Free; |
#8
|
|||
|
|||
Может быть пригодится :
Код:
function CreateStandardAlias(NrAlwaysCreate: Boolean; NameAlias, Path, DefDrv : String) : Boolean; //Создать Alias (Standard) Var Sess : TSession; SList : TStrings; Sx : string; i : integer; Yes : byte; begin Result:=FALSE; Yes:=0; NameAlias:=Trim(NameAlias); Path:=Trim(Path); DefDrv:=Trim(DefDrv); if Length(DefDrv)<=0 then DefDrv:='PARADOX'; if (Length(NameAlias)>0) and (Length(Path)>0) then begin Sess := TSession.Create(Nil); try Sess.SessionName:='~~!!SA!!~~'; SList := TStringList.Create; try Sess.GetAliasNames(SList); i:=-1; while i<(SList.Count-1) do begin i:=i+1; Sx:=SList[i]; Sx:=Trim(Sx); if Length(Sx)>0 then begin if AnsiUpperCase(Sx)=AnsiUpperCase(NameAlias) then begin Yes:=1; if NrAlwaysCreate then begin Yes:=0; Sess.DeleteAlias(NameAlias); end; i:=SList.Count+1; end; end; end; finally SList.Free; end; if Yes<=0 then begin Sess.ConfigMode := cmAll; Sess.AddStandardAlias(NameAlias, Path,DefDrv); Sess.SaveConfigFile; Result:=TRUE; end; finally Sess.Free; end; end; end; function CreateIBAlias(NrAlwaysCreate: Boolean; NameAlias, Path, NameUser, LangDrv : String) : Boolean; //Создать Alias (Interbase) Var Sess : TSession; SList : TStrings; Sx : string; i : integer; Yes : byte; begin Result:=FALSE; Yes:=0; NameAlias:=Trim(NameAlias); Path:=Trim(Path); NameUser:=Trim(NameUser); LangDrv:=Trim(LangDrv); if Length(LangDrv)<=0 then LangDrv:='ancyrr' {'Pdox ANSI Cyrillic'}; if Length(NameUser)<=0 then NameUser:='SYSDBA'; if (Length(NameAlias)>0) and (Length(Path)>0) then begin Sess := TSession.Create(Nil); try Sess.SessionName:='~~!!SA!!~~'; SList := TStringList.Create; try Sess.GetAliasNames(SList); i:=-1; while i<(SList.Count-1) do begin i:=i+1; Sx:=SList[i]; Sx:=Trim(Sx); if Length(Sx)>0 then begin if AnsiUpperCase(Sx)=AnsiUpperCase(NameAlias) then begin Yes:=1; if NrAlwaysCreate then begin Yes:=0; Sess.DeleteAlias(NameAlias); end; i:=SList.Count+1; end; end; end; finally SList.Free; end; if Yes<=0 then begin SList := TStringList.Create; try SList.Add('SERVER NAME='+Path); SList.Add('USER NAME='+NameUser); SList.Add('LANGDRIVER='+LangDrv); Sess.ConfigMode := cmAll; Sess.AddAlias(NameAlias, 'INTRBASE', SList); Sess.SaveConfigFile; Result:=TRUE; finally SList.Free; end; end; finally Sess.Free; end; end; end; function Alias_Update(AliasName : string; ListParam : TStrings) : Boolean; //Изменить настройку Alias Var Sess : TSession; begin Result:=FALSE; AliasName:=Trim(AliasName); if Length(AliasName)>0 then begin if ListParam<>NIL then begin if ListParam.Count>0 then begin Sess := TSession.Create(Nil); try Sess.SessionName:='~~!!SA!!~~'; if Sess.IsAlias(AliasName) then begin Sess.ConfigMode := cmAll; Sess.ModifyAlias(AliasName,ListParam); Sess.SaveConfigFile; Result:=TRUE; end; finally Sess.Free; end; end; end; end; end; function Alias_Delete(AliasName : string) : Boolean; //Удалить Alias Var Sess : TSession; begin Result:=FALSE; AliasName:=Trim(AliasName); if Length(AliasName)>0 then begin AliasName:=AnsiUpperCase(AliasName); Sess := TSession.Create(Nil); try Sess.SessionName:='~~!!SA!!~~'; if Sess.IsAlias(AliasName) then begin Sess.ConfigMode := cmAll; Sess.DeleteAlias(AliasName); Sess.SaveConfigFile; Result:=TRUE; end; finally Sess.Free; end; end; end; function Get_ListAlias(List : TStrings) : integer; //Список Alias Var Sess : TSession; begin Result:=0; if List<>NIL then begin List.Clear; Sess := TSession.Create(Nil); try Sess.SessionName:='~~77!!SA!!77~~'; Sess.GetAliasNames(List); Result:=List.Count; finally Sess.Free; end; end; end; function Alias_Exist(AliasName : string) : boolean; //Проверка существования Var List : TStrings; i : integer; begin Result:=false; AliasName:=AnsiUpperCase(Trim(AliasName)); if length(AliasName)>0 then begin List := TStringList.Create; TRY Get_ListAlias(List); i:=-1; while i<(List.Count-1) do begin i:=i+1; if AliasName = AnsiUpperCase(Trim(List[i])) then begin Result:=true; i:=List.Count+1; end; end; FINALLY List_Clear(List); END; end; end; function GetInfoAboutAlias(NameAlias : String; List : TStrings) : Boolean; //Прочитать инфу о заданном Alias Var Sess : TSession; begin Result:=FALSE; if List<>NIL then begin List.Clear; NameAlias:=Trim(NameAlias); if Length(NameAlias)>0 then begin NameAlias:=AnsiUpperCase(NameAlias); Sess := TSession.Create(Nil); try Sess.SessionName:='~~99!!SA!!99~~'; Sess.GetAliasParams(NameAlias,List); Result:=TRUE; finally Sess.Free; end; end; end; end; |
#9
|
||||
|
||||
Шикарно, если код полностью рабочий, то просто великолепно...
+1 В начале был Бит, потом Байт и только потом появилось Слово... |