Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2012, 18:34   #1
Waragon
Новичок
Джуниор
 
Регистрация: 12.06.2012
Сообщений: 4
По умолчанию Ошибки в вычисляемых полях

В Delphi сделал таблицу с вычисляемыми полями, при вычислении результат выводится на строку выше чем остальная информация, причем вычисление производится только с первой строкой
код кнопки вычисления:

dm.tbl4.Insert;
dm.tbl4dsdesigner4.Value:= dm.tbl2dsdesigner2.asinteger*dm.tbl 2dsdesigner3.asinteger;
dm.tbl4dsdesigner5.Value:= dm.tbl4dsdesigner4.asinteger*3;
dm.tbl4dsdesigner6.Value:= dm.tbl4dsdesigner4.asinteger*12;
dm.tbl4Field.Value:= dm.tbl4dsdesigner6.asfloat/100*6;

если не писать оператор "dm.tbl4.Insert;" то выдает ошибку
"Dataset not in edit or insert mode"
Много чего перепробовал, ничего не помогает
Помогите пожалуйста, очень сильно и срочно надо!!
Вложения
Тип файла: rar Прога.rar (946.2 Кб, 8 просмотров)
Waragon вне форума Ответить с цитированием
Старый 12.06.2012, 22:05   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Причем Insert? В OnCalcField делать все вычисления в калькулируемых полях
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.06.2012, 04:43   #3
Waragon
Новичок
Джуниор
 
Регистрация: 12.06.2012
Сообщений: 4
По умолчанию

В calcfielde пытался, но там все время выдает ошибку при запуске проги выдает ошибку об адресах
Waragon вне форума Ответить с цитированием
Старый 13.06.2012, 07:55   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Только в OnCalcField. А ошибку дает скорее всего потому, что идет обращение к tbl2, который возможно еще не открыт. И логика не понятна - какая запись tbl2 в момент обработки вычисляемого поля используется
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.06.2012, 18:33   #5
Waragon
Новичок
Джуниор
 
Регистрация: 12.06.2012
Сообщений: 4
По умолчанию

Как понять какая запись используется? Они же должны все сразу использоваться, и каким оператором таблицу открыть?
Waragon вне форума Ответить с цитированием
Старый 13.06.2012, 22:29   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
dm.tbl2dsdesigner3.asinteger
Возвращает значение фиелда из текущей записи tbl2. И так будет при каждом обращении к OnCalcField для всех записей tbl4. Чего вдруг по щучьему велению указатель записи tbl2 будет меняться?
Цитата:
каким оператором таблицу открыть
Не нужно оставлять открытыми DataSet-ы в design-time. Открывать программно в нужной последовательности (в данном случае tbl2d до tbl4) используя Open или Active, например в OnCreate формы
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 13.06.2012 в 22:44.
Аватар вне форума Ответить с цитированием
Старый 14.06.2012, 20:16   #7
Waragon
Новичок
Джуниор
 
Регистрация: 12.06.2012
Сообщений: 4
По умолчанию

Cпасибо, но мне все равно перешлось переделывать. Поменял все тэйблы на query и с помощью sql добился того что надо))
Waragon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форматирование текста в вычисляемых полях отчёта klmmn Microsoft Office Access 5 26.07.2011 22:22
Валюта в вычисляемых полях a_n_n_a Общие вопросы Delphi 0 02.07.2011 03:43
Суммирование вычисляемых полей smaw1989 Помощь студентам 7 20.12.2010 18:11
Перенос строк в вычисляемых полях Professor Hubert БД в Delphi 0 28.04.2008 20:39