[NEWSboard IBMi Forum]
  1. #1
    Join Date
    Jan 2001
    Posts
    66

    Post Stored Procedure

    Es soll ein Result Set an den Client übertragen werden.
    Dafür möchte ich eine Stored Procedure nutzen.
    Die Frage ist nun, welche SP-Art ist im Client/Server Betrieb denn am schnellsten?

    1. Mit SPL oder
    2. als externe, wie z. B. mit SQLRPGLE?

    Hat jemand damit Erfahrung?

  2. #2
    Join Date
    Dec 2000
    Posts
    99

    Post

    Die Unterschiede waren bei uns marginal. Theoretisch sollte die 1. Variante schneller sein (generierter C - Code), wesentlicher ist aber die Qualität der verwendeten SQL Statements. Auf relativ kleinen und alten Maschinen sind in vielen Fällen beide Varianten langsamer als RPGLE Progamme mit 'klassischer' IO. (F-specs, chain, setll etc.)
    RPGLE mit embedded SQL läßt sich einfacher debuggen als SPL.

    Gruß

    Torsten

  3. #3
    Join Date
    Jan 2001
    Posts
    66

    Post

    Hallo Torsten,
    danke für die Antwort, der ich entnehme, dass du schon etwas Erfahrung mit dem Thema hast.
    Ich habe nämlich noch ein ganz anderes Problem:
    Trotz installierten ILE C Compiler unter V5.1 erhalte ich bei SPL-Generierung über OpsNav folgende Fehlermeldung:

    SQL-Prozedur, -Funktion oder -Auslöser SP1 in LORENZEN wurde nicht erstellt.

    Nachrichten-ID:SQL7032

    Ursache . . . . .: SQL-Prozedur, -Funktion oder -Auslöser SP1 in LORENZEN wurde nicht erstellt. Einer der folgenden Fehler trat auf as Produkt DB2 UDB ist nicht auf dem System vorhanden. SQL erfordert, dass DB2 UDB für AS/400 installiert ist, um SQL-Prozeduren, -Funktionen oder -Auslöser erstellen zu können.Die Umwandlung war nicht erfolgreich. SQL erstellt eine SQL-Prozedur, -Funktion oder einen SQL-Auslöser als ein C-Programm, das eingebettetes SQL enthält. Fehler, die während der anfänglichen Syntaanalyse der Anweisungen CREATE PROCEDURE, CREATE FUNCTION und CREATE TRIGGER nicht gefunden wurden, können während der Vorumwandlung gefunden werden.Fehlerbeseitigung: Sofern ILE C für AS/400 noch nicht installiert ist, dieses Produkt installieren. Sofern DB2 UDB für AS/400 noch nicht installiert ist, dieses Produkt installieren. Sofern OS/400 Option 13, System Openness Includes noch nicht installiert ist, dieses Produkt installieren. Trat ein Umwandlungsfehler auf, die Vorumwandlungsliste in QSYSPRT püfen.

    Hast du vielleicht eine Idee, wo es fehlt?

    Gruß Sven

    [Dieser Beitrag wurde von lorenzen am 27. August 2002 editiert.]

  4. #4
    Join Date
    Dec 2000
    Posts
    99

    Post

    Hallo Sven,

    leider muß wirklich das Lizenzprogramm

    5722ST1 *COMPATIBLE DB2 Query Mgr and SQL DevKit installiert sein , um SP in der SPL
    erstellen zu können. (nicht ganz billig)

    Der ILE C Compiler ist dafür ab V5R1 nicht mehr erforderlich.

    Gruß

    Torsten


  5. #5
    Join Date
    Jan 2001
    Posts
    66

    Post

    Hallo Torsten,

    5722ST1 *COMPATIBLE DB2 Query Mgr and SQL DevKit

    ist installiert, ebenso wie:

    5722WDS *COMPATIBLE Compiler - ILE C
    5722WDS *COMPATIBLE Compiler - ILE C++
    5722WDS *COMPATIBLE Compiler - ILE C *PRV
    5722WDS *COMPATIBLE Compiler - ILE C++ *PRV

    Ich glaube da mache ich irgend etwas anderes falsch.
    Ich habe zum Test lediglich ein "Select * from Lib.File" im SPL Eingabefenster eingetragen.
    In der Vorumwandlungsliste wird nun mitgeteilt das die Klausel INTO fehlt. Ich will aber gar keine Hostvariablen füllen (zumindest jetzt nicht), sondern lediglich ein Result Set erhalten.

    Weißt du wie das geht?

    Gruß Sven

  6. #6
    Join Date
    Dec 2000
    Posts
    99

    Post

    z.B.

    BEGIN
    DECLARE CURSE CURSOR WITH RETURN FOR
    SELECT * FROM mylib.myTable
    WHERE myCol = 'A' ;
    OPEN CURSE ;
    END

    Gruß

    Torsten

  7. #7
    Join Date
    Jan 2001
    Posts
    66

    Post

    Jawoll, das geht.
    Ich habe mir inzwischen damit geholfen, das Statement in eine Quelldatei, inkl. dem ganzen CREATE PROCEDURE Geraffel, zu schreiben und dann mit RUNSQLSTM zu generieren.
    Gefehlt hat natürlich der Cursor.

    Vielen Dank für deine Hilfe.

    Gruß Sven

Similar Threads

  1. Berechtigung für Stored Procedure
    By rebe in forum NEWSboard Programmierung
    Replies: 6
    Last Post: 12-10-06, 11:22
  2. SQL Stored Procedure verschwindet
    By florian in forum IBM i Hauptforum
    Replies: 10
    Last Post: 17-05-06, 16:08
  3. Stored Procedure mit Problemen
    By peter.kinne in forum IBM i Hauptforum
    Replies: 13
    Last Post: 15-04-05, 09:04
  4. Java Stored Procedure
    By HeisigA in forum NEWSboard Programmierung
    Replies: 10
    Last Post: 21-02-05, 18:58
  5. Löschen/Überschreiben einer Stored Procedure
    By Frank Pusch in forum IBM i Hauptforum
    Replies: 1
    Last Post: 13-06-01, 17:57

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •