如下源代码
void CODBCDlg::OnOK() 
{
    // TODO: Add extra validation here
    CDatabase db;
    CRecordset rs;
    db.Open("test");
    rs.m_pDatabase=&db;
    rs.Open(CRecordset::forwardOnly,_T("Select * from content"));
    if(rs.GetRecordCount!=0)
        AfxMessageBox("have");
    CDialog::OnOK();
}
rs这个记录集已经显示有记录了,可是我不会增加记录
调用rs.AddNew()方法后该怎么写,望告知!  
下面的是我所知道的一点,yourrecord是不是我创建的记录集rs?
xxx,yyy是不是表里面的字段名?
rs.AddNew();
yourRecord.xxx= dlg.xxx
yourRecord.yyy =dlg.yyy
...yourRecord.Update();
纪录就加进去了  

解决方案 »

  1.   

    MFC CRecordset 要想实现AddNew 的话得先从你数据库表中派生一个CRecordset 类如CXXX,对个类实现CXXX AddNew才可以的。不能直接对CRecordset AddNew()
    因些你还要一个ODBC连接劝你还是用智能指针吧!
      

  2.   

    我试过的,重新从CRecordset类中派生出一个CMyRecordset类,也帮他连接了同样的数据源
    以下是添加代码
    void CTestDBDlg::OnAdd()
    {
        CMyRecord myro;
    if( !myro.Open())
    return;
    if(!myro.CanAppend())
    return;
    myro.AddNew();
    myro.m_id=10;
    myro.n_name="cheng";
    myro.m_old=21;
    myro.m_address="China";
    myro.Update();
    myro.Close();
    }
     可是同样不能编译通过,CMyrecord不是类型,我不知道怎么写了,这个和书上一样的啊!
    哪位高手再帮帮我啊!
      

  3.   

    CMyRecord myro应改为:CMyRecordSet myro;
      

  4.   

    CMyRecordset类的头文件加入了吗?
      

  5.   

    你也可以用Insert SQL语句来插入一条记录嘛,比这个简单写,且效率高一些,AddNew是效率最低的一中方法。
      

  6.   

    CMyRecordset是从CRecordset中派生出来的,头文件是不是afxdb.h??要是的话,我已经加了!
      

  7.   

    insert我一直用它,信我的没错的。
    呵呵