[NEWSboard IBMi Forum]

Thema: SQL Package

Hybrid View

  1. #1
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Das ist ja genau das was ich meine.
    Die SQL's können nur wiederverwendet werden, wenn sie IDENTISCH sind. Somit gilt jeder Befehl als neuer SQL und ODP's gibt es nicht.

    Wenn ich mir den Befehl so betrachte, wird ja genau eine bestimmte Sicht der Daten verlangt, also ähnlich einem CREATE VIEW die ich dann mittels SELECT * FROM MYVIEW abfrage. Es wird also immer erst eine neue View (eben temporär) verlangt.

    Daher erklärt sich auch die Performance, da der SQL generell neu analysiert werden muss, ein SQLPKG also nichts bringt. (Wenn man SQLPKG nicht definiert, wird automatisch eins in QGPL generiert.)

    Aber auch auf der Clientseite muss ich mit Parametern arbeiten können !!!!

    Wenn ich mit ADO arbeite, so erstelle ich ein Connection-Object an das ich dann Command-Objekte hänge.
    Den SQL definiere ich an den richtigen Stellen mit "?" und kann dann jederzeit mit "OpenRecodset" und den Parametern im Array (oder in einer Schleife gefüllt) das Command ausführen.
    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

  2. #2
    Registriert seit
    Jan 2005
    Beiträge
    37

    Mit der Bitte um Info

    Zitat Zitat von Fuerchau Beitrag anzeigen
    Den SQL definiere ich an den richtigen Stellen mit "?" und kann dann jederzeit mit "OpenRecodset" und den Parametern im Array (oder in einer Schleife gefüllt) das Command ausführen.
    Kann ich an einen Parameter ein Array hängen? Arbeite bei INSERT nur noch mit ado command und wüsste gerne, ob man das noch beschleunigen kann, indem man nicht jede Zeile einzeln "abschickt" sondern ein array an jeden Parameter anhängt und dann einen ganzen Block überträgt. Habe das mit ODBC BLOCK INSERT probiert, funktioniert auch, möchte das aber lieber über ado realisieren. Gibt es eine Art BLOCK INSERT für ado (VB6)?

    Gruß Andreas

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Nun, das geht nur über ein Recordset, dass vorher per "SELECT ..." angelegt wurde, wichtig ist hierbei die Verwendung eine CLientCursers.

    Per .AddNew-Methode können dann neue Sätze erst mal lokal hinzugefügt werden, vorhandene Sätze können direkt per ".Fields("Name")" bzw "!Name" geändert werden.

    Zum Schluß ist dann die Methode .UpdateBatch aufzurufen, die nun alle Änderungen in die Zieltabelle überträgt.

    Über den Filter ".adFilterPendingRecords" bzw. ".AdFilterConflictingRecords" können die nicht übertragenen bzw. fehlerhaften Sätze ausgefiltert werden.

    UpdateBatch hat ggf. in Mehrbenutzerumgebeungen den Nachteil, dass Änderungen/Neuanlagen nicht sofort für alle verfügbar sind und Konflikte schwerer erkennbar werden.

    Auch die Anzahl der Operationen (Speicherbedarf) ist da begrenzt.

    Es funktioniert also auch folgendes:

    Set MyRcd = MyConnect.Execute("Select * from MyTable where Key1=''"

    ' Erzwingen eines leeren Recordsets

    for x=1 to 1000
    MyRcd.AddNew
    MyRcd!F1 = newval

    if x mod 100 = 0 then
    MyRcd.UpdateBatch
    MyRcd.Requery
    endif

    next

    ' Update alle 100 Sätze
    ' Requery gibt wieder ein leeres Recordset
    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

Similar Threads

  1. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  2. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 14:53
  3. SQL und OBJLCK
    By malzusrex in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 19-09-06, 11:04
  4. SQL - Fehler
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-06-06, 14:11
  5. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43

Berechtigungen

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