Announcement

Collapse
No announcement yet.

MSSQL - nach ca. 10 OpenTables ist Ende (dbExpress und BDE)

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

  • MSSQL - nach ca. 10 OpenTables ist Ende (dbExpress und BDE)

    Hallöchen.

    Ich habe den Effekt, das sich sowohl bei BDE basierten Tabellen (als auch testweise bei dbExpress basierten Tabellen) nach einer bestimmten Anzahl geöffneter Tabels keine eiteren Tabellen mehr öffnen lassen!
    Das ganze von einem XP Client auf einen MSSQL Server auf NT.
    Von einem anderen XP Clienten dagegen ist das Öffnen aller Tabellen problemlos möglich. Von einer weiteren NT Maschine auch.
    "dbmaxprocesses" steht in allen BDEs auf 64 - damit sollten sich 30 Cursor öffnen lassen - zumal es ja mit den Express Komponenten auch nicht geht.
    Ein Update von MDAC 2.7 auf MDAC 2.8 und BDE 5.2.0.2 brachte keine Veränderung.
    Interessanterweise steht der komplette Netzwerkzugriff, wenn die weiteren (zuum Scheitern verurteilten) Öffnungsversuche stattfinden - also gemappte Laufwerke und Internet Account über einen Proxy laufen ebenfalls mit einem TimeOut - bis sich dann die Applikation selbst nach einem Timeout beendet.

    Kennt irgend jemand das Phenomen?
    Danke im Voraus.

    Gruss
    Paul Vente

  • #2
    Kleines Testprogramm als Nachtrag:

    Folgender Code hängt nach dem 14. Durchgang.
    FMsgSLA ist ein Wartefenster-Formular mit Anzeigebalken.
    Mit allen folgenden Elementen geht's schief:
    - TSQLTable (im Beispiel verwendet)
    - TSimpleDataSet (anderer Code erforderlich)
    - TSQLTable (anderer Code erforderlich)

    PROCEDURE TFMain.OpenAllFilesVAR
    VAR MyTd : ARRAY[1..250] OF TSQLTable;
    Count : LONGINT;
    BEGIN
    ShowMessage('Los gehts II');

    FMsgSLA.Msg_1 := 'TEST';
    FMsgSLA.Msg_2 := 'Bitte warten Sie...';
    FMsgSLA.ShowBalkenAbbr(250);

    TRY
    FOR Count := 1 TO 250 DO
    BEGIN
    // ShowMessage(IntToStr(Count));

    MyTd[Count] := TSQLTable.Create(FMain);
    MyTd[Count].SQLConnection := SQLConnDat;
    MyTd[Count].TableName := 'TPlan';
    {
    MyTd[Count].FieldDefs.Update;
    MyTd[Count].IndexDefs.Update;
    }
    MyTd[Count].Open;

    FMsgSLA.L1.Caption := 'TEST ('+IntToStr(Count)+')';
    FMsgSLA.ShowNextBalken;
    Application.ProcessMessages;
    IF FMsgSLA.AbbrPressed THEN
    BREAK;
    END;
    EXCEPT
    ON E:EXCEPTION DO
    BEGIN
    MessageDlg('Die Datendateien konnten NICHT geöffnet werden!'+Gl_CRLF+
    'Die Fehlermeldung lautet:'+Gl_CRLF+Gl_CRLF+
    E.Message, mtError, [mbCancel],0);
    EXIT;
    END;
    END;

    ShowMessage('Fertig');
    FMsgSLA.Close;
    END;

    Sollte doch eigentlich bis 250 durchlaufen, oder?

    Schönes Wochenende
    Paul Vent

    Comment


    • #3
      Problem gelöst!

      Die MSDE macht nach einigen "Prozessen" zu.
      Wird auch auf der Microsoft Homepage beschrieben.
      Lösung SQL Server oder andere Datenbank verwenden..

      Comment

      Working...
      X