Announcement

Collapse
No announcement yet.

MAXFILEHANDLES per Programm aendern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • MAXFILEHANDLES per Programm aendern

    Hallo

    ich suche nach einer Moeglichkeit um den Wert MAXFILEHANDLES programmtechnisch zu veraendern
    (testen)

    Gibt es da eine Moeglichkeit?

    MfG

  • #2
    Ja das geht, etwa so:

    <pre>

    <code><font size=2 face="Courier New"><b>uses </b>BDE, DB, DBTables;
    <br>
    <b>procedure </b>GetConfigParams(<b>const </b>Path, Section: <b>string</b>; List: TStrings);
    <b>var
    </b>Cursor: HDBICur;
    ConfigDesc: CFGDesc;
    P: <b>Array</b>[0..512] <b>of </b>Char;
    <b>begin
    </b>StrPCopy(P, Format(Path, [Section]));
    <b>if </b>DbiOpenCfgInfoList(<b>nil</b>, dbiREADONLY, cfgPERSISTENT, P, Cursor) = 0 <b>then
    try
    </b>List.Clear;
    <b>while </b>DbiGetNextRecord(Cursor, dbiNOLOCK, @ConfigDesc, <b>nil</b>) = 0 <b>do
    with </b>ConfigDesc <b>do
    if </b>bHasSubNodes <b>then
    </b>List.Add(Format('%s', [szNodeName]))
    <b>else
    </b>List.Add(Format('%s=%s', [szNodeName, szValue]));
    <b>finally
    </b>DbiCloseCursor(Cursor);
    <b>end</b>;
    <b>end</b>;
    <br>
    <b>procedure </b>SetConfigParams(<b>const </b>Path, Section: <b>string</b>; List: TStrings);
    <b>var
    </b>ParamList: TParamList;
    P: <b>array</b>[0..512] <b>of </b>Char;
    <i>{$IFDEF Ver100}
    </i>WasOpen: Boolean;
    <i>{$ENDIF}
    </i><b>begin
    </b>StrPCopy(P, Format(Path, [Section]));
    ParamList := TParamList.Create(List);
    <b>try
    </b><i>{$IFDEF Ver100}
    </i>WasOpen := Session.Active;
    Session.Open;
    Session.ConfigMode := [cfmPersistent];
    <i>{$ENDIF}
    </i><b>with </b>ParamList <b>do
    try
    </b>Check(DbiCfgModifyRecord(<b>nil</b>, P, FieldCount, PFLDDesc(FieldDescs), Buffer));
    <b>except
    </b>Check(DbiCfgAddRecord(<b>nil</b>, P, FieldCount, PFLDDesc(FieldDescs), Buffer));
    <b>end</b>;
    Check(DbiCfgSave(<b>nil</b>, <b>nil</b>, False));
    <b>finally
    </b>ParamList.Free;
    <i>{$IFDEF Ver100}
    </i>Session.Active := WasOpen;
    <i>{$ENDIF}
    </i><b>end</b>;
    <b>end</b>;
    <br>
    <b>var
    </b>L: TStringList;
    <b>begin
    </b>L := TStringList.Create;
    <b>try
    </b>GetConfigParams(szCFGSYSTEM, szCFGINIT, L);
    L.Values[szCFGMAXFILEHANDLES] := IntToStr(48);
    SetConfigParams(szCFGSYSTEM, szCFGINIT, L);
    <b>finally
    </b>L.Free;
    <b>end</b>;
    <b>end</b>;
    </font>
    </code></pre>

    Gruß Hage

    Comment


    • #3
      Hallo

      danke fuer den Tip

      werfde es mal testen
      (leider sind meine Delphi-Kenntnisse nicht so toll aber ich werde es schon schaffen)

      Mf

      Comment

      Working...
      X