Санитарный ввод для UniData
Кто-нибудь может предоставить функцию для очистки ввода для запроса UniData? Или предоставить список вещей для удаления?
3 ответа
Вот список символов, зарезервированных UniQuery:
" double quote
' apostrophe (single quote)
/ forward slash
[ left square bracket
\ back slash
] right square bracket
^ caret
Вы можете написать быструю функцию, которая принимает строку, делает SWAP
для каждого из этих символов - вы можете поменять местами десятичный код ISO 8859-1 (например, ]
за ]
)- и возвращает очищенную строку.
Используйте CONVERT, чтобы удалить сразу все недопустимые символы, затем SWAP, чтобы удалить недопустимые многосимвольные строки.
Основываясь на других ответах, вы получите это:
CONVERT ( '"' : "'/[\]^" ) TO "" IN USER.DATA
SWAP "..." WITH "" IN USER.DATA
В дополнение к Робу Соберсу ответ также искать тройной .
's/ Они могут использоваться в качестве подстановочных знаков в зависимости от режима, в котором вы работаете, почти так же, как [и].
РЕДАКТИРОВАТЬ для комментария:
У меня нет экземпляра, чтобы проверить это, но я думаю, что вы можете изменить его, явно установив ECLTYPE на "P" в абзаце "UOLOGIN" в файле VOC.
UOLOGIN - это как ЛОГИН. Он вызывается при первом создании сеанса. Разница в том, что UOLOGIN вызывается для сессий UniObjects