BDE - localshare e net dir

Top  Previous  Next

É possível sim, alguns anos atrás precisei fazer isto, para completar vai o código que alterar o local share e o netdir.

 

{***********************************************************************}

{ Program...: Unit1.Pas                                                 }

{ Author....: Antonio Carlos Nunes Junior -  Toninho Nunes              }

{ Address...: contato@toninhonunes.cjb.net - Campo Grande/MS -

       }

{ Purpose.: Configurar opções do BDE                                  }

{ Created...: 03/12/1997                                                }

{ Updated...: 20/08/1998                                                }

{ Version...: Delphi All Versions                                       }

{                                                                       }

{***********************************************************************}

unit U_LocalSh;

 

interface

 

uses

  { Directivas de compilação para checar }

  { ambiente operacional }

 

  { $ifdef win32 } { delphi 32 bits }

    Bde,

  { $else } { else é delphi 16 bits }

    DbiProcs, DbiTypes, DbiErrs,

  { $Endif }

 

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

  StdCtrls, Buttons, Db, DBTables;

 

type

  TForm1 = class(TForm)

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    procedure BitBtn1Click(Sender: TObject);

    procedure BitBtn2Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

 

implementation

 

{$R *.DFM}

 

procedure LocalShareTrue;

var

  hCursor : HDBICur;

  ConfigDesc: CFGDesc;

begin

 

  { Abrir o arquivo de configuração

  <Idapi.Cfg> ou <outro nome.cfg>, que contém o LOCAL

  SHARE }

 

  Check(dbiInit(Nil)); { inicializar a bde }

 

  { o path 'SYSTEM\INIT', não quer dizer que contem um diretorio ou

  { pasta no seu disco rídigo e sim dentro do arquivo de configuração

  { bde, para se alterar suas propriedades deve-se usar loops com

  { recursidades, para alterar cada opção do arquivo de configuração,

  { bom aqui só estou acessando um nó, para cada nó existe vários path

  { dentro do Bde, mas por enquanto fico por aqui, daria para fazer

  { um utilitário só para configurar o bde, ok }

 

  Check( DbiOpenCfgInfoList(nil, dbiREADWRITE,

  cfgPERSISTENT,'\SYSTEM\INIT', hCursor ));

 

  try

    { Para cada registro em nosso novo cursor }

    while DbiGetNextRecord(hCursor, dbiNOLOCK, @ConfigDesc, nil) = 0 do

      With ConfigDesc do

        If StrComp( szNodeName, 'LOCAL SHARE') = 0 then

        begin

          { Troca o valor do Local Share para True }

          StrPLCopy(szValue, 'TRUE', sizeOf(szValue));

          AnsiToOem(SzValue, szValue);

          Check(DbiModifyRecord(hCursor, @ConfigDesc, True));

          Break;

        end;

  finally

    DbiCloseCursor(hCursor); { Fechar o cursor }

  end;

end;

 

{*****************************************}

{ Example Added in 19/08/1998             }

{ By Toninho Nunes, made in Brazil        }

{ Here I will to change option of NET DIR }

{ Questions, please to send by email:     }

{ contato@toninhonununes.cjb.net                  }

{*****************************************}

 

procedure NetFileDir;

var

  hCursor : HDBICur;

  ConfigDesc: CFGDesc;

  szPath : array[0..63of Char;

begin

 

  { Abrir o arquivo de configuração

  <Idapi.Cfg> ou <outro nome.cfg> }

 

  Check(dbiInit(Nil)); { inicializar a bde }

 

  StrLFmt( szPath, SizeOf(szPath) - 1'%s\%s', ['\DRIVERS\PARADOX',

'INIT'] );

  Check( DbiOpenCfgInfoList(nil, dbiREADWRITE,

  cfgPERSISTENT, szPath, hCursor) );

 

  try

    { Para cada registro em nosso novo cursor }

    while DbiGetNextRecord(hCursor, dbiNOLOCK, @ConfigDesc, nil) = 0 do

      With ConfigDesc do begin

        If StrComp( szNodeName, 'NET DIR') = 0 then

        begin

          { Troca o valor do NET DIR }

          StrPLCopy(szValue, 'C:\TEMP', sizeOf(szValue)); { o diretório do

net dir }

          AnsiToOem(SzValue, szValue);

          Check(DbiModifyRecord(hCursor, @ConfigDesc, True));

          Break;

        end;

      end;

  finally

    DbiCloseCursor(hCursor); { Fechar o cursor }

  end;

end;

 

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

  LocalShareTrue; { Chamar a procedure }

end;

 

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

  { Mudar o Net File dir do Bde }

  NetFileDir;

end;

 

end.

 

Cordialmente,

 

Toninho Nunes

Campo Grande/MS - Brazil

http://www.terravista.pt/fernoronha/2732