Советы по Delphi. Версия 1.4.3 от 1.1.2001
Шрифт:
property AutoODBC : Boolean read FAutoODBC write SetAutoODBC;
property StrictIntegrity : Boolean read FStrictIntegrity write SetStrictIntegrity;
end;
procedure Register;
implementation
function StrToBoolean(Value : string) : Boolean;
begin
if (UpperCase(Value) = 'TRUE') or (UpperCase(Value) = 'ON') or (UpperCase(Value) = 'YES') or (UpperCase(Value) = '.T.' ) then Result := True
else Result := False;
end;
function BooleanToStr(Value : Boolean) : String;
begin
if Value then Result := 'TRUE'
else Result := 'FALSE';
end;
procedure Register;
begin
RegisterComponents('Data Access', [TBDEConfig]);
end;
procedure TBDEConfig.Init;
var
h: hDBICur;
pCfgDes: pCFGDesc;
n, v : string;
begin
Check(DbiOpenCfgInfoList(nil, dbiREADWRITE, cfgPersistent,'\SYSTEM\INIT', h));
GetMem(pCfgDes, sizeof(CFGDesc));
try
FillChar(pCfgDes^, sizeof(CFGDesc), #0);
while (DbiGetNextRecord(h, dbiWRITELOCK, pCfgDes, nil) = DBIERR_NONE) do begin
n := StrPas(pCfgDes^.szNodeName);
v := StrPas(pCfgDes^.szValue);
if n = 'LOCAL SHARE' then FLocalShare := StrToBoolean(v)
else if n = 'MINBUFSIZE' then FMinBufSize := StrToInt(v)
else if n = 'MAXBUFSIZE' then FMaxBufSize := StrToInt(v)
else if n = 'MAXFILEHANDLES' then FMaxFileHandles := StrToInt(v)
else if n = 'LANGDRIVER' then FSystemLangDriver := v
else if n = 'AUTO ODBC' then FAutoODBC := StrToBoolean(v)
else if n = 'DEFAULT DRIVER' then FDefaultDriver := v;
end;
if (h <> nil) then DbiCloseCursor(h);
Check(DbiOpenCfgInfoList(nil, dbiREADWRITE, cfgPersistent,'\DRIVERS\PARADOX\INIT', h));
FillChar(pCfgDes^, sizeof(CFGDesc), #0);
while (DbiGetNextRecord(h, dbiWRITELOCK, pCfgDes, nil) = DBIERR_NONE) do begin
n := StrPas(pCfgDes^.szNodeName);
v := StrPas(pCfgDes^.szValue);
if n = 'NET DIR' then FNetFileDir := v
else if n = 'LANGDRIVER' then FParadoxLangDriver := v;
end;
if (h <> nil) then DbiCloseCursor(h);
Check(DbiOpenCfgInfoList(nil, dbiREADWRITE, cfgPersistent, '\DRIVERS\PARADOX\TABLE CREATE', h));
FillChar(pCfgDes^, sizeof(CFGDesc), #0);
while (DbiGetNextRecord(h, dbiWRITELOCK, pCfgDes, nil) = DBIERR_NONE) do begin
n := StrPas(pCfgDes^.szNodeName);
v := StrPas(pCfgDes^.szValue);
if n = 'LEVEL' then FTableLevel := v
else if n = 'BLOCK SIZE' then FBlockSize := StrToInt(v)
else if n = 'STRICTINTEGRITY' then FStrictIntegrity := StrToBoolean(v);
end;
finally
FreeMem(pCfgDes, sizeof(CFGDesc));
if (h <> nil) then DbiCloseCursor(h);
end;
end;
procedure TBDEConfig.SetLocalShare(Value : Boolean);
begin
UpdateCfgFile('\SYSTEM\INIT', 'LOCAL SHARE', BooleanToStr(Value));
FLocalShare := Value;
Поделиться:
Популярные книги
Свадьба по приказу, или Моя непокорная княжна
Любовные романы:
любовно-фантастические романы
5.57
рейтинг книги
Сборник коротких эротических рассказов
Любовные романы:
эро литература
love action
7.25
рейтинг книги
Отец моего жениха
Любовные романы:
современные любовные романы
7.79
рейтинг книги
Вадбольский
1. Вадбольский
Фантастика:
попаданцы
5.00
рейтинг книги
Бастард Императора. Том 7
7. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Повелитель механического легиона. Том VIII
8. Повелитель механического легиона
Фантастика:
технофэнтези
аниме
фэнтези
5.00
рейтинг книги
В зоне особого внимания
12. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Таня Гроттер и магический контрабас
1. Таня Гроттер
Фантастика:
фэнтези
8.52
рейтинг книги
Бастард Императора. Том 2
2. Бастард Императора
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга ХI
11. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Третий
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
Возвышение Меркурия. Книга 16
16. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 9
9. Лекарь
Фантастика:
боевая фантастика
юмористическое фэнтези
6.00
рейтинг книги
Потусторонний. Книга 1
1. Господин Артемьев
Фантастика:
фэнтези
попаданцы
5.00