Текущий архив: 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