[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Mar 2006
    Beiträge
    2

    Question SQ20226 - Die maximale Anzahl der STACKED - Diagnosebereiche wurde überschritten

    Hallo,
    ich baue in Delphi über den ODBC Treiber von Client Access 5.7 eine Verbindung zur AS/400 auf (V5R3). Mit Hilfe einer ADOConnection, einem ADODataSet und einer SQL Anweisung "SELECT...FROM...WHERE...WITH >ISOLATION LEVEL<" möchte ich eine Bildschirmtabelle asynchron füllen, da die Herkunftstabelle recht groß ist und der Anwender nicht so lange auf die Anzeige warten soll.

    Bevor die Tabelle komplett gelesen wurde, bekomme ich die Fehlermeldung "SQ20226 - Die maximale Anzahl der STACKED - Diagnosebereiche wurde überschritten". Ich habe bereits alle "Isolation Level" beim SELECT ausprobiert.

    Hat jemand einen Lösungsvorschlag?

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Das Problem ist da wohl eher die Cursor-Art.
    Beim Client-Cursor hat ADO die Angewohnheit das komplette Ergebnis ins Recordset zu laden. Der Zugriff auf die RecordCount-Eigenschaft reicht dafür schon.
    Wenn das Recordset also sehr groß wird, musst du ggf. einen ForewardOnly-Cursor verwenden, die CachSize/PageSize-Eigenschaften einstellen und NIEMALS vor EOF=TRUE auf die RecordCount-Eigenschaft zugreifen.
    Alternativ nimm einen dynamischen Serverside-Cursor. RecordCount liefert dann allerdings immer -1 !

    Wenn du das nirgends einstellen kannst, musst du den Select halt in mehrere Schritte zerlegen: Where-Bedingung und passende MaxRecords-Eigenschaft.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Mar 2006
    Beiträge
    2
    Vielen Dank für die Antwort ,
    das Problem wurde beseitigt. Die von Dir vorgeschlagene Lösung hat aber leider nicht funktioniert.
    Ich habe mir nocheinmal das SELECT Statement genauer angesehen. Dabei ist mir aufgefallen, dass ich bei einem LEFT OUTER JOIN ein numerisches Feld (JJJJMMTT) mit VarChar und Concat in ein alphanumerische Feld umwandele (TT.MM.JJJJ). So weit so gut. Der Fehler tritt erst dann auf, wenn ich vor die Umwandlung ein DATE setzte um den alphanumerischen Wert in ein Datum umzuwandeln.
    Im Allgemeinen sollte man also bei OUTER JOIN Verbindungen mit Feldumwandlungen sehr vorsichtig sein.

Similar Threads

  1. Anzahl Felder in Displayfile
    By steven_r in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 07-11-06, 11:01
  2. Anzahl gelöschter Datensätze in PF
    By Der_Unwissende in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 20-10-06, 08:32
  3. Maximale Anzahl Schlüsselfelder
    By harkne in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 08-11-05, 10:06
  4. Maximale Anzahl Spooldateien pro Job
    By abornmann in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 04-10-05, 09:34
  5. Maximale Anzahl Printfiles im RPG
    By gussi40 in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 21-12-04, 10:07

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •