Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001
- Название:Советы по Delphi. Версия 1.4.3 от 1.1.2001
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001 краткое содержание
…начиная с 1001. Смотрите другие файлы…
Советы по Delphi. Версия 1.4.3 от 1.1.2001 - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
procedureSetStrictIntegrity(Value : Boolean);
procedureUpdateCFGFile(path, item, value : string);
protected
public
constructorCreate(AOwner: TComponent); override;
destructorDestroy; override;
published
propertyLocalShare : Boolean readFLocalShare writeSetLocalShare;
propertyMinBufSize : Integer readFMinBufSize writeSetMinBufSize;
propertyMaxBufSize : Integer readFMaxBufSize writeSetMaxBufSize;
propertySystemLangDriver : String readFSystemLangDriver writeSetSystemLangDriver;
propertyParadoxLangDriver : String readFParadoxLangDriver writeSetParadoxLangDriver;
propertyMaxFileHandles : Integer readFMaxFileHandles writeSetMaxFileHandles;
propertyNetFileDir : String readFNetFileDir writeSetNetFileDir;
propertyTableLevel : String readFTableLevel writeSetTableLevel;
propertyBlockSize : Integer readFBlockSize writeSetBlockSize;
propertyDefaultDriver : string readFDefaultDriver writeSetDefaultDriver;
propertyAutoODBC : Boolean readFAutoODBC writeSetAutoODBC;
propertyStrictIntegrity : Boolean readFStrictIntegrity writeSetStrictIntegrity;
end;
procedure Register;
implementation
functionStrToBoolean(Value : string) : Boolean;
begin
if(UpperCase(Value) = 'TRUE') or(UpperCase(Value) = 'ON') or(UpperCase(Value) = 'YES') or(UpperCase(Value) = '.T.' ) thenResult := True
elseResult := False;
end;
functionBooleanToStr(Value : Boolean) : String;
begin
ifValue thenResult := 'TRUE'
elseResult := 'FALSE';
end;
procedure Register;
begin
RegisterComponents('Data Access', [TBDEConfig]);
end;
procedureTBDEConfig.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);
ifn = 'LOCAL SHARE' thenFLocalShare := StrToBoolean(v)
else ifn = 'MINBUFSIZE' thenFMinBufSize := StrToInt(v)
else ifn = 'MAXBUFSIZE' thenFMaxBufSize := StrToInt(v)
else ifn = 'MAXFILEHANDLES' thenFMaxFileHandles := StrToInt(v)
else ifn = 'LANGDRIVER' thenFSystemLangDriver := v
else ifn = 'AUTO ODBC' thenFAutoODBC := StrToBoolean(v)
else ifn = 'DEFAULT DRIVER' thenFDefaultDriver := v;
end;
if(h <> nil) thenDbiCloseCursor(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);
ifn = 'NET DIR' thenFNetFileDir := v
else ifn = 'LANGDRIVER' thenFParadoxLangDriver := v;
end;
if(h <> nil) thenDbiCloseCursor(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);
ifn = 'LEVEL' thenFTableLevel := v
else ifn = 'BLOCK SIZE' thenFBlockSize := StrToInt(v)
else ifn = 'STRICTINTEGRITY' thenFStrictIntegrity := StrToBoolean(v);
end;
finally
FreeMem(pCfgDes, sizeof(CFGDesc));
if(h <> nil) thenDbiCloseCursor(h);
end;
end;
procedureTBDEConfig.SetLocalShare(Value : Boolean);
begin
UpdateCfgFile('\SYSTEM\INIT', 'LOCAL SHARE', BooleanToStr(Value));
FLocalShare := Value;
end;
procedureTBDEConfig.SetMinBufSize(Value : Integer);
begin
UpdateCfgFile('\SYSTEM\INIT', 'MINBUFSIZE', IntToStr(Value));
FMinBufSize := Value;
end;
procedureTBDEConfig.SetMaxBufSize(Value : Integer);
begin
UpdateCfgFile('\SYSTEM\INIT', 'MAXBUFSIZE', IntToStr(Value));
FMaxBufSize := Value;
end;
procedureTBDEConfig.SetSystemLangDriver(Value : String);
begin
UpdateCfgFile('\SYSTEM\INIT', 'LANGDRIVER', Value);
FSystemLangDriver := Value;
end;
procedureTBDEConfig.SetParadoxLangDriver(Value : String);
begin
UpdateCfgFile('\DRIVERS\PARADOX\INIT', 'LANGDRIVER', Value);
FParadoxLangDriver := Value;
end;
procedureTBDEConfig.SetMaxFileHandles(Value : Integer);
begin
UpdateCfgFile('\SYSTEM\INIT', 'MAXFILEHANDLES', IntToStr(Value));
FMaxFileHandles := Value;
end;
procedureTBDEConfig.SetNetFileDir(Value : String);
begin
UpdateCfgFile('\DRIVERS\PARADOX\INIT', 'NET DIR', Value);
FNetFileDir := Value;
end;
procedureTBDEConfig.SetTableLevel(Value : String);
begin
UpdateCfgFile('\DRIVERS\PARADOX\TABLE CREATE', 'LEVEL', Value);
FTableLevel := Value;
end;
procedureTBDEConfig.SetBlockSize(Value : Integer);
begin
UpdateCfgFile('\DRIVERS\PARADOX\TABLE CREATE', 'BLOCK SIZE', IntToStr(Value));
FBlockSize := Value;
end;
procedureTBDEConfig.SetStrictIntegrity(Value : Boolean);
begin
UpdateCfgFile('\DRIVERS\PARADOX\TABLE CREATE', 'STRICTINTEGRITY', BooleanToStr(Value));
FStrictIntegrity := Value;
end;
procedureTBDEConfig.SetDefaultDriver(Value : String);
begin
UpdateCfgFile('\SYSTEM\INIT', 'DEFAULT DRIVER', Value);
FDefaultDriver := Value;
end;
procedureTBDEConfig.SetAutoODBC(Value : Boolean);
begin
UpdateCfgFile('\SYSTEM\INIT', 'AUTO ODBC', BooleanToStr(Value));
FAutoODBC := Value;
end;
procedureTBDEConfig.UpdateCFGFile;
var
h : hDbiCur;
pCfgDes: pCFGDesc;
pPath : array[0..127] ofchar;
begin
StrPCopy(pPath,Path);
Check(DbiOpenCfgInfoList( nil, dbiREADWRITE, cfgPersistent, pPath, h));
GetMem(pCfgDes, sizeof(CFGDesc));
try
FillChar(pCfgDes^, sizeof(CFGDesc), #0);
while(DbiGetNextRecord(h, dbiWRITELOCK, pCfgDes, nil) = DBIERR_NONE) do begin
ifStrPas(pCfgDes^.szNodeName) = item then begin
StrPCopy(pCfgDes^.szValue, value);
Check(DbiModifyRecord(h, pCfgDes, True));
end;
end;
finally
FreeMem(pCfgDes, sizeof(CFGDesc));
if(h <> nil) thenDbiCloseCursor(h);
end;
end;
constructorTBDEConfig.Create(AOwner: TComponent);
Интервал:
Закладка: