Как показать метку, когда пользователь вводит неподдерживаемое значение в текстовое поле? - PullRequest
0 голосов
/ 23 сентября 2019

Я настраиваю базу данных, и мне нужно знать, вводит ли пользователь неправильное значение, показывая метку.Моя база данных поддерживает только символ (длина 1), и я хочу, чтобы когда пользователь вводил любой символ длиной более 1, метка отображала неверный ввод или что-то подобное, как я могу отловить такую ​​ошибку или исключение?

Я пытался отловить исключения, но я хочу более конкретный подход, потому что перехват SQLExceptions просто перехватывает все возможные ошибки

Когда я ввожу недопустимое значение, эта ошибка показывает:

org.sqlite.SQLiteException: [SQLITE_CONSTRAINT]Прервать из-за нарушения ограничения (УНИКАЛЬНОЕ ограничение не выполнено: customer.age)

1 Ответ

0 голосов
/ 23 сентября 2019

Единственное, что вы можете сделать (в базе данных) - это триггер INSERT с опцией INSTEAD OF.

CREATE TRIGGER trigger_name 
INSTEAD OF INSERT
   ON table_name
BEGIN
   your SQL code here
END;

Он заменит фактический оператор вставки, и вы можете манипулировать фактическими данными с NEWТаблица.

IF LENGTH(NEW.string) > 1 THEN --INSERT my label

В противном случае вы можете контролировать длину строки в вашем приложении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...