Alterando o NetDir via programação

Muitas vezes precisamos alterar o NetDir do BDE para que nossas aplicações funcionem corretamente. E com poucas linhas de código você poderá deixar para que sua própria aplicação faça isso.
Abaixo está uma rotina para alterar o NetDir de acordo com o drive informado como parâmetro:

uses BDE; // não esqueça de incluir esta unit
 
// ChangeNetDir
procedure ChangeNetDir(Drive: Char);
var
  hCur: hDBICur;
  Config: CFGDesc;
  Cont: Boolean;
begin
  if DbiInit(nil) = DBIERR_NONE then
  begin
  hCur := nil;
  if DbiOpenCfgInfoList(nil, dbiREADWRITE, cfgPersistent,
  '\DRIVERS\PARADOX\INIT', hCur) = DBIERR_NONE then
  begin
  if DbiSetToBegin(hCur) = DBIERR_NONE then
  begin
  Cont := True;
  while Cont do
  begin
  if (DbiGetNextRecord(hCur, dbiWRITELOCK, @Config, nil)
  <> DBIERR_NONE) then
  Cont := False
  else if StrIComp(Config.szNodeName, 'NET DIR') = 0 then
  begin
  StrPCopy(Config.szValue, Drive + ':\');
  DbiModifyRecord(hCur, @Config, True);
  Cont := False
  end;
  end;
  end;
  end;
  DbiExit();
  end;
end;
O uso deste procedimento pode ser assim:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ChangeNetDir('H');
end;

Nenhum comentário:

Postar um comentário