[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Feb 2003
    Beiträge
    2

    Post Recordcout in OLE DB-IBMDA

    Hallo

    ich habe dynamisch erstelle Abfragen
    die auch teilweise berechnete Spalten bzw.
    Funktionen beinhalten.
    Zu dieser Abfrage benötige ich zunächst
    die Satzanzahl, bevor die Daten (>1 Mio.)
    zum Excel-Client geladen werden.
    OLE-DB gibt grundsätzlich Recordcount=0
    Gibt es in der AS400-Umgebung eine schnelle Lösung?

    Nur um Feldbeschreibungen für die Abfragen zu
    bestimmen, war meine Lösung in der Where-
    Bedingung 1<>1 zu definieren, eigentlich
    brauchbar, aber die AS400 benötigt für
    eine Select-Anweisung wie z.B.
    Select * from Lib/File where 1<>1
    genauso lange wie ohne false-Bedg.
    Gibt es eine Anweisung od. Befehl,
    das eine 0-Zeilen-Abfrage auch entspr.
    schnell ausführen läßt?


    für schnelle Hilfe wäre ich dankbar

    Michael



  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695

    Post

    Unabhängig von den tatsächlichen Spalten entscheidet ja die Where-Bedingung über die Anzahl Sätze, also müssen 2 Abfragen gemacht werden:

    1. select count(*) from ... where ...
    2. select f1, f2, ... from ... where ...

    Wenn die Daten aber sowieso heruntergeladen werden müssen, gibt es noch die folgende Möglichkeit:

    with
    xTable (f1, f2, f3, ...) as
    (select f1, f2, f3, ... from ... where ...)

    select count(*), xTable.* from xTable

    Durch die With-Bestimmung werden die Daten auf der AS/400 in einem temporären Bereich (QTEMP) geladen und vom nachfolgenden Select dann tatsächlich abgerufen.

    Alternativ ab V5:

    select count(*), x.* from (select ...) as x
    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
    Feb 2003
    Beiträge
    2

    Post

    Hallo Fuerchau,

    vielen Dank für die schnelle Hilfe!

    die Lösung, es in die Qtemp kopieren
    zu lassen, könnte bei sehr vielen Sätzen
    aber evtl. zu Geschwindigkeitsproblemen
    führen.



Similar Threads

  1. Datensätze in DB mittels VB einfügen
    By Toschie in forum NEWSboard Programmierung
    Antworten: 9
    Letzter Beitrag: 21-06-06, 11:53
  2. Bibliotheks-Angabe bei OLE DB Verbindung mit IBMDA400
    By Neptun in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 21-07-05, 11:39
  3. Hartcodierter OLE DB Zugriff auf AS/400-Datenbank
    By tschroeder in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 04-05-05, 09:21
  4. Zugriff OLE DB AS400/DB2 und Visual Basic
    By HPKahn in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 01-02-05, 09:23
  5. IBM AS/400 SDK für ActiveX und OLE DB
    By OMS in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 26-02-01, 12:55

Berechtigungen

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