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..63] of 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
|