Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ADO.beforpost - ? / 13 сообщений из 13, страница 1 из 1
28.01.2003, 15:57
    #32097532
Cooper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO.beforpost - ?
Есть ДБгрид. В нем два поля. Юзер может редактировать тока второе. Как сделать проверку перед применением изменения - В случае успеха не изменять данные.

Ну, например, условие - запретить ввод во второе поле значения, равное значению в первом поле.

Спасибо.
...
Рейтинг: 0 / 0
28.01.2003, 16:34
    #32097564
guest009
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO.beforpost - ?
Повешай проверку на событие OnChange конкретного поля и не выпуская пока не введет правильно или не отменит изменения
...
Рейтинг: 0 / 0
28.01.2003, 16:41
    #32097571
Cooper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO.beforpost - ?
на событие OnChange

Чет я не нашёл такого события у Грида

и не выпуская

А как не выпускать?
...
Рейтинг: 0 / 0
29.01.2003, 16:28
    #32098315
Cooper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO.beforpost - ?
Народ, помогите, вопрос ещё актуален.

Спасибо.
...
Рейтинг: 0 / 0
29.01.2003, 16:39
    #32098330
tygra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO.beforpost - ?
Ну на ADO.BeforePost и повесь проверку.

Если не прошла - exception
...
Рейтинг: 0 / 0
29.01.2003, 20:19
    #32098502
Cat2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO.beforpost - ?
DataSource.OnChange

BeforPost - лучше
...
Рейтинг: 0 / 0
30.01.2003, 04:52
    #32098549
StarWind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO.beforpost - ?
еще один вариант, более жесткий, если база сама будет проверять это (если ситуация позволяет, то это даже надежнее). Например реализовать это в тригере БД
...
Рейтинг: 0 / 0
30.01.2003, 13:36
    #32098813
Cooper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO.beforpost - ?
Делаю так:

procedure TForm.ADOStoredProcBeforePost(DataSet: TDataSet);
begin
if условие then
begin
Всяко-разно;
..................
raise exception.Create('Сделано Всяко-разно');
end
end

Но нехоцца, чтобы на экран выскаквало это сообщение. Уж больно оно недружелюбно выглядит (чуть со стула не упал), да и не к чему.

Как быть?
...
Рейтинг: 0 / 0
30.01.2003, 14:58
    #32098902
tygra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO.beforpost - ?
Никак - для того, чтобы прервать post, нужен exception.

Иначе нужно при редактировании значения проверять в отдельном контроле.
...
Рейтинг: 0 / 0
30.01.2003, 15:42
    #32098937
Cooper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO.beforpost - ?
Так нужно проверять условие перед применением изменений в Гриде. А при редактировании - это после каждого изменения (нажатия клавиши)? Чет не могу сообразить как сделать.

Дело в том, что это условие должно срабатывать довольно часто. И к тому же оно не является ошибкой. А получается, что юзер будет постоянно видеть это ужасное сообщение, как будто произошла ошибка. :(
...
Рейтинг: 0 / 0
30.01.2003, 15:56
    #32098954
Cooper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO.beforpost - ?
А можно сделать, чтобы на сообщении красный круг с крестом не рисовался?
...
Рейтинг: 0 / 0
30.01.2003, 21:10
    #32099150
Guest1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO.beforpost - ?
>Чет я не нашёл такого события у Грида
Ну нашел где искать.
У набора данных, если в fields editor явно добавлены поля, для каждого поля есть событие OnChange. Вот там и пишешь свою проверку.
Перевожу: Набор данных (DataSet) может быть представлен компонентами: TTable, TQuery, TStoredProc и т.д.
Надеюсь, что такое редактор полей ты догадался.
...
Рейтинг: 0 / 0
02.02.2003, 18:54
    #32100097
АМС
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO.beforpost - ?
Для того, чтобы выдать исключение без сообщения, используйте процедуру Abort();
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ADO.beforpost - ? / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]