[NEWSboard IBMi Forum]
  1. #1
    cbe is offline [professional_User]
    Registriert seit
    May 2005
    Beiträge
    392

    Problem bei Abfrage bei Imbedded SQL

    Hallo allerseits,

    ich werd bald verrückt:

    Ich habe folgendes SQL:

    ...
    C/exec sql
    + declare chkbtc_sq1 dynamic scroll cursor with hold for
    + select * from chkbtc
    + where
    + btcabt like :a12abt
    + order by
    + btcpri, btcdat, btcnr
    + for read only
    C/end-exec
    *
    C/exec sql
    + close chkbtc_sq1
    C/end-exec
    C/exec sql
    + open chkbtc_sq1
    C/end-exec
    ...

    Gelesen wird in Schleife bis EOF:
    C/exec sql
    + fetch next from chkbtc_sq1 into
    + :btcnr, :btcapp, :btcabt, :btcpri, :btcdat, :btc
    + :btcaktnr, :btcaktpo, :btcaktty, :btcakttx,
    + :btccrtu, :btccrtd, :btcchgu, :btcchgd
    C/end-exec


    In der Datei gibt es Sätze mit BTCABT = 'WE' und 'EK'


    Bei A12ABT = '%WE% ' findet das Pgm die WE-Sätze, ok.
    Bei A12ABT = '%%E% ' findet das Pgm alle Sätze, ok.
    Bei A12ABT = '%E% ' findet das Pgm nichts. Warum??
    Bei A12ABT = '%% ' findet das Pgm auch nichts. Warum??

    Im interaktiven SQL finde ich alle Sätze wie es sein sollte.


    Das kann doch nicht so schwer sein...
    Kann mir da jemand helfen?

    Gruß
    Christian

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Zitat Zitat von cbe
    Hallo allerseits,

    ich werd bald verrückt:

    Ich habe folgendes SQL:

    ...
    C/exec sql
    + declare chkbtc_sq1 dynamic scroll cursor with hold for
    + select * from chkbtc
    + where
    + btcabt like :a12abt
    + order by
    + btcpri, btcdat, btcnr
    + for read only
    C/end-exec
    *
    C/exec sql
    + close chkbtc_sq1
    C/end-exec
    C/exec sql
    + open chkbtc_sq1
    C/end-exec
    ...

    Gelesen wird in Schleife bis EOF:
    C/exec sql
    + fetch next from chkbtc_sq1 into
    + :btcnr, :btcapp, :btcabt, :btcpri, :btcdat, :btc
    + :btcaktnr, :btcaktpo, :btcaktty, :btcakttx,
    + :btccrtu, :btccrtd, :btcchgu, :btcchgd
    C/end-exec


    In der Datei gibt es Sätze mit BTCABT = 'WE' und 'EK'


    Bei A12ABT = '%WE% ' findet das Pgm die WE-Sätze, ok.
    Bei A12ABT = '%%E% ' findet das Pgm alle Sätze, ok.
    Bei A12ABT = '%E% ' findet das Pgm nichts. Warum??
    Bei A12ABT = '%% ' findet das Pgm auch nichts. Warum??

    Im interaktiven SQL finde ich alle Sätze wie es sein sollte.


    Das kann doch nicht so schwer sein...
    Kann mir da jemand helfen?

    Gruß
    Christian
    Hast Du bei Deiner Interaktiven SQL-Abrage auch immer die *Blanks hinter dem Prozent-Zeichen oder nicht?
    So wie Deine Abfrage im embedded SQL aussieht, wird nach einer bestimmten Anzahl *Blanks am Ende des Feldes gesucht.

    Wenn dies nicht so sein sollte hast Du 2 Möglichkeiten
    1. Dein Feld a12abt muss eine variable Länge haben und die folgenden *Blanks müssen über %TRIMR entfernt werden.
    2. im SQL muss die Funktion RTRIM verwendet werden, um die folgenden *Blanks zu entfernen, also like TRIMR(:A12ABT)

    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

  3. #3
    cbe is offline [professional_User]
    Registriert seit
    May 2005
    Beiträge
    392
    klasse, genau das wars

    An sowas kann man Stunden verbringen...

    Vielen Dank!

Similar Threads

  1. Einfache Abfrage in COBOL/400 mit EXEC SQL
    By AS400-Anfänger in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 27-06-06, 13:18
  2. Abfrage nach <> Ziffern in SQL
    By behmer in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 29-05-06, 12:52
  3. problem mit eigener sql function
    By Stefan_Sk in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 26-05-06, 16:37
  4. SQL Problem
    By Lucky4712 in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 24-05-06, 15:57
  5. SQL Abfrage Problem
    By HoScHiE in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 04-10-01, 14:24

Berechtigungen

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