Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Очистка TDBEdit на форме вставки записи. Идеальный подход.  (Прочитано 9957 раз)
0 Пользователей и 1 Гость смотрят эту тему.
malor
Опытный

ru
Offline Offline

« : 02-11-2011 06:49 » new

Если пользователь нажал кнопку "Добавить" - у него открылось диалоговое коно, в окне поле типа TDBEdit. Он в него что-то ввел,
затем передумал добавлять запись и нажал отмена. Как обнулить поле TDBEdit?

Сейчас у меня так:
Код: (Delphi)
procedure TFormEditBranch.btCancelClick(Sender: TObject);
begin
  //edBranch.Text := NULL;
  DataModule1.ADOTableBranch.Cancel;
end;

Но некоторые пишут, что для вставки новой записи следует использовать форму не с элементами TDBEdit, а с обычными TEdit:
Добавление информации из DBEdit в DBGrid нажатием кнопки
Ввод данных через DBEdit

Что думаете по этому поводу?
Записан
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 02-11-2011 07:29 » 

Наверное это будет зависеть от типа приложения.  Если база локальная и используется монопольно, то можно и DBEdit, но следует позаботиться о проверке достоверности данных и их защите. (imho)
Записан

С уважением, Oldy.
malor
Опытный

ru
Offline Offline

« Ответ #2 : 02-11-2011 08:10 » 

Уже одного лишь факта нелокального взаимодействия с БД достаточно, чтобы отказаться от использования TDBEdit?
Записан
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 02-11-2011 08:33 » 

По моему скромному разумению - да. Потенциальный источник проблем.
Записан

С уважением, Oldy.
malor
Опытный

ru
Offline Offline

« Ответ #4 : 02-11-2011 08:55 » 

1) Убрать с формы элементы TTable, заменить их на TQuery.
2) На формах вставки и редактирования водрузить TEdit-компоненты.
3) Изменения записей в БД и вставку новых поручить ExecSQL.
4) После изменений в таблицах обновлять содержимое соответствующих наборов данных (и как следствие гриды отобразят актуальное содержимое).

Такой подход более правилен в случае удаленных БД?
Записан
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 02-11-2011 09:14 » 

Именно так. Плюс пересмотреть отношение к DBGrid'ам (необходимость отображать большие наборы данных) и бизнес-логику, по возможности, перенести на SQL-сервер.
« Последнее редактирование: 02-11-2011 09:17 от Oldy » Записан

С уважением, Oldy.
malor
Опытный

ru
Offline Offline

« Ответ #6 : 02-11-2011 09:31 » 

>>отношение к DBGrid'ам (необходимость отображать большие наборы данных)

Это вы про использование директивы LIMIT в тексте SQL-запроса ?
Записан
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 02-11-2011 09:40 » 

Да. Можно сказать и так. Определитесь - насколько необходимо показывать пользователю большой объем данных.

Например:
TQuery.Text := 'select * from table'; // в table несколько миллионов записей.
TQuery.Active := True;
Все это отображается в DBGrid и пользователь решил глянуть "что в конце?".
« Последнее редактирование: 02-11-2011 09:56 от Oldy » Записан

С уважением, Oldy.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines