Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.09.13;
Скачать: CL | DM;

Вниз

Обработка БД Access 2000   Найти похожие ветки 

 
sdc-alex   (2009-07-07 19:45) [0]

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

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;


 
sniknik ©   (2009-07-07 19:57) [1]

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


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

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


 
sniknik ©   (2009-07-07 22:17) [3]

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


 
Anatoly Podgoretsky ©   (2009-07-08 08:47) [4]

Что творишь


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

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

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

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


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


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


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



Страницы: 1 вся ветка

Текущий архив: 2009.09.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.012 c
15-1247808740
b/@.
2009-07-17 09:32
2009.09.13
Пятничное


4-1216785196
Smb
2008-07-23 07:53
2009.09.13
Wininet: функция FtpCommand()


15-1247430614
Юрий
2009-07-13 00:30
2009.09.13
С днем рождения ! 13 июля 2009 понедельник


15-1247037544
Rouse_
2009-07-08 11:19
2009.09.13
Погиб Виталий Невзоров


15-1247689802
Юрий
2009-07-16 00:30
2009.09.13
С днем рождения ! 16 июля 2009 четверг