Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 01.09.2013, 21:38
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию Несколько записей в DBGrid и отмена изменений

Как отобразить несколько записей в DBGrid (для полльзователя), но оставить за собой право разом отменить все изменения (т.е. что-то вроде Table.Cancel; )

Идея такая: формируется документ, к котором привязывается несколько позиций товара. (сам документ хранится в одной таблице, а привязанные к документу товары в другой)

Перед тем, как занести этот документ в БД пользователю выводится конечное окно, где он проверяет правильность введённых данных. И одним из пунктов является DBGrid, в котором отображаются товары. Но как добавить несколько я не знаю. А писать процедуры на добавление\удаление не хочется (ибо подозреваю, что и не надо, есть обходной путь)
Ответить с цитированием
  #2  
Старый 02.09.2013, 00:54
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

смотри в сторону кеширования изменений или управления транзакциями
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #3  
Старый 02.09.2013, 08:52
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от Yurk@
смотри в сторону кеширования изменений или управления транзакциями

Еще TMemoryTable.
Вся подготовка делается в таблице в памяти, потом, если пользователь подтвердил, копируется в БД.
Ответить с цитированием
  #4  
Старый 02.09.2013, 09:36
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 576
Версия Delphi: 6
Репутация: выкл
По умолчанию

На самом деле, если использовать нормальные компоненты, то в них должно быть встроенное свойство CachedUpdates и ApplyUpdates/CancelUpdates. Какая БД используется?
Ответить с цитированием
  #5  
Старый 02.09.2013, 11:04
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

Цитата:
Сообщение от Freeman
CachedUpdates и ApplyUpdates/CancelUpdates. Какая БД используется?

Используется MySQL + ADO.
Я почитаю про ApplyUpdates/CancelUpdates, спасибо.

Перевёл таблицу в режим ltBatchOptimistic.

Пишу:

Код:
  with fDataModule.tItems do
  begin
    Insert;
    FieldByName('Item').AsString := item;
    FieldByName('Weight').AsFloat := weight;
    FieldByName('InsertWeight').AsFloat := iweight;
    FieldByName('MetallWeight').AsFloat := weight - iweight;
    Post;
  end;

В момент Insert начинает ругаться на то, что DataSet закрыт. Я догадываюсь, что ltBatchOptimistic блокирует insert. Как в этом случае правильно вносить изменения в таблицы?
Решено после перевода таблицы в режим ltBatchOptimistic забыл открыть таблицу.

Последний раз редактировалось Uniq!, 02.09.2013 в 20:05.
Ответить с цитированием
  #6  
Старый 02.09.2013, 17:32
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Код:
ADOQuery1.UpdateBatch(arAll);
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:02.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter