Sanitize Input for UniData

514 views Asked by At

Can anyone provide a function to sanitize input for a UniData query? Or provide a list of things to remove?

3

There are 3 answers

0
Rob Sobers On BEST ANSWER

Here's a list of characters reserved by UniQuery:

 " double quote
 ' apostrophe (single quote)
 / forward slash
 [ left square bracket
 \ back slash
 ] right square bracket
 ^ caret

You can write a quick function that takes a string, does a SWAP for each of these characters--you can swap with the ISO 8859-1 decimal code (e.g., ] for ])--and returns the sanatized string.

3
Dan McGrath On

In addition to Rob Sobers answer also look for triple .'s/ These can be used as wildcards depending on the mode you are running in, much the same as [ and ].

EDIT for the comment:

I haven't got an instance in front of me to test this in, but I believe you can change it by explicitly setting the ECLTYPE to 'P' in the 'UOLOGIN' paragraph in the VOC file.

UOLOGIN is like LOGIN. It is called when a session is first created. The difference being that UOLOGIN is called for UniObjects sessions

0
JeffK On

Use CONVERT to drop the single illegal characters all at once, then SWAP to delete the illegal multi-character strings.

Building on the other answers, you get this:

CONVERT ( '"' : "'/[\]^" ) TO "" IN USER.DATA
SWAP "..." WITH "" IN USER.DATA