Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.07.2010, 14:07   #11
Korben5E
Форумчанин
 
Аватар для Korben5E
 
Регистрация: 13.07.2010
Сообщений: 346
По умолчанию

Цитата:
Сообщение от Stranger333 Посмотреть сообщение
Stilet, все я правильно сделал. Говорю пример: у меня БД на 50 записей, и в нем есть ключевое поле. Я хочу добавить еще 1 запись, тоесть в первое поле (уникальное) ввожу код например "А11", потом заполняю еще 2 следующих поля (текстовые). Теперь мне надо нажать Кнопку Пост и она далжна проверить есть ли у меня уже такой код А11. Для кнопки пост я сделал и все хорошо работает, но если кликнуть мышкой на другой записи тода запись тоже проверится но выдаст системной меседж (акцесу), а мне надо что бы выводило собственный
сделать поле ключевым и у датасета есть событие OnPostError - обрабатывай ошибку там и выводи собственное сообщение.

так-же Post можно поместить в блок try
Non est culpa vin, sed culpa bibentis
Korben5E вне форума Ответить с цитированием
Старый 13.07.2010, 14:28   #12
Stranger333
Пользователь
 
Аватар для Stranger333
 
Регистрация: 19.05.2009
Сообщений: 98
По умолчанию

Вы имели ввиду такой код?
try
ADOQuery1.ExecSQL;
except on e:exception do
begin
if e.HelpContext = 5003022 then
ShowMessage('Вы пытаетесь ввести дублирующее значение в поле A');
end;
Stranger333 вне форума Ответить с цитированием
Старый 13.07.2010, 14:47   #13
Korben5E
Форумчанин
 
Аватар для Korben5E
 
Регистрация: 13.07.2010
Сообщений: 346
По умолчанию

Код:
procedure TfMainForm.DataSet1PostError(DataSet: TDataSet; E: EDatabaseError;
  var Action: TDataAction);
begin

if e......... then
 begin
    ShowMessage('Вы пытаетесь ввести дублирующее значение в поле A');
  Action := daAbort;
end;
end;
Non est culpa vin, sed culpa bibentis
Korben5E вне форума Ответить с цитированием
Старый 13.07.2010, 15:17   #14
Stranger333
Пользователь
 
Аватар для Stranger333
 
Регистрация: 19.05.2009
Сообщений: 98
По умолчанию

Korben5E, запустил проект пошагово, сюда даже не дошед выбил меседж с системной ошибкой, а не с той что нужно. Я ввел повторяющиися значения и нажал пост.
Код:
 procedure TfMainForm.DataSet1PostError(DataSet: TDataSet; E: EDatabaseError;
  var Action: TDataAction);
begin

if e.HelpContext = 5003022 then
 begin
    ShowMessage('Вы пытаетесь ввести дублирующее значение в поле A');
  Action := daAbort;
end;
end;
Stranger333 вне форума Ответить с цитированием
Старый 13.07.2010, 15:37   #15
Korben5E
Форумчанин
 
Аватар для Korben5E
 
Регистрация: 13.07.2010
Сообщений: 346
По умолчанию

а ты событие OnPostError у какого компонента обрабатывал?
Non est culpa vin, sed culpa bibentis
Korben5E вне форума Ответить с цитированием
Старый 13.07.2010, 15:41   #16
Stranger333
Пользователь
 
Аватар для Stranger333
 
Регистрация: 19.05.2009
Сообщений: 98
По умолчанию

Korben5E, DataSourse
Stranger333 вне форума Ответить с цитированием
Старый 13.07.2010, 15:44   #17
Korben5E
Форумчанин
 
Аватар для Korben5E
 
Регистрация: 13.07.2010
Сообщений: 346
По умолчанию

у DataSourse нет события OnPostError
Non est culpa vin, sed culpa bibentis
Korben5E вне форума Ответить с цитированием
Старый 13.07.2010, 15:51   #18
Stranger333
Пользователь
 
Аватар для Stranger333
 
Регистрация: 19.05.2009
Сообщений: 98
По умолчанию

DataSourse ->DataSet->OnPostError (ADOQuery)
Stranger333 вне форума Ответить с цитированием
Старый 13.07.2010, 15:58   #19
Korben5E
Форумчанин
 
Аватар для Korben5E
 
Регистрация: 13.07.2010
Сообщений: 346
По умолчанию

Цитата:
Сообщение от Stranger333 Посмотреть сообщение
DataSourse ->DataSet->OnPostError (ADOQuery)
мда....
выделите ADOQuery и посмотрите события в инспекторе объектов - там увидите OnPostError, дважды щелкните на ту строчку и там пишите.
Non est culpa vin, sed culpa bibentis

Последний раз редактировалось Korben5E; 13.07.2010 в 16:01.
Korben5E вне форума Ответить с цитированием
Старый 13.07.2010, 16:03   #20
Stranger333
Пользователь
 
Аватар для Stranger333
 
Регистрация: 19.05.2009
Сообщений: 98
По умолчанию

Тоже самое. Оно даже не доходит до этого события
Stranger333 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
копирование из определенной ячейки dbgrid в массив xaero93 БД в Delphi 3 08.12.2009 20:30
считать значение ячейки в dbgrid Consol БД в Delphi 3 03.09.2009 15:42
Выделение ячейки в DBGrid правой кнопкой мыши RIO БД в Delphi 2 20.08.2009 17:53
получить текст из заданной ячейки DbGrid furstenberg Компоненты Delphi 12 02.04.2009 00:54
Ячейки в DBGrid Eofol Компоненты Delphi 1 19.01.2008 13:41