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

Вниз

Вычисляемые поля ...   Найти похожие ветки 

 
Lina   (2002-09-04 13:41) [0]

Добрый день!

Есть функция вычиления поля:
procedure TMainForm.Query2CalcFields(DataSet: TDataSet);
begin
<выч. поле>.Value:= <выражение>;
end;

Если вызывать ее из любого места программы:
Query2CalcFields (Query2);
получаю исключение т.к. Query2.state = dsBrowse а не dsCalcFields

Как в любом месте программы пересчитать вычисляемое поле ?
Помогите плз.


 
Mike Kouzmine   (2002-09-04 13:46) [1]

Оно пересчитывается автоматически. Не надо явно вызывать. Единственное - св-во CalcFields TQuery должно быть True


 
Lina   (2002-09-04 13:56) [2]

В том-то и дело, что нужно вызвать явно ...


 
Anatoly Podgoretsky   (2002-09-04 13:56) [3]

Это не стоит делать, написал(а) обработчик и забудь о нем


 
Mike Kouzmine   (2002-09-04 13:57) [4]

А зачем явно, если это происходит автоматически? Может можно предложить что-то другое?


 
oss   (2002-09-04 14:04) [5]

надо явно, сделай отдельную функцию и вызывай ее где надо,
и квери это не датасет, тип другой


 
Lina   (2002-09-04 14:05) [6]

Т.е. никак нельзя явно вызвать обработчик события OnCalcFields
(кроме Query.Next; Query.Prior; Query.Edit и т.п.) ?


 
Mike Kouzmine   (2002-09-04 14:11) [7]

По всей видимости при вызове проверяется state, если он не равен dsCalcFields, то исключение. Если ты сможешь корректно перевести набор в этот state, то - флаг в руки.


 
Дмитрий Калугин   (2002-09-04 16:08) [8]

извне этот обработчик вызывать нельзя, если надо что-то пересчитать, то тут желательно использовать переменную,
а не выражение. (для лучшей производительности)


procedure TMainForm.Query2CalcFields(DataSet: TDataSet);
begin
<выч. поле>.Value:= < переменная>;
end;

Присвоил новое значение и дай Refresh


 
Mike Kouzmine   (2002-09-04 16:22) [9]

Дмитрий Калугин -> А если в вычислении этой переменной учавствуют поля текущей таблицы, то как? Очень спорный совет, мне кажется


 
Дмитрий Калугин   (2002-09-04 17:05) [10]

>Mike Kouzmine
А зачем тогда ее вызывать извне вообще?



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

Форум: "Базы";
Текущий архив: 2002.09.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
3-85344
greyserg
2002-09-03 19:23
2002.09.26
Как задать в TQuery нужный тип таблицы


4-85756
Devid
2002-08-11 09:59
2002.09.26
Извините, за столь простой вопрос, но ответьте на него


14-85671
dr.karter
2002-08-30 16:20
2002.09.26
Ищу Сибиряков


3-85384
ileon
2002-08-28 18:04
2002.09.26
MS Access + Interbase


14-85647
Jee
2002-08-30 12:53
2002.09.26
Delphi 7 Studio





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский