|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
Несколько записей в DBGrid и отмена изменений
Как отобразить несколько записей в DBGrid (для полльзователя), но оставить за собой право разом отменить все изменения (т.е. что-то вроде Table.Cancel; )
Идея такая: формируется документ, к котором привязывается несколько позиций товара. (сам документ хранится в одной таблице, а привязанные к документу товары в другой) Перед тем, как занести этот документ в БД пользователю выводится конечное окно, где он проверяет правильность введённых данных. И одним из пунктов является DBGrid, в котором отображаются товары. Но как добавить несколько я не знаю. А писать процедуры на добавление\удаление не хочется (ибо подозреваю, что и не надо, есть обходной путь) |
#2
|
||||
|
||||
смотри в сторону кеширования изменений или управления транзакциями
Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|
#3
|
|||
|
|||
Цитата:
Еще TMemoryTable. Вся подготовка делается в таблице в памяти, потом, если пользователь подтвердил, копируется в БД. |
#4
|
||||
|
||||
На самом деле, если использовать нормальные компоненты, то в них должно быть встроенное свойство CachedUpdates и ApplyUpdates/CancelUpdates. Какая БД используется?
|
#5
|
||||
|
||||
Цитата:
Используется 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
|
||||
|
||||
Код:
ADOQuery1.UpdateBatch(arAll); Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |