想把记录集装到RecordsetPtr中,并能够用Grid显示,而且也能编辑
但:
方法一:
_RecordsetPtr m_pRecordset; 
m_pRecordset->Open((_variant_t)sql,(_variant_t)connstr,adOpenStatic,adLockOptimistic,adCmdText);
这种在DataGrid中显示不出来,但能修改方法二:
_RecordsetPtr m_pRecordset; 
pconn->Open((_bstr_t)connstr,"","",0);
pconn->CursorLocation   =   adUseClient;  
m_pRecordset =pconn->Execute((_bstr_t)sql,&RecordsAffected,adCmdText); 
这种能显示,但DataGrid中是只读的问问高手看,这个怎么解决啊

解决方案 »

  1.   

    我用的代码是:
    _RecordsetPtr m_pRecordset;  
    m_pRecordset->Open((_variant_t)sql,(_variant_t)connstr,adOpenStatic,adLockOptimistic,adCmdText); m_queryTblGrid.SetRefDataSource(NULL);   
    m_queryTblGrid.SetRefDataSource((LPUNKNOWN)m_pRecordset);   
    m_queryTblGrid.Refresh(); 
      

  2.   

    m_pRecordset.CreateInstance("ADODB.Recordset")
      

  3.   

    这几也加过了的我跟了一下, 在m_pRecordset里面是有数据的,但就是显示不出来
      

  4.   

    m_pRecordset->CursorLocation=adUseClient;
      

  5.   

    m_pRecordset->Open((_variant_t)str,_variant_t(m_pConn,true),adOpenStatic,adLockOptimistic,adCmdText);
      

  6.   

    搞定, 我刚试一个
    m_pRecordset->PutCursorLocation(adUseClient);
    OK了, 多谢了
    顺便再问个:DataGrid能不能设置成不要自动提交的, 比如改完后,最后我调用一下m_pRecordset->Update();来保存到数据库中, 能否这样?
      

  7.   

    焦点移到他处,就会自动提交
    如果取消自动提交的话
    或许得禁止update,然后你自己写个文本框来处理
    当然这是最坏的打算~~