View Full Version : string zusammenstellen
hallo leute ich möchte einen String zusammen stellen der so ausschaut
'TEST%'
wie bringe ich die einfachen hochkomma dazu?
such = %trim(bezeichnung) + '%';
mfg
redsky
such = '''' + %trim(bezeichnung) + '%''';
Allerdings, wenn du das Feld im SQL benötigst, wäre folgendes einfacher:
select ...
where suchfeld like trim(:such) ...
danke habs schon geschaft
mfg
redsky
Hallo Redsky
Damit entfällt das lästige Hochkomma zählen:
D HK C Const(x'7D')
such = HK + %trim(bezeichnung) + '%' + HK
Gruß Joe
D HK C Const(x'7D')
Das würde ich nicht machen!
x'7D' ist nämlich nicht international, d.h. in unterschiedlichen EBCDIC Codes werden verschiedene Hex-Werte verwendet.
Die Idee mit einer Konstanten zu arbeiten ist nicht schlecht, allerdings sollte sie dann wie folgt angegeben werden:
D HK C Const('''')
Birgitta
@Birgitta
Auch das löst nicht das Problem der Internationalität, da Programmkonstanten zur Compile-Zeit in die CCSID des Job's gewandelt werden und zur Laufzeit keinerlei Codewandlung mehr unterliegen.
Es ist also egal, ob man X'7D' oder '''' codiert.
Besser wäre es mit der Eingabe solcher Zeichen aus einer Datei zur Laufzeit zu arbeiten (e.g. Ladezeittabellen) oder aus MSGF's mit CCSID zu laden.
Allerdings gehört das Hochkomma zum invarianten Zeichensatz:
http://publib.boulder.ibm.com/infocenter/iseries/v5r3/ic2924/info/nls/rbagsinvariantcharset.htm
Da hat mir Hans Boldt vom Compiler Entwicklungs-Team in Toronto vor einiger Zeit etwas anderes gesagt! Er hat mich eindringlich gemahnt in RPG nicht x'7D' zu verwenden, sondern statt dessen das zwei einzelne Hochkommata!
Birgitta
Naja, wenn ich mir die invarianten Zeichensätze so ansehe, steht dem nichts im Wege mit X'7D' zu arbeiten. Allerdings gebe ich dir Recht, wenn man mit KATAKANA, DBCS o.ä. umgehen muss ;).
Im SBCS ist jedenfalls X'7D' immer das Hochkomma, und das war bisher auf allen EBCDIC-Maschinen so (Nixdorf, AS/400, /36, /38, ES/9000, ...).