Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.117.81.240] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Всем привет есть такой код редактирования
cdsF.Edit; cdsFMNo.AsString:=edMNo.Text; cdsFKomu.AsString:=edEmployee.Text; cdsFDataVyda4i.AsString:=edData.Text; cdsF.Post; поле cdsFMNo целого типа. При случайном присваивании ему не числового значения в строке cdsFMNo.AsString:=edMNo.Text; происходит ошибка вида '<значение> is not valid integer for field MNo' Вопрос в том где ее можно перехватить и обработать? В TClientDataset есть события OnPostError и OnEditError оба не реагируют на данное исключение. Можно конечно заключить данный код в try..except но хотелось бы все ошибки данных обрабатывать самим TClientdataset возможно ли это? |
Сообщ.
#2
,
|
|
|
Читать про try-except
|
Сообщ.
#3
,
|
|
|
Цитата Павел Калугин @ Читать про try-except про try..except я все знаю и уже давно сына |
Сообщ.
#4
,
|
|
|
Цитата Delfin4ik @ При случайном присваивании ему не числового значения в строке Случайностей быть не должно. Контролируй ввод, например по маске. |
Сообщ.
#5
,
|
|
|
Цитата Bas @ Тот же TEdit можно сделать NumericOnly (в свойствах смотри, точное название не помню). Случайностей быть не должно. Контролируй ввод, например по маске. |
Сообщ.
#6
,
|
|
|
Цитата Delfin4ik @ Цитата Павел Калугин @ Читать про try-except про try..except я все знаю и уже давно сына о как.. Какой у нас старый Дельфинчик шестидесяти лет отроду завелся... Ладно это лирика Ну раз знаешь про try..except все так "оберини" им post и внутри обрабатывай ошибку Ну или, как СанИваныч и Bas верно пишут, не допускай ввода фигни 1. разрешить в edMNo ввод только чисел (например в событии OnKeyPressed обработку сделать) 2. раз поле числовое нечего ему asstring текст совать. есть же AsInteger, например |
Сообщ.
#7
,
|
|
|
Цитата Павел Калугин @ Павел! Когда-то я нашего уважаемого Борисыча сынком обозвал! Какой у нас старый Дельфинчик шестидесяти лет отроду завелся ЗЫ - не удержался, сорри за флуд... |
Сообщ.
#8
,
|
|
|
Павел Калугин,#SI# - Использование преобразования очень помогает, вместо "неявного" преобразования
|
Сообщ.
#9
,
|
|
|
Bas, я про это и аписал вторым пунктом
|
Сообщ.
#10
,
|
|
|
man strtointdef
|
Сообщ.
#11
,
|
|
|
решение было принято такое: недопускать занесения неправильных значений.
|
Сообщ.
#12
,
|
|
|
То есть "asstring" оставили?
|
Сообщ.
#13
,
|
|
|
Цитата Павел Калугин @ То есть "asstring" оставили? ну да оставил, в редакторе же текст а поле целого типа. для проверки значения решил поюзать валидатор из JEDI VCL |
Сообщ.
#14
,
|
|
|
Цитата Delfin4ik @ Delfin4ik поле.asinteger =strtoint(edit.text) Так ты сразу отловишь косяки ввода. А они будут, как ни рисуй защиту от дурака. |
Сообщ.
#15
,
|
|
|
Цитата Павел Калугин @ Если речь о целых числах, то защиту надо просто включить:как ни рисуй защиту от дурака Цитата #SI# @ TEdit можно сделать NumericOnly (в свойствах смотри, точное название не помню) |