[NEWSboard IBMi Forum]

Thema: sqlrpgle

Hybrid View

  1. #1
    Registriert seit
    Apr 2009
    Beiträge
    69

    sqlrpgle

    Hallo zusammen

    ich stehe wieder mal vor einem Problem mit SQL in RPG
    Für einen Exec prepare benötige ich eine Sql String. (unten)
    Dabei sind die Felder in RPG mit

    ALARM_DATE D(10*ISO-) 72D 240M
    ALWNULL

    +

    SMALLDAT D(10*ISO-) 60D 194M 198


    definiert.

    Bei der Compilierung bekomme ich den Fehler "Operanden sind mit der Art des Operators nicht kompatibel"

    Ich bin mir nicht sicher ob der Syntax im String richtig ist oder gibt es hier noch eine Funktion die ich mit hinein bringen muß?

    h_sqlcommand = ' +
    SELECT * from Lib/File where (xxxxxx = 30 or +
    xxxxxxx = 31) and File_date = ' + smalldat +
    ' order by xxxxxxx +
    ';

    exec sql prepare sel1 from :h_sqlcommand;


    Gruß co_steffl

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Stringaufbereitung:

    h_sqlcommand = ' +
    SELECT * from Lib/File where (xxxxxx = 30 or +
    xxxxxxx = 31) and File_date = ''' + %char(smalldat:*iso) +
    ''' order by xxxxxxx +
    ';

    Das Datum mus im ISO-Format als Zeichenkette übergeben werden.
    Wenn File_date auch ein DATE-Feld ist, wird automatisch gecastet.

    Achte auf die 3 Hochommata !
    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 2009
    Beiträge
    69
    Hallo Mr. Fuerchau,

    danke für den Tipp! Wo lernt man so was? Darf ich noch was fragen?
    Was heißt gecastet?

    Gruß
    Co_steffl

  4. #4
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Zitat Zitat von co_steffl Beitrag anzeigen
    Wo lernt man so was?
    - Im Forum
    - SQL(DB2) Kurse
    - SQL Referenzhandbuch der IBM

    Zitat Zitat von co_steffl Beitrag anzeigen
    Was heißt gecastet?
    Ein CAST ist eine Konvertierung z.B. von Integer in Character.

  5. #5
    Registriert seit
    Apr 2009
    Beiträge
    69
    Dank an das Forum

    co_steffl

  6. #6
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Du kannst das aber auch mittels Parameter lösen. Dann ersparrst dir das, da die Konvertierung vom System übernommen wird.

    Code:
    h_sqlcommand = ' +
    SELECT * from Lib/File where (xxxxxx = 30 or +
    xxxxxxx = 31) and File_date = ?' order by xxxxxxx +
    ';
    
    exec sql prepare sel1 from :h_sqlcommand;
    
    exec sql Declare c1 cursor for sel1;
    
    exec sql open c1 using :smalldat;
    lg Andreas

Similar Threads

  1. Anzeigervariable im SQLRPGLE
    By Jenne in forum NEWSboard Programmierung
    Antworten: 10
    Letzter Beitrag: 06-06-07, 10:10
  2. sqlrpgle
    By guru30 in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 22-02-06, 14:53
  3. SQLRPGLE
    By mk in forum NEWSboard Programmierung
    Antworten: 7
    Letzter Beitrag: 17-11-05, 09:48
  4. *zoned bei SQLRPGLE Programm
    By Stefan_Sk in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 12-07-05, 13:04
  5. Suche SQLRPGLE Beispiel-Code
    By WeKaSys in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 15-10-04, 11:19

Berechtigungen

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