Avatar billede jekk Nybegynder
13. december 2001 - 11:26 Der er 5 kommentarer og
1 løsning

BDE alias PATH - få fat i ?

Hvordan kan jeg få fat i PATH til mit alias i BDEADMIN ?

gerne et kodeeksempel...

jeg skal bruge stien til at finde ud af, om brugeren kører mit program på lokale data (C:\\...) eller på fælles data (serveren).

dette skift kan han selv udføre og det vil ske, når han tester program-opdateringer - så vil jeg skifte baggrundsfarve på formen, så at han altid ved om han tester eller kører rutine....
Avatar billede pellelil Nybegynder
13. december 2001 - 11:29 #1
John jeg fik ikke lige svaret på DAPUG, men jeg har et BDE-Alias component der giver dig adgang til din Alias-håndtering (bruger den selp til at oprette/fjerne alias i forbindelse med program-start/stop
Avatar billede martinlind Nybegynder
13. december 2001 - 11:30 #2
Kig på din Session, den har NetDir, og PrivateDir osv.

/Martin
Avatar billede martinlind Nybegynder
13. december 2001 - 11:30 #3
Det ligger også på Session ( alias osv )
Avatar billede pellelil Nybegynder
13. december 2001 - 11:32 #4
Jeg glemte lige at skrive at grunden til at du ikke fik svar via DAPUG, er ikke dine 30 point, men jeg ville gerne lige have testet den, til dit formål:

<SNIP>
  TPlBDEAlias = class(TComponent)
  Private
    fConfigMode: TConfigMode;
    fOrgConfigMode: TConfigMode;
  Protected
    Procedure  InitBDE;
    Procedure  RestoreConfigMode;
    Procedure  SetConfigMode;
  Public
    Constructor Create(owner: TComponent);  Override;
    Destructor  Destroy;  Override;
    Procedure  Add(Const Alias, Driver: String; Params: TStrings);
    Procedure  Delete(Const Alias: String);
    Function    Exists(Const Alias: String): Boolean;
    Procedure  Modify(Const Alias: String; Params: TStrings);
    Procedure  GetAliasList(Params: TStrings);
    Function    GetDriver(Const Alias: String): String;
    Procedure  GetDriverParams(Const Driver: String; Params: TStrings);
    Procedure  GetDriverList(Params: TStrings);
    Procedure  GetParams(Const Alias: String; Params: TStrings);
    Function    GetPath(Const Alias: String): String;
    Function    GetType(Const Alias: String): String;
  Published
    Property    ConfigMode: TConfigMode Read fConfigMode Write fConfigMode Default [cfmPersistent];
  end;


//=============================================================================
implementation
//=============================================================================

Constructor TPlBDEAlias.Create(owner: TComponent);
begin
  inherited Create(owner);
  fConfigMode := [cfmPersistent];
end;


Destructor  TPlBDEAlias.Destroy;
begin
  inherited Destroy;
end;


Procedure  TPlBDEAlias.InitBDE;
begin
  if not(Session.Active)
    then Session.Active := True;
end;


Procedure  TPlBDEAlias.RestoreConfigMode;
begin
  Session.ConfigMode := fOrgConfigMode;
end;


Procedure  TPlBDEAlias.SetConfigMode;
begin
  fOrgConfigMode := Session.ConfigMode;
  Session.ConfigMode := fConfigMode;
end;


Procedure  TPlBDEAlias.Add(Const Alias, Driver: String; Params: TStrings);
begin
  InitBDE;
  SetConfigMode;
  try
    Session.AddAlias(Alias, Driver, Params);
    Session.SaveConfigFile;
  finally
    RestoreConfigMode;
  end;
end;


Procedure  TPlBDEAlias.Delete(Const Alias: String);
begin
  InitBDE;
  SetConfigMode;
  try
    Session.DeleteAlias(Alias);
    Session.SaveConfigFile;
  finally
    RestoreConfigMode;
  end;
end;


Function    TPlBDEAlias.Exists(Const Alias: String): Boolean;
begin
  result := False;
  InitBDE;
  SetConfigMode;
  try
    result := Session.IsAlias(Alias);
  finally
    RestoreConfigMode;
  end;
end;


Procedure  TPlBDEAlias.Modify(Const Alias: String; Params: TStrings);
begin
  InitBDE;
  SetConfigMode;
  try
    Session.ModifyAlias(Alias, Params);
    Session.SaveConfigFile;
  finally
    RestoreConfigMode;
  end;
end;


Procedure  TPlBDEAlias.GetAliasList(Params: TStrings);
begin
  InitBDE;
  SetConfigMode;
  try
    Session.GetAliasNames(Params);
  finally
    RestoreConfigMode;
  end;
end;


Function    TPlBDEAlias.GetDriver(Const Alias: String): String;
begin
  InitBDE;
  SetConfigMode;
  try
    result := Session.GetAliasDriverName(Alias);
  finally
    RestoreConfigMode;
  end;
end;


Procedure  TPlBDEAlias.GetDriverParams(Const Driver: String; Params: TStrings);
begin
  InitBDE;
  Session.GetDriverParams(Driver, Params);
end;


Procedure  TPlBDEAlias.GetDriverList(Params: TStrings);
begin
  InitBDE;
  Session.GetDriverNames(Params);
end;


Procedure  TPlBDEAlias.GetParams(Const Alias: String; Params: TStrings);
begin
  InitBDE;
  SetConfigMode;
  try
    Session.GetAliasParams(Alias, Params);
  finally
    RestoreConfigMode;
  end;
end;


Function    TPlBDEAlias.GetPath(Const Alias: String): String;
var
  Params: TStringList;
begin
  Params := TStringList.Create;
  try
    GetParams(Alias, Params);
    result := Params.Values[\'PATH\'];
  finally
    Params.Free;
  end;
end;


Function    TPlBDEAlias.GetType(Const Alias: String): String;
var
  Params: TStringList;
begin
  Params := TStringList.Create;
  try
    GetParams(Alias, Params);
    result := Params.Values[\'TYPE\'];
  finally
    Params.Free;
  end;
end;
</SNIP>
Avatar billede jekk Nybegynder
13. december 2001 - 22:51 #5
pellelil >>
tak for en udførlig kode - jeg troede ikke der skulle så meget til ! ?
jeg er spændt på at få prøvet det ...
Avatar billede pellelil Nybegynder
14. december 2001 - 08:42 #6
jekk> Som du kan se ud af MartinLind\'s svar så er det formegentlih \"nok\" at du kigger på din Session, men dette komponent \"pakker det lidt ind\" og giver nemmere adgang til nogle andre facilieteter.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester