[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Zitat Zitat von Fuerchau Beitrag anzeigen
    OK, das hängt aber nun doch sehr stark vom verwendeten Select und Cursor-Type ab.
    Nur wenn SQL alle Sätze tatsächlich gelesen hat (kein Index für Sortierfolge), der Cursor insensitive ist, o.ä. könnte da ein gültiger Wert drinstehen.
    Ich hab das Gefühl du suchst einen Grund das nicht verwenden zu können

    *) Auch WENN die Engine einen Index für Sortierung verwendet steht da ein gültiger Wert drinnen. Wo hast du das denn gelesen??

    *) Auch WENN der Cursor SENSITIVE ist, steht da ein gültiger Wert drinnen (zum Zeitpunkt zu dem das Result-Set aufgebaut wurde!!).
    Vor dem gleichen Problem stehst du beim
    select count(*) as counter from
    ( fullselect )
    Bzw. weist du bei dem count(*) noch weniger ob dein Result-Set danach dem entspricht was du vorher gelesen hast, da sich die Tabelle zwischen den beiden Statements schon längst geändert haben könnte. Also GERADE in solch einen Fall ist die Methode mit GET DIAGNOSTICS die Bessere!!!

  2. #2
    Registriert seit
    Jun 2001
    Beiträge
    2.044
    hab mich vertan, gem. meiner alten doku, ist es sqlerrcode(3), nicht 5

    Ohne es probiert zu haben

    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    2.934
    Zitat Zitat von Robi Beitrag anzeigen
    hab mich vertan, gem. meiner alten doku, ist es sqlerrcode(3), nicht 5

    Ohne es probiert zu haben

    Robi
    SQLER3 oder SQLERRCODE(3) gibt die Anzahl der Datensätze an, die bei einem Multiple-Row-Fetch ausgegeben werden oder, die bei einem Insert, Update oder Delete (ohne Cursor) hinzugefügt, geändert oder gelöscht wurden.
    Entspricht dem Schlüssel-Wort ROW_COUNT, das von einem GET DIAGNOSTICS-Statement ausgegeben werden kann.

    SQLER5 order SQLERRCODE(5) gibt an, ob bei einem Multiple Row Fetch noch weitere Zeilen vorhanden sind, d.h. wird 100 ausgegeben, gibt es keine weiteren Zeilen.
    SQLER5 entspricht dem Schlüssel-Wort DB2_LAST_ROW, das von einem GET DIAGNOSTICS Statement ausgegeben werden kann.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.752
    Da kann ich nur Birgitta zustimmen.
    Auch SQL weiß erst wieviele Daten tatsächlich gelesen werden, wenn der letzte Fetch erfolgt ist.

    Mache ich einen Single-Fetch bekomme ich 1 zurück, Multiple-Row die Anzahl Strukturen.

    Bei veränderbaren Daten ist natürlich ein Count(*) auch nur eine Abschätzung.
    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

  5. #5
    Registriert seit
    Apr 2005
    Beiträge
    385
    Also nach den ersten Stichrobenartigen Select' kommt beim Tipp vom Robi immer die richtige Anzahl herraus! Ob das immer so ist, kann ich bislang auch nicht sagen.

    Danke erstmal an alle!

Similar Threads

  1. sql Anzahl Datensätze in Zweit-Datei
    By rr2001 in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 13-12-06, 15:04
  2. Anzahl Felder in Displayfile
    By steven_r in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 07-11-06, 12:01
  3. Anzahl gelöschter Datensätze in PF
    By Der_Unwissende in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 20-10-06, 09:32
  4. Anzahl angemeldeter User auf der AS400
    By Bratmaxxe in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 29-06-06, 11:29
  5. Einschränkungen in der Anzahl der parallelen Jobs
    By Christian.Hesse in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 04-04-06, 12:59

Berechtigungen

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