Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обработка БД Access 2000 [Access]


sdc-alex ©   (2009-07-07 19:45:00) 

Подскажите, почему в нижеследующем коде не происходит сохранение данных. В гриде отображаются, но при попытке перейти к другой записи все сбрасывается?

procedure TMainForm.CalcFields;
var
 PrevData9,PrevData12: Integer;
begin
  DataModule1.MainTableElectro.Open;
  DataModule1.MainTableElectro.Edit;
if DataModule1.MainTableElectro.Bof <> true then
 begin
   DataModule1.MainTableElectro.Prior;  // шаг назад
   PrevData9 := DataModule1.MainTableElectroActive9.AsInteger; // сохранить 9 яч.
   PrevData12 := DataModule1.MainTableElectroActive12.AsInteger;  // сохранить 12 яч.
   DataModule1.MainTableElectro.Next;   // шаг вперед
   // рассчитать значения полей
   DataModule1.MainTableElectro.Edit;
   DataModule1.MainTableElectro.FieldValues['Sum9'] := DataModule1.MainTableElectroActive9.AsInteger - PrevData9;
   DataModule1.MainTableElectro.FieldValues['Sum12'] := DataModule1.MainTableElectroActive12.AsInteger - PrevData12;
   DataModule1.MainTableElectro.Post;
 end;

end;


Сергей М.   (2009-07-10 08:25:00) [1]


> функция выполняется сразу после добавления новой записи
> (после выполнения Post)


А тогда зачем нужен вызов Open ?
Post же не может работать, если НД не открыт .. А если он открыт, то зачем его тут же еще раз открывать ?
Или этот Open относится совсем к другому НД, нежели к тому к которому привязан грид ?


sdc-alex   (2009-07-09 21:44:00) [2]

В обработчике перехода к другой записи нет ни каких операций. Вообще пока описаны только функции добавления записи, редактирования и удаления.

P.S. Указанная мною функция выполняется сразу после добавления новой записи (после выполнения Post). Добавление, редактирование и удаление проходит нормально. К базе обращаюсь через ADO, пишу под Win32

Помагите, пожалуйста, а то я чо то нифига не врубаюсь.


Anatoly Podgoretsky   (2009-07-08 08:47:00) [3]

Что творишь


sniknik   (2009-07-07 22:17:00) [4]

тогда резонный вопрос - зачем ты привел совершенно не связанную с проблемным местом (переход к другой записи)  функцию? что ты хочешь, чтобы мы тут в ней нашли?


sdc-alex   (2009-07-07 21:04:00) [5]

Функция с open вызывается только при добавлении новой строки и при редактировании строки. Это не функция обработки вычисляемых полей.


sniknik   (2009-07-07 19:57:00) [6]

> все сбрасывается?
а у тебя эта функция с Open на каждом переходе между строк вызывается? тогда ничего удивительного.


Наверх

Титульная страница Поиск, карта сайта Написать письмо