Санитарный ввод для 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

Другие вопросы по тегам