现在要求对已打开的一个记录集删除某一指定的列,不需进行数据库更新.请问用recordset->Fields->Delete(long(2))应该怎么操作啊.我用的时候报错.MSDN上说不能对已打开的记录集进行操作.望各位高手指教一下啊.

解决方案 »

  1.   

    RecordSet记录集是针对行的操作,列直接指向数据库结构,是只读的,即不允许在RecordSet对列结构进行修改!!
    你是想在界面的DataGrid或ListCtrl隐藏某一列吧,你操作控件本身即可。
      

  2.   

    我是需要把数据发到EXCEL里去.不能对列操作的话,那FIELDS里的这个DELETE方法是做什么用的?
      

  3.   

    那问题就更简单了,那你直接操作ReccorSet的列不就行了,_variant_t val;for(int i=0;i< m_rec->RecordCount;i++)
    {
        val=m_rec1->GetCollect(列名或列索引);
        ///下面可以加入写excel单元格的代码;
    }因为表结构是你自己建立的,哪些列你不想写到excel里面,跳过那些列就行了。
      

  4.   

    谢谢兄弟的帮助,呵.我的数据是动态提取的,不知道用户要提些什么数据.列的选取在这里是有一定的算法的.要实现我的功能当然可以用别的方法来做.现在我主要是想知道这个DELETE方法到底是怎么回事,为什么不能这么用.呵.大家一起学习吧.高手,出现吧.神啊.救救我吧.