-
Das ist genau das Problem. QCLSCAN kann es nicht lösen, da der Schalter, wie gesagt, nicht die Suchzeichen sondern die zu durchsuchende Zeichenkette umwandelt (siehe Beschreibung).
Ist der Suchbegriff also in GrossKlein muss ich ihn vorher mit QDCXLATE in Grossbuchstaben wandeln.
Ansonsten wäre SQL besser:
where ... upper(mydbfield) like upper(trim(:myfield)) ...
-
Man könnte sich auch mit einer kleinen RPG-Prozedur mit embedded SQL behelfen:
Die folgende Prozedur bringt *Zeros zurück, wenn der übergebene String nicht gefunden wurde. Ansonsten wird die erste Position an der der Such-String steht zurückgegeben.
Groß- und Kleinschreibung wird dabei ignoriert, d.h. wenn nach 'Dagobert Duck' gesucht wird, wird sowohl 'DAGOBERT DUCK' als auch 'dAgObErT dUcK' gefunden:
PHP-Code:
P ScanLangIdShr B Export
D ScanLangIdShr PI 10I 0
D PPText 32740A varying Const
D PPSearch 32740A varying Const
D Position S 10I 0
*-------------------------------------------------------
C/EXEC SQL Set Option SrtSeq = *LangIdShr
C/End-EXEC
C/EXEC SQL Set :Position = PosStr(:PPText, :PPSearch)
C/End-EXEC
C Return Position
P ScanLangIdShr E
Birgitta
-
PosStr ist aber leider nicht so flexibel, da QCLSCAN auch Wildcards unterstützt. Like gibt da auch leider keine Position zurück, hat aber wiederum Wildcards.
-
Ob ich LIKE oder POSSTR verwende ist im Endeffekt egal!
Mit Like (inclusive Wildcards und unter Berücksichtigung der Sonderzeichen % und _) würde die Funktion wie folgt aussehen:
PHP-Code:
P Like B Export
D Like PI A
D PPText 32740A varying Const
D PPSearch 32740A varying Const
D PPEscape 1A Const Options(*NoPass)
D ParmEscape C const(3)
D Found S 1A
*----------------------------------------------------------
C/EXEC SQL Set Option SrtSeq = *LangIdShr
C/End-EXEC
C If %Parms >= ParmEscape
C/EXEC SQL
C+ Set :Found = Case when :PPText like :PPSearch escape :PPEscape
C+ then '1' else '0' End
C/END-EXEC
C else
C/EXEC SQL
C+ Set :Found = Case when :PPText like :PPSearch
C+ then '1' else '0' End
C/END-EXEC
C EndIf
C Return Found
P Like E
Birgitta
-
vielen Dank an Birgitta und Fuerchau
Hallo Birgitta und Fuerchau,
vielen Dank an Euch beide. Es funktioniert jetzt.
Similar Threads
-
By TMusolf in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 25-01-07, 12:42
-
By muadeep in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 03-01-07, 17:53
-
By jogisarge in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 22-11-06, 16:02
-
By ExAzubi in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 17-10-06, 16:48
-
By lyrics in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 29-08-06, 09:03
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks