[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Apr 2004
    Beiträge
    105

    LIKE keyword in Embedded SQL

    Ich versuche in einer Datei mittels des Namens eine dazugehörige Nummer herauszufinden.
    Das Statement würde interaktiv so aussehen:
    PHP-Code:
    SELECT nummername 
    FROM datei        
    WHERE name like 
    'Meier%' 
    Wenn ich aber eine RPG-Variable (search) verwende und mein Service-Programm aufrufe, findet er keine Daten.
    Der Inhalt von search ist 'Meier%'.
    PHP-Code:
    c/Exec SQL                                                              
     c
    + Declare C01 Cursor for
     
    c+  Select nummername
     c
    +  From datei
     c
    +  Where name LIKE :search                 
     c
    +  For Read Only                                          
     c
    /End-Exec 

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.245
    Der Grund ist, dass die Variable nach dem % noch Leerzeichen enthält die natürlich mitgesucht werden. Folgende Ergänzung:

    ... like trim(:search) ...

    Damit werden Leerzeichen eliminiert.
    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
    Apr 2004
    Beiträge
    105
    Vielen Dank!
    Mit %trim hatte ichs schon probiert, aber das hat einen Fehler ergeben. Mit trim noch nicht.
    Gibt es irgendwo eine Hilfe vielleicht ein RedBook über embeddet Sql in RPG?

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.245
    Das hat nichts mit embedded SQL zu tun sondern gehört zu SQL !
    %trim() ist eine RPG-Builtin-Funktion
    trim() ist eine SQL-Funktion

    Am besten lädst du dir das SQL-Reference-Handbuch mal runter (pdf):
    http://publib.boulder.ibm.com/iserie...f/rzahfli0.htm
    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
    Aug 2001
    Beiträge
    2.875
    Zitat Zitat von woki
    Vielen Dank!
    Mit %trim hatte ichs schon probiert, aber das hat einen Fehler ergeben. Mit trim noch nicht.
    Gibt es irgendwo eine Hilfe vielleicht ein RedBook über embeddet Sql in RPG?
    Hallo Woki,

    die Scalare Funktion TRIM kann man sich auch sparen, wenn man die Hostvariable als ein Feld mit Variabler Länge definiert. Dann werden die folgenden Zeichen ignoriert.

    Alternativ kann man auch statt LIKE die Scalare Funktion POSSTR zu verwenden. Auch hier muss man entweder mit der Scalaren Funktion TRIM oder einer Host-Variable mit variabler Länge arbeiten. Die Funktionalität der Funktion POSSTR entspricht der Funktionalität des OpCodes SCAN bzw. der Built-In-Function %SCAN in RPG.

    Beispiel:
    PHP-Code:
    D HstName         S             50A   varying         
     
    *--------------------------------------------------------
    C                   Eval      HstName '%Meier%'   
                                                        
    C/Exec SQL                                          
    C
    + Declare CsrC1 Cursor for                         
    C+   Select  Name from Adresse                     
    C
    +     Where Name Like :HstName        
    C
    /End-Exec      

    C                   
    Eval      HstName 'Huber'   

    C/Exec SQL                                              
    C
    + Declare CsrC2 Cursor for                             
    C+   Select  Name from Adresse                         
    C
    +     Where PosStr (Name, :HstName) > 0   
    C
    /End-Exec 
    Unter folgenden Quellen findest Du Informationen über Embedded SQL:
    1. Who Knew You Could Do That with RPG IV? A Sorcerer's Guide to System Access and More
    2. Embedded SQL Programming
    3. Embedded SQL

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. 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
  •