Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

не могу добавить/изменить поле в ADODataset или Колонку в DBGridEh

2.1K
25 июля 2005 года
greyich
117 / / 02.02.2005
необходимо отобразить пользователю дополнительный столбец.
ситуация такая - SQLServer + ADOStoredProc (либо ADOQuery) + DBGridEh.
на SQL запрос полность сформировать не могу (слишком сложные вычисления), гораздо проще добавить или изменить одно из полей уже на клиенте. но вот беда

пишу

Код:
//добавляем столбец
  DBGridEh1->Columns->RebuildColumns();
  DBGridEh1->Columns->Add();
  int colcount = DBGridEh1->Columns->Count;
  DBGridEh1->Columns->operator [](colcount-1)->Title->Caption = "блаблабла";

 adoquery1->First();
 DBGridEh1->ReadOnly = false;
 for (int i=0; i<=adoquery1->RecordCount; i++)
{
 DBGridEh1->Columns->operator [](colcount-1)->Field->Value ="3";
либо так
 DBGridEh1->Columns->operator [](colcount-1)->DisplayText() = "3";
либо так
  DBGridEh1->Columns->operator [](colcount-1)->Field->Text = "3";
 dm_ado->gr_oplata->Next();
}

и все три строчки вызывают исключение


пытаюсь добавить лишнее поле в запросе (изначально в sql)и потом изменить - получаю ошибку:
"Невозможно модифицировать поле"

пытаюсь добавить поле динамически

 
Код:
TField  *newf = new  TField;
 dm_ado->gr_oplata->Fields->Add(newf);


получаю:
"E2285 Could not find a match for 'TField::TField()'" в хелпере сказано
Do not create TField instances. TField is intended only as a base class, and should not be directly instantiated. The constructor for descendant classes is usually called by the dataset when it is opened.
After calling the parent class’s constructor, TField initializes the Visible property to true.
однако как этим воспользоваться не понял :(

подскажите какие ошибки допустил или в какое направление было верное!!!
2.1K
26 июля 2005 года
greyich
117 / / 02.02.2005
с добавляемым полем более менее разобрался - осталось только одна проблема после завершения программы (иногда до начала :)) генерит исключение "invalid variant type" - в чем проблема не знаю. в хелпере ничего не нашел. код такой
 
Код:
TField *fld;
 fld=(TIntegerField*) new TIntegerField(adoquery1);
 fld->Name = "semestr2";
 fld->SetFieldType(ftInteger);
 adoquery1->Fields->Add(fld);
 adoquery1->FieldDefList->Update();
 adoquery1->FieldList->Update();


установкa datatype тоже не помогает. Подскажите что не так!!! :(
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог