try
{
m_db.OpenEx  ("DSN=NewData;UID=sa",CDatabase::noOdbcDialog);
m_rd.m_pDatabase=&m_db;
m_rd.Open(AFX_DB_USE_DEFAULT_TYPE,"select * from 产量表",CRecordset::none);
}
catch(CDBException *e)
{
e->ReportError();
e->Delete();
}这样没有错啊,数据源是NewData,Sql Server的

解决方案 »

  1.   

    你一定要重载CRecirdset 中的DoFieldExchange如:
    void b093::DoFieldExchange(CFieldExchange* pFX)
    {
    //{{AFX_FIELD_MAP(b093)
    pFX->SetFieldType(CFieldExchange::outputColumn);
    RFX_Text(pFX, _T("[relationid]"), m_relationid);
    RFX_Long(pFX, _T("[itemid]"), m_itemid);
    RFX_Date(pFX, _T("[inputdate]"), m_inputdate);
    RFX_Text(pFX, _T("[field_1]"), m_field_1);
    RFX_Text(pFX, _T("[field_2]"), m_field_2);
    RFX_Text(pFX, _T("[field_3]"), m_field_3);
    RFX_Text(pFX, _T("[field_4]"), m_field_4);
    RFX_Text(pFX, _T("[field_5]"), m_field_5);
    RFX_Text(pFX, _T("[field_6]"), m_field_6);
    RFX_Double(pFX, _T("[field_7]"), m_field_7);
    RFX_Double(pFX, _T("[field_8]"), m_field_8);
    RFX_Date(pFX, _T("[field_9]"), m_field_9);
    RFX_Date(pFX, _T("[field_10]"), m_field_10);
    RFX_Text(pFX, _T("[field_11]"), m_field_11);
    RFX_Text(pFX, _T("[field_12]"), m_field_12);
    RFX_Double(pFX, _T("[field_13]"), m_field_13);
    RFX_Double(pFX, _T("[field_14]"), m_field_14);
    RFX_Long(pFX, _T("[field_15]"), m_field_15);
    //}}AFX_FIELD_MAP
    }
      

  2.   

    回small_wei(small):  
        但是我的意思是事先并不知道表到底有多少个字段,需要查询后才能用变量绑定字段名。如果向你那样的话,那和用向导绑定表有什么区别呢。
        不知道这可不可行。
      

  3.   

    OK 可以,太长了不好贴,留下MAIL 给一个有关的类给你.
      

  4.   

    不用参数AFX_DB_USE_DEFAULT_TYPE就可以了。
      

  5.   

    To small_wei(small):  
    My Email:[email protected]
      

  6.   

    To _liang_(liang) 
    用向导应该是静态的绑定吧(表已经存在了),而我需要的是动态,所以其中的机制我实在不懂。
      

  7.   

    同意small_wei(small)和 huqiming(Super)
      

  8.   

    CDBVariant varValue; CRecordset rs(m_pSet->m_pDatabase);
    rs.Open(CRecordset::forwardOnly,"select count(*) as max from support");
    short nFields = rs.GetODBCFieldCount( );
    for( short index = 0; index < nFields; index++ )
     {
    rs.GetFieldValue( index, varValue );  }
      

  9.   

    to hellflame(Hellflame)
    程序已发出,请查收
      

  10.   

    能不能也给我一份看看
    [email protected]
    谢谢
      

  11.   

    To small_wei(small) 
       程序已收到,大致看了一下,虽然还没有试过当应该可行(看得有点辛苦啊,英语不行)。
       非常感谢你的帮助啦,^_^ 。等试过后有不懂的再请教。哦,送你100分啦,我分很多耶。
      

  12.   

    To  liang_(liang) 
    页面返回:"贴子回复次数大于跟给分次数 "
      

  13.   

    To small_wei(small)
      不好意思啊,第一次给分不知道回复次数要跟给分次数相同,只能给85了.