[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    1. Statt CreateObject kannst du auch einfach new verwenden:
    set cnAS400 = new ADODB.Connection

    2. Returnwerte werden nur bei SQL-Prozeduren unterstützt, ansonsten muss man die Objekt-API's und Konverter-API's verwenden.

    Also:
    Für jedes Programm, dass du aufrufen willst, musst du einen "Create Procedure" mit den jeweiligen In/Out-Parametern definieren.
    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
    Feb 2010
    Beiträge
    5
    Hallo,

    vielen dank für die schnelle Rückmeldung. Nur Ich hab sowas nicht nie wirklich gemacht, da ich meistens nur Datensätze lese.

    Können wir vielleicht meine Funktion mal so umändern das ich ein Beispiel habe?

    Das AS400 Programm kann ja Pseudo sein.

  3. #3
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    hi, du kannst schon ein select auf eine funktion machen

    2 möglichkeiten::

    1) *) die funktion muss als rückgabewert eine table beinhalten
    *) die syntax sieht dann so aus:
    select * from table (myfunction ('xxx', 333)) tab1

    2) select function ('xxx', 333) sp1 from sysibm/sysdummy1

    lg andreas

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Also es könnte ungefähr so aus sehen, du musst das nur für dein Programm adaptieren

    SQL:

    CREATE PROCEDURE USMOD_16/ORAPERIODDATES
    (IN FIRM VARCHAR(1)
    ,IN WKNR VARCHAR(3)
    ,IN ACTDATE DATE
    ,OUT PERIODE DECIMAL(6, 0)
    ,OUT FROMDATE DATE
    ,OUT TODATE DATE
    )
    LANGUAGE RPGLE
    DETERMINISTIC
    READS SQL DATA
    EXTERNAL NAME 'USMOD_16/ORAPERDAT'
    PARAMETER STYLE SQL

    ILERPG:

    hactgrp(*caller) dftactgrp(*no) datfmt(*iso)

    d RHFirma s 1 varying
    d RHWerk s 3 varying
    d RHActDate s d
    d RHPeriode s 6p 0
    d RHFromDate s d
    d RHToDate s d

    d RHFirma_i s 5i 0
    d RHWerk_i s 5i 0
    d RHActDate_i s 5i 0
    d RHPeriode_i s 5i 0
    d RHFromDate_i s 5i 0
    d RHToDate_i s 5i 0

    d SQLStateX s 5
    d FuncName s 139 varying
    d SpecName s 128 varying
    d DiagMsg s 70 varying
    c *entry plist
    c parm RHFirma
    c parm RHWerk
    c parm RHActDate
    c parm RHPeriode
    c parm RHFromDate
    c parm RHToDate

    c parm RHFirma_i
    c parm RHWerk_i
    c parm RHActDate_i
    c parm RHPeriode_i
    c parm RHFromDate_i
    c parm RHToDate_i

    c parm SQLStateX
    c parm FuncName
    c parm SpecName
    c parm DiagMsg

    Die _i-Variablen sind NULL-Flags
    -1 = NULL
    0 = Wert angegeben
    Für jeden Parameter gibt es zusätzlich einen NULL-Flagparameter.
    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
    Feb 2001
    Beiträge
    20.695
    @Andreas
    Funktionen können aber nur 1 Wert zurückgeben und, wie du schon sagst, muss ich einen Select verwenden.
    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

  6. #6
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    .. es sei denn, es ist eine UDTF (User defined Table Function.
    BTW: eine Function lässt sich immer in ein Select maskieren als: select myFunc(...) as hugo from sysibm.sysdummy1 und dann steht das Ergebnis in hugo drin.
    Ansonsten finde ich Parameterstyle general einfacher zu handeln, da ist die SQL Schnittstelle identisch mit der Programm Schnittstelle.

    D*B

    Zitat Zitat von Fuerchau Beitrag anzeigen
    @Andreas
    Funktionen können aber nur 1 Wert zurückgeben und, wie du schon sagst, muss ich einen Select verwenden.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Similar Threads

  1. MS Access ODBC mit JOIN: SQL FEHLER666
    By olafu in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 05-10-06, 08:13
  2. Timestamp Feld von MS Access abfragen
    By andreas.lundschien in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 05-09-06, 14:55
  3. ODBC-Zugriff mit MS Access - SQL - Userabfrage
    By User in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 26-01-05, 20:52
  4. iSeries + MS Access
    By reraru in forum IBM i Hauptforum
    Antworten: 13
    Letzter Beitrag: 18-01-05, 13:06
  5. MS Access 97 - DB2 Problem
    By Salvi in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 21-05-04, 07:44

Berechtigungen

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