Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.09.13;
Скачать: [xml.tar.bz2];

Вниз

Обработка БД 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
15-1246781165
Andy BitOff
2009-07-05 12:06
2009.09.13
Не работает клавиатура на ноуте. Что может быть?


15-1247270707
KilkennyCat
2009-07-11 04:05
2009.09.13
Возможно, не будет работать до понедельника pda.delphimaster.net


15-1247661732
Claimman
2009-07-15 16:42
2009.09.13
AutoSchema - что это?


6-1206625813
vlad
2008-03-27 16:50
2009.09.13
модем


1-1214468435
KSergey
2008-06-26 12:20
2009.09.13
Ошибки при вычислениях после EIntegerOverflow





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский