用以下代码对数据库进行添加数据时:
UpdateData();   
Cscorerecord       sc;   
Caddcj       ad;   
  sc.Open();   
sc.AddNew();   
sc.m_cid=ad.m_cid;   
sc.m_sid=ad.m_addid;   
sc.m_sscore=ad.m_sco;   
sc.Update();   
sc.Requery();   
显示记录只读。。应怎样办啊

解决方案 »

  1.   

    我加上了sc.Open(Cscorerecord::snapshot);把记录集打开了,但在sc.m_cid=ad.m_cid;       
    sc.m_sid=ad.m_addid;       
    sc.m_sscore=ad.m_sco; 
    三个地方设了断点得到他们的值都是空的。。要怎样才能使他们有值可插入啊
      

  2.   

    sc.m_cid=ad.m_cid;               
    sc.m_sid=ad.m_addid;
    你先确认一下ad.m_cid和ad.m_addid,ad.m_sco里面有值吗,如果有值
    应该可以成功添加的,没值的话,你要想办法先把想添加的数放进去才可以
      

  3.   

    我遇到过这个问题,我用的是静态连接数据源的,后来在CRecordset的构造函数里m_nDefaultType=dynaset;里面的dynaset改成snapshot就可以了,你试下吧。不过操作数据库之前最好加上
    if(sc.IsOpen())
    {
        sc.Close();
    }
    sc.Open();
    我觉得这样比较好,而且可以用到你刚更新的数据。我也有问题,不知大家帮我看了没有,闪了。
      

  4.   

    记录集只读的问题解决了,谢谢大家了。但是sc.m_cid=ad.m_cid;        
    sc.m_sid=ad.m_addid;               
    sc.m_sscore=ad.m_sco;
    处设了断点他们的值是空啊。。要怎样解决啊。。但把他放到视图类去就有值了请高手帮忙。。
      

  5.   

    更新之后没法马上读取出来?我也遇到过这样的问题,你可以更新后Sleep(500);看一下是不是跟我同样的问题。
    我的问题: http://203.249.126.238/helloworld/Content,2007,11,8,42.aspx