[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Apr 2006
    Beiträge
    8

    Embedded SQL mit WHERE xyz in(?)

    Habe eine Abfrage definiert, die aus einem Alpha Feld über die Einschränkung IN Sätze selektieren soll.

    SELECT * from XYZ where FIRMA in (?)

    Das ? soll später mit einer string variable "strfirm" ersetzt werden, mit folgendem Inhalt:

    A', 'B

    Beim Start des SQL werden immer nur die Sätze ermittelt, bei denen im Feld FIRMA der Wert A steht, Felder mit B werden ignoriert (sind aber vorhanden).

    Werden die beiden Werte vertauscht
    B', 'A so werden nur die Datensätze mit FIRMA = B selektiert, die A wird ignoriert.

    Wie muss die string-Variable strfirm befüllt werden, damit das IN korrekt funktioniert und die Sätze A und B selektiert werden?

    Vielen Dank.

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Das geht so leider nicht, da ein "?" als IN (?) nur als ein Wert interpretiert wird.
    Du musst vorher wissen, wie viele Parameter da maximal vorkommen sollen und entsprechende Anzahl "?" vorsehen, also

    in (?, ?, ...)

    Für jedes "?" übergibst du dann deinen Wert. Nicht benötigte "?" befüllst du mit einem ungültigen Wert, z.B. X'FF'.

    Bei Verwendung von Hostvariablen sähe das dann so aus:

    in(: Var1, : Var2, ...)

    Var1 = Wert1
    Var2 = Wert2
    :
    VarN = *HIVAL
    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
    Aug 2001
    Beiträge
    2.928
    Statisch nur mit unterschiedlichen Host-Variablen.

    Dynamisch kannst Du natürlich tun und lassen, was Du willst, etwa so:
    Code:
    /Free
        MySQLStmt = 'Select .....' +
                       'From .....' +
                       'Where MyFld in (' + %Trim(StrFirm) + ') ... ';
        Exec SQL Prepare DynSQL from :MySQLStmt;
        Exec SQL Declare Csr Cursor for DynSQL;
        Exec SQL Open Csr;
        Do ....
           Exec SQL Fetch ...;
        EndDo;
        Exec SQL Close Csr;
     /End-Free
    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

Similar Threads

  1. Embedded SQL in VARPG
    By Squall in forum NEWSboard Programmierung
    Antworten: 23
    Letzter Beitrag: 18-10-06, 12:01
  2. embedded SQL in RPG
    By muadeep in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 03-08-06, 13:25
  3. Cobol-Programm mit Embedded SQL (SELECT CASE)
    By klausgkv in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 08-06-06, 13:47
  4. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43
  5. Character verbinden in Embedded SQL
    By e_sichert in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 03-05-06, 10:47

Berechtigungen

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