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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2010, 15:25   #1
Марк Охман
Форумчанин
 
Аватар для Марк Охман
 
Регистрация: 05.02.2010
Сообщений: 153
Восклицание Проблема с датасетом

Всем привет)) такой вопрос. на форме DbGrid, на нем таблица через AdoQuery. я написал код в процедуре AdoQuery1OnCalcFields. в formcreate я пытаюсь указать в каком столбце будет калькулируемое поле:
Код:
AdoQuery1.Fields.Fields[3].FieldKind:=fkCalculated;
а выдает ошибку AdoQuery1: Cannot perform this operation on an open DataSet. Что делать?
Я начинающий web-программист) Не судите строго, плиз! Буду очень стараться!
Марк Охман вне форума Ответить с цитированием
Старый 07.11.2010, 15:31   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Создать вычисляемое поле в режиме проетирования формы... ручками...
mihali4 вне форума Ответить с цитированием
Старый 07.11.2010, 15:39   #3
Марк Охман
Форумчанин
 
Аватар для Марк Охман
 
Регистрация: 05.02.2010
Сообщений: 153
По умолчанию

если я создаю такое поле, то у меня пропадают все те которые отображаются на DBGrid из Аксесовской БД. Они же тоже через Query. Как быть?
Я начинающий web-программист) Не судите строго, плиз! Буду очень стараться!
Марк Охман вне форума Ответить с цитированием
Старый 07.11.2010, 17:06   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Они же тоже через Query. Как быть?
самый простой способ - прежде, чем добавлять вычисляемое поле - вытащите в Query (в DesingTime) все нужные поля.
Сделайте Query Active -> true
Двойной щелчёк мышкой по Query - правой кнопкой мышки - Add All Fields
потом - add - и добавляете ручками ваше вычисляемое поле.
не забудьте потом сделать Query Active -> false
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.11.2010, 17:41   #5
Марк Охман
Форумчанин
 
Аватар для Марк Охман
 
Регистрация: 05.02.2010
Сообщений: 153
По умолчанию

дело в том что каждый раз при запуске количество столбцов увеличивается. калькулируемое поле всегда одно и то же.
можно ли как-нибудь программно добавить все имеющиеся в таблице столбцы в AdoQuery Fields?
Я начинающий web-программист) Не судите строго, плиз! Буду очень стараться!

Последний раз редактировалось Марк Охман; 07.11.2010 в 18:00.
Марк Охман вне форума Ответить с цитированием
Старый 07.11.2010, 18:50   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
дело в том что каждый раз при запуске количество столбцов увеличивается
Это как?!! o_O! Откуда столбцы дополнительные появляются?!

Цитата:
можно ли как-нибудь программно добавить все имеющиеся в таблице столбцы в AdoQuery Fields?
всё можно. Только не понятно, что Вам нужно!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.11.2010, 19:18   #7
Марк Охман
Форумчанин
 
Аватар для Марк Охман
 
Регистрация: 05.02.2010
Сообщений: 153
По умолчанию

сейчас все объясню.
Есть таблица. В ней каждый новый день добавляется новый столбец, в названии которго текущая дата (т.е. каждый новый запуск программа проверяет есть ли столбец на текущий день и если нету, то она создает). Когда пользователь просматривает таблицу, он вводит в любом поле информацию (вида 100 ТК; 75 ИК; 90 РК). В начале таблицы есть четыре столбца с именами ИК, ТК, РК, ДК. Так вот когда пользователь вводит эту информацию, в строке, которую он правил, считается среднее арифметическое всех оценок с одинаковыми буквами после них и результат записывается в соответсвующий столбец. Например в строке уже есть в разных полях информация 100 ИК 80 ИК и ввели еще 70 ИК, тогда в столбце с именем ИК появится среднее арифметическое всех этих значений.
Я начинающий web-программист) Не судите строго, плиз! Буду очень стараться!

Последний раз редактировалось Марк Охман; 07.11.2010 в 19:34.
Марк Охман вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37