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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2017, 15:27   #1
Armageddets
Форумчанин
 
Регистрация: 30.06.2012
Сообщений: 145
По умолчанию БД Access сообщение при удалении строки со связями

Доброго времени суток, уважаемые эксперты. Есть БД на MS Access. Между таблицами организованы связи. Работаю с ней через DBNavigator. В этом навигаторе есть кнопка удаления текущей строки (delete). При ее нажатии вылетает запрос с предупреждением об удалении на английском языке. Задача состоит в том, чтобы сделать надпись там на русском языке мол "Вы уверены, что хотите удалить строку?".

Есть несколько идей по этому поводу.

1) Например перекрыть эту кнопку обычным баттоном и в нем прописать запуск новой формы (которую я создам) с удалением строки. Но в этом случае я не могу удалить строку, поскольку вылетает ошибка, что нельзя удалить строку, поскольку в ней есть связи с другой таблицей.

2) Можно прописать код при клике по Навигатору такого рода:
Код:
  if Button=nbDelete then
  begin
    try
      if Application.MessageBox(Pchar('Вы действительно хотите удалить строку?'),'Внимание',MB_OKCANCEL)=id_OK then
      begin
      DataSource1.DataSet.Delete;
      DataSource1.DataSet.Refresh;
      end;
    except
    end;
  end;
Но в таком варианте будет и старый вариант сообщения вылетать и мой новый. То есть мне надо как-то запретить появление старого сообщения. Ну и с самим удалением, мне кажется, тоже будет ошибка как в предыдущем варианте.

3) Я не знаю возможно ли вообще такое реализовать, но... Можно ли как-то в появляемом сообщении перед его показом там задать ему русские символы?

Заранее спасибо всем, кто хоть что-то посоветует.

Сам проект прилагаю:
ПРОЕКТ
Armageddets вне форума Ответить с цитированием
Старый 26.01.2017, 15:57   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

2) если работать не в среде то никаких "старых" собщений не будет.
НО ...
и пользователь никак не узнает почему запись которую он уверенно удалял так и осталась на своем месте.
И будет утверждать что программа не работает.

обычно делается так
Код:
try 
....
except
on e: EDataBaseError  //при ошибках работы с БД
       do ShowMessage('Извините, удалить не удалось' //информируем "неопытных" пользователей
               + LineBreak  + e.Message //сообщаем "подробности" почему для "опытных админов" и программистов
       );
end;
теперь любой пользователь знает что произошло и в случае необходимости(и желания) может информативно сообщить разработчику.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 26.01.2017 в 16:06.
evg_m на форуме Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При удалении строки слетают формулы Enkoff Microsoft Office Excel 5 28.09.2011 17:16
access violation at address при удалении страницы с TTabbedNoteBook [MoNAMur] Компоненты Delphi 3 06.07.2011 12:28
Обновление формул при добавлении (удалении строки) transgd Microsoft Office Excel 8 12.05.2011 13:10
При удалении строки, нарушается ссылка на нее transgd Microsoft Office Excel 14 23.08.2010 13:20
Как вывести сообщение типа "внимание" при удалении записи из БД Alex_Sokolov Помощь студентам 7 06.01.2009 13:50