Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сохранить изменения в DBGrid/DBGridEh 
:(
    Опции темы
Grig
Дата 17.5.2005, 02:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Здрав-в-встуйте!
Вот появилась необходимость чтобы пользователь вводил данные в гриде, и как следствие, была возможность сохранять/или не сохранять его изменения.
Я сделал конечно табличку, пользователь туда чего-то вводит и данные (никого не спросясь) записываются в базу.
Как побороть эту беду?
Конечно есть возможность создавать временную таблицу или завести какой-нибудь массивчик, но может быть есть решение попроще, а я тут велосипед изобретаю?
smile


--------------------
        
PM MAIL ICQ   Вверх
bursa
Дата 17.5.2005, 08:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Можно использовать CashUpdate:=true, а потом ApplyUpdate.
А можно использовать обычный TGrig и потом по надобности списывать значения из ячеек в базу
Всё зависит от конкретной задачи.
Если нужно редактировать просто строки - вариант 1
Если что-то типа листа Excel - 2

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


Опытный
**


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

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



Дело немного в другом..
Речь идет не об одной записи, а вообще обо всех изменениях..
Я делаю так:
Открываю транзакцию:
Код

procedure TFrSprMO.FormShow(Sender: TObject);
begin
         dm.ADOTableMO.Open;
    DM.ADOConSQL.BeginTrans;
end;

// тра-та-та, пользователь видоизменят таблицу
//и тут она закрывается
procedure TFrSprMO.FormClose(Sender: TObject; var Action: TCloseAction);
begin
    if _fl_edit = True Then
       begin
       if (Application.MessageBox('Сохранить изменения ?','Удалить запись',
         MB_YESNO + MB_ICONQUESTION) = idyes)
       then
         begin

         DM.ADOConSQL.CommitTrans;
         dm.ADOTableMO.Close;
         ShowMessage('Данные сохранены!');
         end
       else
         begin
         DM.ADOConSQL.RollbackTrans;
         dm.ADOTableMO.Close;
         end;
    end;
    //frsprmo.Hide ;
end;



Однако это к сожалению не работает...
Данные введенные пользователем почему-то не изменяются в базе.
Вот.. smile


--------------------
        
PM MAIL ICQ   Вверх
Grig
Дата 17.5.2005, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Кажись понял почему..
Данные не изменяются, если модифицированная ячейка не теряет фокус...
че к чему..


--------------------
        
PM MAIL ICQ   Вверх
bursa
Дата 17.5.2005, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Grig @ 17.5.2005, 10:58)
Данные не изменяются, если модифицированная ячейка не теряет фокус...

Тогда проверяй
if Table.State=dsEdit or Table.State=dsInsert then Table.Post
и ущ потом Commit
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.0476 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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