Sanitize Input для UniData - PullRequest
       37

Sanitize Input для UniData

2 голосов
/ 30 октября 2009

Может ли кто-нибудь предоставить функцию для очистки ввода для запроса UniData? Или предоставить список вещей для удаления?

Ответы [ 3 ]

3 голосов
/ 04 декабря 2009

Используйте CONVERT для одновременного удаления одиночных недопустимых символов, затем SWAP для удаления недопустимых многосимвольных строк.

Опираясь на другие ответы, вы получите это:

CONVERT ( '"' : "'/[\]^" ) TO "" IN USER.DATA
SWAP "..." WITH "" IN USER.DATA
2 голосов
/ 14 ноября 2009

В дополнение к ответу Роба Соберса также ищите тройные . 's / Они могут использоваться в качестве подстановочных знаков в зависимости от режима, в котором вы работаете, почти так же, как [и].

РЕДАКТИРОВАТЬ для комментария:

У меня нет экземпляра, чтобы проверить это, но я считаю, что вы можете изменить его, явно указав для ECLTYPE значение «P» в абзаце «UOLOGIN» в файле VOC.

UOLOGIN похож на ЛОГИН. Он вызывается при первом создании сеанса. Разница в том, что UOLOGIN вызывается для сессий UniObjects

2 голосов
/ 30 октября 2009

Вот список символов, зарезервированных UniQuery:

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

Вы можете написать быструю функцию, которая принимает строку, выполняет SWAP для каждого из этих символов - вы можете поменять местами с десятичным кодом ISO 8859-1 (например, ] для ]) - и возвращает очищенную строку.

...