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

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

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

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

и не выпуская

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

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

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

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

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

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

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

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

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


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