首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

cannot access an inactive scope解决思路

2012-11-05 
cannot access an inactive scopebool__fastcallComplexFd(inttag,TDBGridEh*Gd,AnsiString&sqlstr,bool&S

cannot access an inactive scope
bool   __fastcall   ComplexFd(int   tag,TDBGridEh   *Gd,AnsiString   &sqlstr,bool   &SelAll,bool   AllField,bool   visID)
{
      bool   Ret   =   false;
      Application-> CreateForm(__classid(TfmComplexFd),   &fmComplexFd);

      try
      {
              fmComplexFd-> CmbFieldName-> Items-> Clear();
              fmComplexFd-> TAG   =   tag;
              fmComplexFd-> edtFrom-> Enabled   =   visID;
              fmComplexFd-> edtTo-> Enabled   =   visID;

              ShowMessage(Gd-> Columns-> Items[0]-> Field-> DataType);

              for   (int   i   =   0;   i   <   Gd-> Columns-> Count;   i++)
              {
                    if((Gd-> Columns-> Items[i]-> Field-> DataType   !=   16)
                                &&   Gd-> Columns-> Items[i]-> FieldName   !=   "EDocNO ")
                    {
                            fmComplexFd-> CmbFieldName-> Items-> Add(Gd-> Columns-> Items[i]-> Title-> Caption);                                     fmComplexFd-> lsSource-> AddObject(Gd-> Columns-> Items[i]-> FieldName,(TObject*)Gd-> Columns-> Items[i]-> Field-> DataType);

                    }
              }
              if(fmComplexFd-> ShowModal()   ==   mrOk)
              {
                    sqlstr   =   fmComplexFd-> ReturnSQL;
                    SelAll   =   fmComplexFd-> SelAll;
                    Ret   =   true;
              }
      }
      __finally
      {
              delete   fmComplexFd;
      }
            return   Ret;
}

我用ShowMessage去测试,访问Gd-> Columns-> Items[0]-> Field-> DataType者一句出错,错误信息是E2208   cannot   access   an   inactive   scope   编译不报错,运行才报错。请教大神这是什么原因,我是菜鸟,谢谢了  

[解决办法]
DBGridEh关联的数据集是否处于打开状态?
[解决办法]
DataSource2->DataSet->Fields->Fields->Count
Columns->Count

名字记不清了,大概是这两个属性,你看看是多少,是不是0

热点排行