Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как обработать ошибку ввода?  [new]
Eugenia79
Member

Откуда:
Сообщений: 27
Имеется текстовое поле, в которое нужно вводить только число.
На уровне ввода нужно встроить проверку, если преобразование текста в число вызывает ошибку, то выдавать пользователю сообщение "неверный формат".
Помогите это написать при помощи MSSQL?
5 май 16, 12:57    [19138033]     Ответить | Цитировать Сообщить модератору
 Re: Как обработать ошибку ввода?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Eugenia79
Помогите это написать при помощи MSSQL?

Никак.MSSQL ни имеет команд для ввода данных. Для этого пишут клиентские программы.
5 май 16, 12:59    [19138051]     Ответить | Цитировать Сообщить модератору
 Re: Как обработать ошибку ввода?  [new]
Eugenia79
Member

Откуда:
Сообщений: 27
у нас есть клиентская программа, и она умеет выводить сообщения, которое возвращает тригер (@ERRMSG)
Мне надо только сформировать это сообщение.
5 май 16, 13:41    [19138314]     Ответить | Цитировать Сообщить модератору
 Re: Как обработать ошибку ввода?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Eugenia79
и она умеет выводить сообщения, которое возвращает тригер (@ERRMSG)
Мне надо только сформировать это сообщение.

Триггер не может возвращать сообщения. И тем более какие то переменные @ERRMSG
5 май 16, 13:44    [19138327]     Ответить | Цитировать Сообщить модератору
 Re: Как обработать ошибку ввода?  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4902
Eugenia79
у нас есть клиентская программа, и она умеет выводить сообщения, которое возвращает тригер (@ERRMSG)
Мне надо только сформировать это сообщение.


Проверка формата данных должна осуществляться на стороне клиентской программы. Триггера и вообще БД этим заниматься не должны.
5 май 16, 13:54    [19138390]     Ответить | Цитировать Сообщить модератору
 Re: Как обработать ошибку ввода?  [new]
Eugenia79
Member

Откуда:
Сообщений: 27
Уточню:

В тригере на вставку таблицы есть такой текст:
if update(EV_NAME)
update MOTCONSU set MOTCONSU_EV_ID = inserted.MOTCONSU_ID
from inserted inner join MOTCONSU on MOTCONSU.MOTCONSU_ID = inserted.MOTCONSU_ID
where isnull(inserted.EV_NAME , '') <> ''

if not exists( <здесь некий select> )

begin
select @ERRNO = 100000, @ERRCHILD = 'Невозможно создать запись', @ERRPARENT = 'ED_LEVEL_ACCESS',
@ERRMSG='Невозможно создать запись.'
goto error
end

мне нужно вместо "if not exists" что-то типа "если cast(текст as numeric(20,6) ) возвращает ошибку".
5 май 16, 14:19    [19138484]     Ответить | Цитировать Сообщить модератору
 Re: Как обработать ошибку ввода?  [new]
Glory
Member

Откуда:
Сообщений: 104751
TRY_CAST/TRY_CONVERT
5 май 16, 14:24    [19138515]     Ответить | Цитировать Сообщить модератору
 Re: Как обработать ошибку ввода?  [new]
_djХомяГ
Guest
А как (и в какой момент) содержимое контрола передастся в ваш мега триггер?
5 май 16, 14:25    [19138520]     Ответить | Цитировать Сообщить модератору
 Re: Как обработать ошибку ввода?  [new]
Eugenia79
Member

Откуда:
Сообщений: 27
_djХомяГ
А как (и в какой момент) содержимое контрола передастся в ваш мега триггер?
в IF UPDATE я могу передать значение поля.
5 май 16, 14:30    [19138560]     Ответить | Цитировать Сообщить модератору
 Re: Как обработать ошибку ввода?  [new]
Eugenia79
Member

Откуда:
Сообщений: 27
Glory
TRY_CAST/TRY_CONVERT
наверное, это то что надо, спасибо!
5 май 16, 14:33    [19138577]     Ответить | Цитировать Сообщить модератору
 Re: Как обработать ошибку ввода?  [new]
_djХомяГ
Guest
Eugenia79
Glory
TRY_CAST/TRY_CONVERT
наверное, это то что надо, спасибо!

При этом версия сервера >=2012
5 май 16, 14:35    [19138593]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить