FillFactory do BDE
Como altero o FillFactory do BDE, as funções aqui do fórum que mudam o Net Dir e outras propriedades não funcoinam com o FillFactory
Obrigado
Obrigado
Nigro
Curtidas 0
Respostas
Emerson Nascimento
08/03/2005
você pode adicionar essas constantes:
crie uma rotina como essa:
e chame-a da seguinte forma:
note que no código acima estão sendo utilizadas duas das constantes criadas. também poderia ser passado o valor literal:
onde 95 e c:\temp são os novos valores dos respectivos parâmetros. a opção a ser alterada deve ser precedida por [b:3922c4ffe9];[/b:3922c4ffe9] devido a separação entre caminho e opção, no código da função ConfigBDE.
obs.: declare a unit BDE na cláusula uses.
const
{ Configurações do driver Paradox... }
PARADOXNETDIR = ´\DRIVERS\PARADOX\INIT\;NET DIR´;
PARADOXVERSION = ´\DRIVERS\PARADOX\INIT\;VERSION´;
PARADOXTYPE = ´\DRIVERS\PARADOX\INIT\;TYPE´;
PARADOXLANGDRIVER = ´\DRIVERS\PARADOX\INIT\;LANGDRIVER´;
PARADOXLEVEL = ´\DRIVERS\PARADOX\TABLE CREATE\;LEVEL´;
PARADOXBLOCKSIZE = ´\DRIVERS\PARADOX\TABLE CREATE\;BLOCK SIZE´;
PARADOXFILLFACTOR = ´\DRIVERS\PARADOX\TABLE CREATE\;FILL FACTOR´;
PARADOXSTRICTINTEGRITY = ´\DRIVERS\PARADOX\TABLE CREATE\;STRICTINTEGRITY´;
{ configurações do driver do dBASE... }
DBASEVERSION = ´\DRIVERS\DBASE\INIT\;VERSION´;
DBASETYPE = ´\DRIVERS\DBASE\INIT\;TYPE´;
DBASELANGDRIVER = ´\DRIVERS\DBASE\INIT\;LANGDRIVER´;
DBASELEVEL = ´\DRIVERS\DBASE\TABLE CREATE\;LEVEL´;
DBASEMDXBLOCKSIZE = ´\DRIVERS\DBASE\TABLE CREATE\;MDX BLOCK SIZE´;
DBASEMEMOFILEBLOCKSIZE = ´\DRIVERS\DBASE\TABLE CREATE\;MEMO FILE BLOCK SIZE´;
{ Configurações do driver do InterBase... }
INTERBASESERVERNAME = ´\DRIVERS\INTRBASE\DB OPEN\;SERVER NAME´;
INTERBASEUSERNAME = ´\DRIVERS\INTRBASE\DB OPEN\;USER NAME´;
INTERBASEOPENMODE = ´\DRIVERS\INTRBASE\DB OPEN\;OPEN MODE´;
INTERBASESCHEMACACHESIZE = ´\DRIVERS\INTRBASE\DB OPEN\;SCHEMA CACHE SIZE´;
INTERBASELANGDRIVER = ´\DRIVERS\INTRBASE\DB OPEN\;LANGDRIVER´;
INTERBASESQLQRYMODE = ´\DRIVERS\INTRBASE\DB OPEN\;SQLQRYMODE´;
INTERBASESQLPASSTHRUMODE = ´\DRIVERS\INTRBASE\DB OPEN\;SQLPASSTHRU MODE´;
INTERBASESCHEMACACHETIME = ´\DRIVERS\INTRBASE\DB OPEN\;SCHEMS CACHE TIME´;
INTERBASEMAXROWS = ´\DRIVERS\INTRBASE\DB OPEN\;MAX ROWS´;
INTERBASEBATCHCOUNT = ´\DRIVERS\INTRBASE\DB OPEN\;BATCH COUNT´;
INTERBASEENABLESCHEMACACHE = ´\DRIVERS\INTRBASE\DB OPEN\;ENABLE SCHEMA CACHE´;
INTERBASEENABLEBCD = ´\DRIVERS\INTRBASE\DB OPEN\;ENABLE BCD´;
INTERBASEBLOBSTOCACHE = ´\DRIVERS\INTRBASE\DB OPEN\;BLOBS TO CACHE´;
INTERBASEBLOBSIZE = ´\DRIVERS\INTRBASE\DB OPEN\;BLOB SIZE´;
INTERBASEVERSION = ´\DRIVERS\INTRBASE\INIT\;VERSION´;
INTERBASETYPE = ´\DRIVERS\INTRBASE\INIT\;TYPE´;
INTERBASEDLL = ´\DRIVERS\INTRBASE\INIT\;DLL´;
INTERBASEDRIVERFLAGS = ´\DRIVERS\INTRBASE\INIT\;DRIVER FLAGS´;
INTERBASEDLL32 = ´\DRIVERS\INTRBASE\INIT\;DLL32´;
INTERBASETRACEMODE = ´\DRIVERS\INTRBASE\INIT\;TRACE MODE´;
{ Configurações do driver do Oracle... }
ORACLEBATCHCOUNT = ´\DRIVERS\ORACLE\DB OPEN\;BATCH COUNT´;
ORACLEENABLEBCD = ´\DRIVERS\ORACLE\DB OPEN\;ENABLE BCD´;
ORACLEENABLEINTEGERS = ´\DRIVERS\ORACLE\DB OPEN\;ENABLE INTEGERS´;
ORACLEENABLESCHEMACACHE = ´\DRIVERS\ORACLE\DB OPEN\;ENABLE SCHEMA CACHE´;
ORACLELANGDRIVER = ´\DRIVERS\ORACLE\DB OPEN\;LANGDRIVER´;
ORACLELISTSYNONYMS = ´\DRIVERS\ORACLE\DB OPEN\;LIST SYNONYMS´;
ORACLEMAXROWS = ´\DRIVERS\ORACLE\DB OPEN\;MAX ROWS´;
ORACLENETPROTOCOL = ´\DRIVERS\ORACLE\DB OPEN\;NET PROTOCOL´;
ORACLEOPENMODE = ´\DRIVERS\ORACLE\DB OPEN\;OPENMODE´;
ORACLEROWSETSIZE = ´\DRIVERS\ORACLE\DB OPEN\;ROWSET SIZE´;
ORACLESCHEMACACHEDIR = ´\DRIVERS\ORACLE\DB OPEN\;SCHEMA CACHE DIR´;
ORACLESCHEMACACHESIZE = ´\DRIVERS\ORACLE\DB OPEN\;SCHEMA CACHE SIZE´;
ORACLESCHEMACACHETIME = ´\DRIVERS\ORACLE\DB OPEN\;SCHEMA CACHE TIME´;
ORACLESERVERNAME = ´\DRIVERS\ORACLE\DB OPEN\;SERVER NAME´;
ORACLESQLPASSTHRUMODE = ´\DRIVERS\ORACLE\DB OPEN\;SQLPASSTHRU MODE´;
ORACLESQLQUERYMODE = ´\DRIVERS\ORACLE\DB OPEN\;SQLQRYMODE´;
ORACLEUSERNAME = ´\DRIVERS\ORACLE\DB OPEN\;USER NAME´;
ORACLEDLL = ´\DRIVERS\ORACLE\INIT\;DLL´;
ORACLEDLL32 = ´\DRIVERS\ORACLE\INIT\;DLL32´;
ORACLEDRIVERFLAGS = ´\DRIVERS\ORACLE\INIT\;DRIVER FLAGS´;
ORACLETRACEMODE = ´\DRIVERS\ORACLE\INIT\;TRACE MODE´;
ORACLETYPE = ´\DRIVERS\ORACLE\INIT\;TYPE´;
ORACLEVENDORINIT = ´\DRIVERS\ORACLE\INIT\;VENDOR INIT´;
ORACLEVERSION = ´\DRIVERS\ORACLE\INIT\;VERSION´;
{ Configurações do driver do MSACCESS... }
MSACCEESSLANGDRIVER = ´\DRIVERS\MSACCESS\DB OPEN\;LANGDRIVER´;
MSACCESSDATABASENAME = ´\DRIVERS\MSACCESS\DB OPEN\;DATABASE NAME´;
MSACCESSUSERNAME = ´\DRIVERS\MSACCESS\DB OPEN\;USER NAME´;
MSACCESSOPENMODE = ´\DRIVERS\MSACCESS\DB OPEN\;OPEN MODE´;
MSACCESSSYSTEMDATABASE = ´\DRIVERS\MSACCESS\DB OPEN\;SYSTEMDATABASE´;
MSACCESSVERSION = ´\DRIVERS\MSACCESS\INIT\;VERSION´;
MSACCESSTYPE = ´\DRIVERS\MSACCESS\INIT\;TYPE´;
MSACCESSDLL32 = ´\DRIVERS\MSACCESS\INIT\;DLL32´;
MSACCESSDRIVERFLAGS = ´\DRIVERS\MSACCESS\INIT\;DRIVER FLAGS´;
MSACCESSTRACEMODE = ´\DRIVERS\MSACCESS\INIT\;TRACE MODE´;
{ Configurações de inicialização do sistema... }
AUTOODBC = ´\SYSTEM\INIT\;AUTO ODBC´;
DATAREPOSITORY = ´\SYSTEM\INIT\;DATA REPOSITORY´;
DEFAULTDRIVER = ´\SYSTEM\INIT\;DEFAULT DRIVER´;
LANGDRIVER = ´\SYSTEM\INIT\;LANGDRIVER´;
LOCALSHARE = ´\SYSTEM\INIT\;LOCAL SHARE´;
LOWMEMORYUSAGELIMIT = ´\SYSTEM\INIT\;LOW MEMORY USAGE LIMIT´;
MAXBUFSIZE = ´\SYSTEM\INIT\;MAXBUFSIZE´;
MAXFILEHANDLES = ´\SYSTEM\INIT\;MAXFILEHANDLES´;
MEMSIZE = ´\SYSTEM\INIT\;MEMSIZE´;
MINBUFSIZE = ´\SYSTEM\INIT\;MINBUFSIZE´;
SHAREDMEMLOCATION = ´\SYSTEM\INIT\;SHAREDMEMLOCATION´;
SHAREDMEMSIZE = ´\SYSTEM\INIT\;SHAREDMEMSIZE´;
SQLQRYMODE = ´\SYSTEM\INIT\;SQLQRYMODE´;
SYSFLAGS = ´\SYSTEM\INIT\;SYSFLAGS´;
VERSION = ´\SYSTEM\INIT\;VERSION´;crie uma rotina como essa:
function ConfigBDE(Chave: PChar; NovoValor: string): boolean; var hCur : hDBICur; Config : CFGDesc; ContinueIt: boolean; Caminho, Opcao: string; begin Result := False; Caminho := Copy(Chave, 0, Pos(´;´, Chave) - 1); Opcao := Copy(Chave, Pos(´;´, Chave) + 1, Length(Chave) - Pos(´;´, Chave)); hCur := nil; if (DbiInit(nil) = DBIERR_NONE) and (DbiOpenCfgInfoList(nil, dbiREADWRITE, cfgPersistent, PChar(Caminho), hCur) = DBIERR_NONE) and (DbiSetToBegin(hCur) = DBIERR_NONE) then begin ContinueIt := true; while ContinueIt do begin if(DbiGetNextRecord(hCur, dbiWRITELOCK, @Config, nil) <> DBIERR_NONE) then ContinueIt := false else if StrIComp(Config.szNodeName, PChar(Opcao)) = 0 then begin StrCopy(Config.szValue, PChar(NovoValor)); DbiModifyRecord(hCur, @Config, true); Result := True; ContinueIt := false end; end; DbiExit(); end; end;
e chame-a da seguinte forma:
if not ConfigBDE(PARADOXFILLFACTOR, ´95´) then ShowMessage(´Não foi possível alterar o parâmetro FILL FACTOR!´); if not ConfigBDE(PARADOXNETDIR, ´c:\temp´) then ShowMessage(´Não foi possível alterar o parâmetro NET DIR!´);
note que no código acima estão sendo utilizadas duas das constantes criadas. também poderia ser passado o valor literal:
if not ConfigBDE(´\DRIVERS\PARADOX\TABLE CREATE\;FILL FACTOR´, ´95´) then ShowMessage(´Não foi possível alterar o parâmetro FILL FACTOR!´); if not ConfigBDE(´\DRIVERS\PARADOX\INIT\;NET DIR´, ´c:\temp´) then ShowMessage(´Não foi possível alterar o parâmetro NET DIR!´);
onde 95 e c:\temp são os novos valores dos respectivos parâmetros. a opção a ser alterada deve ser precedida por [b:3922c4ffe9];[/b:3922c4ffe9] devido a separação entre caminho e opção, no código da função ConfigBDE.
obs.: declare a unit BDE na cláusula uses.
GOSTEI 0
Jonny Beckert
08/03/2005
Fiz um programa para configurar o BDE para facilitar as instalações nos computadores.
Altero todas os parâmetros necessários e funciona 100% certo (bom, não 100%) um único parâmetro não é atualizado.
é em " Configurações de inicialização do sistema " o parâmetro LANGDRIVER = ´\SYSTEM\INIT\;LANGDRIVER´;
já conferi com o RegEdit e a pasta e nomes estão realmente corretos.
pior que o parâmetro PARADOXLANGDRIVER = ´\DRIVERS\PARADOX\INIT\;LANGDRIVER´; altera normalmente sem problemas.
Se abrir o BDE e alterar manualmente, altera sem problemas.
Alguém passou por isso ou pode me explicar ?
Altero todas os parâmetros necessários e funciona 100% certo (bom, não 100%) um único parâmetro não é atualizado.
é em " Configurações de inicialização do sistema " o parâmetro LANGDRIVER = ´\SYSTEM\INIT\;LANGDRIVER´;
já conferi com o RegEdit e a pasta e nomes estão realmente corretos.
pior que o parâmetro PARADOXLANGDRIVER = ´\DRIVERS\PARADOX\INIT\;LANGDRIVER´; altera normalmente sem problemas.
Se abrir o BDE e alterar manualmente, altera sem problemas.
Alguém passou por isso ou pode me explicar ?
você pode adicionar essas constantes:
crie uma rotina como essa:
e chame-a da seguinte forma:
note que no código acima estão sendo utilizadas duas das constantes criadas. também poderia ser passado o valor literal:
onde 95 e c:\temp são os novos valores dos respectivos parâmetros. a opção a ser alterada deve ser precedida por [b:3922c4ffe9];[/b:3922c4ffe9] devido a separação entre caminho e opção, no código da função ConfigBDE.
obs.: declare a unit BDE na cláusula uses.
const
{ Configurações do driver Paradox... }
PARADOXNETDIR = ´\DRIVERS\PARADOX\INIT\;NET DIR´;
PARADOXVERSION = ´\DRIVERS\PARADOX\INIT\;VERSION´;
PARADOXTYPE = ´\DRIVERS\PARADOX\INIT\;TYPE´;
PARADOXLANGDRIVER = ´\DRIVERS\PARADOX\INIT\;LANGDRIVER´;
PARADOXLEVEL = ´\DRIVERS\PARADOX\TABLE CREATE\;LEVEL´;
PARADOXBLOCKSIZE = ´\DRIVERS\PARADOX\TABLE CREATE\;BLOCK SIZE´;
PARADOXFILLFACTOR = ´\DRIVERS\PARADOX\TABLE CREATE\;FILL FACTOR´;
PARADOXSTRICTINTEGRITY = ´\DRIVERS\PARADOX\TABLE CREATE\;STRICTINTEGRITY´;
{ configurações do driver do dBASE... }
DBASEVERSION = ´\DRIVERS\DBASE\INIT\;VERSION´;
DBASETYPE = ´\DRIVERS\DBASE\INIT\;TYPE´;
DBASELANGDRIVER = ´\DRIVERS\DBASE\INIT\;LANGDRIVER´;
DBASELEVEL = ´\DRIVERS\DBASE\TABLE CREATE\;LEVEL´;
DBASEMDXBLOCKSIZE = ´\DRIVERS\DBASE\TABLE CREATE\;MDX BLOCK SIZE´;
DBASEMEMOFILEBLOCKSIZE = ´\DRIVERS\DBASE\TABLE CREATE\;MEMO FILE BLOCK SIZE´;
{ Configurações do driver do InterBase... }
INTERBASESERVERNAME = ´\DRIVERS\INTRBASE\DB OPEN\;SERVER NAME´;
INTERBASEUSERNAME = ´\DRIVERS\INTRBASE\DB OPEN\;USER NAME´;
INTERBASEOPENMODE = ´\DRIVERS\INTRBASE\DB OPEN\;OPEN MODE´;
INTERBASESCHEMACACHESIZE = ´\DRIVERS\INTRBASE\DB OPEN\;SCHEMA CACHE SIZE´;
INTERBASELANGDRIVER = ´\DRIVERS\INTRBASE\DB OPEN\;LANGDRIVER´;
INTERBASESQLQRYMODE = ´\DRIVERS\INTRBASE\DB OPEN\;SQLQRYMODE´;
INTERBASESQLPASSTHRUMODE = ´\DRIVERS\INTRBASE\DB OPEN\;SQLPASSTHRU MODE´;
INTERBASESCHEMACACHETIME = ´\DRIVERS\INTRBASE\DB OPEN\;SCHEMS CACHE TIME´;
INTERBASEMAXROWS = ´\DRIVERS\INTRBASE\DB OPEN\;MAX ROWS´;
INTERBASEBATCHCOUNT = ´\DRIVERS\INTRBASE\DB OPEN\;BATCH COUNT´;
INTERBASEENABLESCHEMACACHE = ´\DRIVERS\INTRBASE\DB OPEN\;ENABLE SCHEMA CACHE´;
INTERBASEENABLEBCD = ´\DRIVERS\INTRBASE\DB OPEN\;ENABLE BCD´;
INTERBASEBLOBSTOCACHE = ´\DRIVERS\INTRBASE\DB OPEN\;BLOBS TO CACHE´;
INTERBASEBLOBSIZE = ´\DRIVERS\INTRBASE\DB OPEN\;BLOB SIZE´;
INTERBASEVERSION = ´\DRIVERS\INTRBASE\INIT\;VERSION´;
INTERBASETYPE = ´\DRIVERS\INTRBASE\INIT\;TYPE´;
INTERBASEDLL = ´\DRIVERS\INTRBASE\INIT\;DLL´;
INTERBASEDRIVERFLAGS = ´\DRIVERS\INTRBASE\INIT\;DRIVER FLAGS´;
INTERBASEDLL32 = ´\DRIVERS\INTRBASE\INIT\;DLL32´;
INTERBASETRACEMODE = ´\DRIVERS\INTRBASE\INIT\;TRACE MODE´;
{ Configurações do driver do Oracle... }
ORACLEBATCHCOUNT = ´\DRIVERS\ORACLE\DB OPEN\;BATCH COUNT´;
ORACLEENABLEBCD = ´\DRIVERS\ORACLE\DB OPEN\;ENABLE BCD´;
ORACLEENABLEINTEGERS = ´\DRIVERS\ORACLE\DB OPEN\;ENABLE INTEGERS´;
ORACLEENABLESCHEMACACHE = ´\DRIVERS\ORACLE\DB OPEN\;ENABLE SCHEMA CACHE´;
ORACLELANGDRIVER = ´\DRIVERS\ORACLE\DB OPEN\;LANGDRIVER´;
ORACLELISTSYNONYMS = ´\DRIVERS\ORACLE\DB OPEN\;LIST SYNONYMS´;
ORACLEMAXROWS = ´\DRIVERS\ORACLE\DB OPEN\;MAX ROWS´;
ORACLENETPROTOCOL = ´\DRIVERS\ORACLE\DB OPEN\;NET PROTOCOL´;
ORACLEOPENMODE = ´\DRIVERS\ORACLE\DB OPEN\;OPENMODE´;
ORACLEROWSETSIZE = ´\DRIVERS\ORACLE\DB OPEN\;ROWSET SIZE´;
ORACLESCHEMACACHEDIR = ´\DRIVERS\ORACLE\DB OPEN\;SCHEMA CACHE DIR´;
ORACLESCHEMACACHESIZE = ´\DRIVERS\ORACLE\DB OPEN\;SCHEMA CACHE SIZE´;
ORACLESCHEMACACHETIME = ´\DRIVERS\ORACLE\DB OPEN\;SCHEMA CACHE TIME´;
ORACLESERVERNAME = ´\DRIVERS\ORACLE\DB OPEN\;SERVER NAME´;
ORACLESQLPASSTHRUMODE = ´\DRIVERS\ORACLE\DB OPEN\;SQLPASSTHRU MODE´;
ORACLESQLQUERYMODE = ´\DRIVERS\ORACLE\DB OPEN\;SQLQRYMODE´;
ORACLEUSERNAME = ´\DRIVERS\ORACLE\DB OPEN\;USER NAME´;
ORACLEDLL = ´\DRIVERS\ORACLE\INIT\;DLL´;
ORACLEDLL32 = ´\DRIVERS\ORACLE\INIT\;DLL32´;
ORACLEDRIVERFLAGS = ´\DRIVERS\ORACLE\INIT\;DRIVER FLAGS´;
ORACLETRACEMODE = ´\DRIVERS\ORACLE\INIT\;TRACE MODE´;
ORACLETYPE = ´\DRIVERS\ORACLE\INIT\;TYPE´;
ORACLEVENDORINIT = ´\DRIVERS\ORACLE\INIT\;VENDOR INIT´;
ORACLEVERSION = ´\DRIVERS\ORACLE\INIT\;VERSION´;
{ Configurações do driver do MSACCESS... }
MSACCEESSLANGDRIVER = ´\DRIVERS\MSACCESS\DB OPEN\;LANGDRIVER´;
MSACCESSDATABASENAME = ´\DRIVERS\MSACCESS\DB OPEN\;DATABASE NAME´;
MSACCESSUSERNAME = ´\DRIVERS\MSACCESS\DB OPEN\;USER NAME´;
MSACCESSOPENMODE = ´\DRIVERS\MSACCESS\DB OPEN\;OPEN MODE´;
MSACCESSSYSTEMDATABASE = ´\DRIVERS\MSACCESS\DB OPEN\;SYSTEMDATABASE´;
MSACCESSVERSION = ´\DRIVERS\MSACCESS\INIT\;VERSION´;
MSACCESSTYPE = ´\DRIVERS\MSACCESS\INIT\;TYPE´;
MSACCESSDLL32 = ´\DRIVERS\MSACCESS\INIT\;DLL32´;
MSACCESSDRIVERFLAGS = ´\DRIVERS\MSACCESS\INIT\;DRIVER FLAGS´;
MSACCESSTRACEMODE = ´\DRIVERS\MSACCESS\INIT\;TRACE MODE´;
{ Configurações de inicialização do sistema... }
AUTOODBC = ´\SYSTEM\INIT\;AUTO ODBC´;
DATAREPOSITORY = ´\SYSTEM\INIT\;DATA REPOSITORY´;
DEFAULTDRIVER = ´\SYSTEM\INIT\;DEFAULT DRIVER´;
LANGDRIVER = ´\SYSTEM\INIT\;LANGDRIVER´;
LOCALSHARE = ´\SYSTEM\INIT\;LOCAL SHARE´;
LOWMEMORYUSAGELIMIT = ´\SYSTEM\INIT\;LOW MEMORY USAGE LIMIT´;
MAXBUFSIZE = ´\SYSTEM\INIT\;MAXBUFSIZE´;
MAXFILEHANDLES = ´\SYSTEM\INIT\;MAXFILEHANDLES´;
MEMSIZE = ´\SYSTEM\INIT\;MEMSIZE´;
MINBUFSIZE = ´\SYSTEM\INIT\;MINBUFSIZE´;
SHAREDMEMLOCATION = ´\SYSTEM\INIT\;SHAREDMEMLOCATION´;
SHAREDMEMSIZE = ´\SYSTEM\INIT\;SHAREDMEMSIZE´;
SQLQRYMODE = ´\SYSTEM\INIT\;SQLQRYMODE´;
SYSFLAGS = ´\SYSTEM\INIT\;SYSFLAGS´;
VERSION = ´\SYSTEM\INIT\;VERSION´;crie uma rotina como essa:
function ConfigBDE(Chave: PChar; NovoValor: string): boolean;
var
hCur : hDBICur;
Config : CFGDesc;
ContinueIt: boolean;
Caminho, Opcao: string;
begin
Result := False;
Caminho := Copy(Chave, 0, Pos(´;´, Chave) - 1);
Opcao := Copy(Chave, Pos(´;´, Chave) + 1, Length(Chave) - Pos(´;´, Chave));
hCur := nil;
if (DbiInit(nil) = DBIERR_NONE) and
(DbiOpenCfgInfoList(nil, dbiREADWRITE, cfgPersistent,
PChar(Caminho), hCur) = DBIERR_NONE) and
(DbiSetToBegin(hCur) = DBIERR_NONE) then
begin
ContinueIt := true;
while ContinueIt do
begin
if(DbiGetNextRecord(hCur, dbiWRITELOCK, @Config, nil) DBIERR_NONE) then
ContinueIt := false
else
if StrIComp(Config.szNodeName, PChar(Opcao)) = 0 then
begin
StrCopy(Config.szValue, PChar(NovoValor));
DbiModifyRecord(hCur, @Config, true);
Result := True;
ContinueIt := false
end;
end;
DbiExit();
end;
end;e chame-a da seguinte forma:
if not ConfigBDE(PARADOXFILLFACTOR, ´95´) then
ShowMessage(´Não foi possível alterar o parâmetro FILL FACTOR!´);
if not ConfigBDE(PARADOXNETDIR, ´c:\temp´) then
ShowMessage(´Não foi possível alterar o parâmetro NET DIR!´);
note que no código acima estão sendo utilizadas duas das constantes criadas. também poderia ser passado o valor literal:
if not ConfigBDE(´\DRIVERS\PARADOX\TABLE CREATE\;FILL FACTOR´, ´95´) then
ShowMessage(´Não foi possível alterar o parâmetro FILL FACTOR!´);
if not ConfigBDE(´\DRIVERS\PARADOX\INIT\;NET DIR´, ´c:\temp´) then
ShowMessage(´Não foi possível alterar o parâmetro NET DIR!´);onde 95 e c:\temp são os novos valores dos respectivos parâmetros. a opção a ser alterada deve ser precedida por [b:3922c4ffe9];[/b:3922c4ffe9] devido a separação entre caminho e opção, no código da função ConfigBDE.
obs.: declare a unit BDE na cláusula uses.
GOSTEI 0