Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обновление DBGrid при переходе в новую ячейку 
:(
    Опции темы
creative
Дата 24.8.2007, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Собственно как сделать сабж? Есть связка: TCustomClientDataSet - TDataSource - TDBGrid.
Все данные сохраняются в файл вот таким образом:
ClientDataSet1.SaveToFile('Temp.sav');
Если повесить эту процедуру на событие, например, нажатия кнопки - все сохраняется и грузится прекрасно. Но я не хочу иметь посторонние элементы, я хочу, чтобы сохранение в файл происходило при выходе из только что отредактированной ячейки. В событиях DBGrid я нашла только onColExit, а выхода из строки или из ячейки нет. В событиях CustomClientDataSet есть onAfterPost - выход из строки. Но есть поставить сохранение в файл одновременно в onColExit и в onAfterPost - последний выдает ошибку "не могу обратиться к файлу, файл занят другим приложением".

Посоветуйте, пожалуйста, как сделать правильно.
PM MAIL   Вверх
hihi
Дата 27.8.2007, 04:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



событие afterscroll датасэта?
PM MAIL   Вверх
pseud
Дата 27.8.2007, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

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



Цитата(hihi @  27.8.2007,  04:52 Найти цитируемый пост)
событие afterscroll датасэта?

вызывает ошибку создания файла

creative, держи, проверено - работает
Код

...
  private
    { Private declarations }
    procedure Save;
...
procedure TForm1.DBGrid1ColEnter(Sender: TObject);
begin
  if ClientDataSet1.State in [dsEdit, dsInsert] then
    ClientDataSet1.Post;
end;

procedure TForm1.ClientDataSet1AfterPost(DataSet: TDataSet);
begin
  Save;
end;

procedure TForm1.ClientDataSet1AfterDelete(DataSet: TDataSet);
begin
  Save;
end;

procedure TForm1.Save;
begin
  ClientDataSet1.SaveToFile('Temp.sav');
end;






--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
SergeBS
Дата 27.8.2007, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



creative, 
Цитата
Все данные сохраняются в файл вот таким образом:
ClientDataSet1.SaveToFile('Temp.sav');

Ну и прикинь, какие у тебя тормоза будут, если этот файл будет переписываться при изменении ЛЮБОЙ ячейки в гриде. При закрытии приложения - сохранять этот файл и все.

PM MAIL   Вверх
pseud
Дата 27.8.2007, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

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



Цитата(SergeBS @  27.8.2007,  16:09 Найти цитируемый пост)
Ну и прикинь, какие у тебя тормоза будут, если этот файл будет переписываться при изменении ЛЮБОЙ ячейки в гриде. При закрытии приложения - сохранять этот файл и все.


а ты прикинь что прога стоит на постоянно падающем компе
юзер запускает прогу в 9:00 а вырубает в 18:00 и вот в 17:55 комп падает
ну или
допустим
это игра в морской бой (грид 10 на 10)
или еще чего
человек поставил такой вопрос
Цитата(creative @  24.8.2007,  14:26 Найти цитируемый пост)
 я хочу, чтобы сохранение в файл происходило при выходе из только что отредактированной ячейки




Это сообщение отредактировал(а) pseud - 27.8.2007, 16:25


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
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.1365 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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