http://codeguru.earthweb.com/mfc_database/unbound_dbgrid.shtml
Using DBGrid in unbound mode

解决方案 »

  1.   

    // set datasource of DBGrid dynamically

    void CDgDlg::OnOK() 
    { //notes : call AfxOleInit in CXXApp::InitInstance()
    // I also add a line in stdafx.h 
    //#import "c:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "EndOfFile")
       try
       {
          _ConnectionPtr pConn("ADODB.Connection");
          _RecordsetPtr  pRst("ADODB.Recordset");
          pConn->Open("Provider=sqloledb;Data Source=Dell1;"
             "Initial Catalog=testdb;User Id=sa;Password=;",
             "", "", adConnectUnspecified);
          pRst->Open(
             "table1",
             _variant_t((IDispatch *) pConn, true),
             adOpenStatic,
             adLockReadOnly,
             adCmdTable);
      //CDataGrid m_grid; is a member of CDgDlg.
    m_grid.SetRefDataSource(pRst.Detach());
       }
       catch (_com_error &e)
       {
      char mybuf[10240];
          wsprintf(mybuf,"Description = '%s'\n", (char*) e.Description());
      AfxMessageBox(mybuf);
       }
    }
      

  2.   

    To  masterz:
    刚试过,编译的时候出错,说类型不匹配 Recordset * 不能转换成 DataSource *,
    怎么办?
      

  3.   

    我觉得DBGRID不好用,还是CListView好用!