Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Форма редактирования грида, а также вставки. Читая Хомоненко-Гофмана... 
:(
    Опции темы
malor
  Дата 31.10.2011, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 632
Регистрация: 17.11.2006

Репутация: нет
Всего: нет



Действуем по аналогии с изложенным в книге
"Работа с базами данных в Delphi" Хомоненко А., Гофман В., 2005 г., стр. 227 - 233.
У элемента TDBEdit прописан DataSource и DataField.

user posted image

Сделал окно вставки.
В тело процедуре 
procedure TFormInsert.btOKClick(Sender: TObject);
begin
  // .............
end;

что забить, чтоб новая запись появилась в гриде?

Delphi XE

Это сообщение отредактировал(а) malor - 31.10.2011, 21:57

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  BreakDownProject.zip 122,95 Kb
PM MAIL   Вверх
Akella
Дата 31.10.2011, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



dataset.post?

Добавлено через 2 минуты и 38 секунд
обычно в книгах есть полный код + примеры на диске или дискете
может быть код сохранения на соседней странице?
PM MAIL   Вверх
Данкинг
Дата 31.10.2011, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Видимо, обновить грид надо, хотя должно сразу появляться, по логике.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Keeper89
Дата 1.11.2011, 02:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 1
Всего: 58



Судя по гриду Insert или Append сделан не был.


--------------------
PM MAIL WWW   Вверх
malor
  Дата 1.11.2011, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 632
Регистрация: 17.11.2006

Репутация: нет
Всего: нет



Теперь выглядит так :
user posted image

Есть замечания ? (в плане удаления/редактирования/внесения)
 
P.S. 
Цитата(Akella @  31.10.2011,  23:35 Найти цитируемый пост)
Обычно в книгах есть полный код + примеры на диске или дискете
Может быть код сохранения на соседней странице? 
Та книга шла без диска.
Нашел код в инете по адресу:
http://www.delcb.com/partners/articles/sta...194484&p=21
У формы ввода - единственная описанная процедура это FormCreate():

Код
procedure Tfmlnput.FormCreate(Sender: TObject);
begin
  dbeName.DataSource := fmStore.dsStore; 
  dbeName.DataField := \\\'SJStame\\\';
  dbeUnit.DataSource := fmStore.dsStore;
  dbeUnit.DataField := \\\'SJJnit\\\';
  dbePrice.DataSource := fmStore.dsStore;
  dbePrice.DataField := \\\'S_Price\\\';
  dbeNote.DataSource := fmStore.dsStore;
  dbeNote.DataField := \\\'S_Note\\\';
  btnOK.ModalResult := mrOK;
  btnCancel.ModalResult := mrCancel;
end;


Это сообщение отредактировал(а) malor - 1.11.2011, 10:12

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  BreakDownProject_01112011.zip 120,32 Kb
PM MAIL   Вверх
CROTishka
Дата 1.11.2011, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 192
Регистрация: 30.7.2009

Репутация: 1
Всего: 2



Цитата

Есть замечания ?

Вы конечно ещё в школе/институте, но исключительные случаи тоже надо рассматривать же!
Что например у вас будет при нажатии кнопки удалить, если в датасете пусто? 
PM MAIL   Вверх
malor
  Дата 1.11.2011, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 632
Регистрация: 17.11.2006

Репутация: нет
Всего: нет



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

Код
procedure TFormEditBranch.btCancelClick(Sender: TObject);
begin

  edBranch.Text := NULL;
end;


user posted image

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

Но если пойти по такому пути:
Код
procedure TFormEditBranch.btCancelClick(Sender: TObject);
begin

  //edBranch.Text := NULL;
  DataModule1.ADOTableBranch.Cancel;
end;

Вроде сделало отмену, как и хотелось. Подводных камней нет..?

Это сообщение отредактировал(а) malor - 2.11.2011, 09:01
PM MAIL   Вверх
Akella
Дата 6.11.2011, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(malor @  1.11.2011,  16:58 Найти цитируемый пост)
Некоторые пишут, что для вставки новой записи следует использовать форму не с элементами TDBEdit, а с обычными TEdit: 

да, я так делаю smile

Пишущая транзакция должна быть максимально короткой по времени. Другими словами, время редактирования должно быть максимально коротким. В твоём случае получается так: пользователь открыл запись на редактирование и пошёл кофе пить, а другой пользователь не может отредактировать/удалить эту запись, т.к. она заблокирована первым, а если на сервер проблемы в момент редактирования? Будет #опа.

Добавлено через 45 секунд
Цитата(malor @  1.11.2011,  09:51 Найти цитируемый пост)
Теперь выглядит так :


Ты не внял моим замечаниям :(
Ну и ладно. Удачи.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0487 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.