回 帖 发 新 帖 刷新版面

主题:求助!如何将计算结果写入Access数据库?

本人是编程菜鸟!这几天要用VC编制程序,并且要用到数据库!要把VC里一个函数计算出来的结果写到数据库里,但是怎么也实现不了,程序如下:
计算数据的函数:
void CImageNView::OnSeach1() 
{
    。。。
    int    n,i,m,c;
    。。。
    n=SearchAreaKernel(pImg[1]); //计算结果
    N+=n;                        //计算结果
    c=presetnum1-n;              //计算结果
    。。。
    m_sbacst.m_show=n;
    m_sbacst.m_stract=c;
    m_sbacst.m_allnum=N;
}
其中 N是在CImageNview类里定义的static int N;变量m_sbacst是CDaoSBACST类的变量,即数据库变量;
我编的写入函数为:
void CImageNView::OnWrite() 
{
    // TODO: Add your command handler code here
    CDaoDatabase db;
    try
    {
    db.Open("SBACST.mdb",FALSE,FALSE,_T(""));
    }
    catch (CDaoException* e)
    {
    m_sbacst.DispDaoException(e);
    e->Delete();
    return;
    }
    if(!db.IsOpen())    return;
    CDaoTableDef td(&db);    
    try
    {
    td.Open("数据记录");
    }
    catch (CDaoException* e)
    {
    m_sbacst.DispDaoException(e);
    e->Delete();
    return;
    }
    CDaoRecordset rs(&db);
    try
    {
    rs.Open(&td,dbOpenTable,dbAppendOnly|dbConsistent);
     }
    catch (CDaoException* e) 
    {
    m_sbacst.DispDaoException(e);
    e->Delete();
    return;
    }
    if(!td.IsOpen()) return;
    m_sbacst.m_date=COleDateTime::GetCurrentTime();
    m_sbacst.m_num+=1;    
    m_sbacst.m_prenum=presetnum1;//presetnum1是static int 变量
    rs.AddNew();
    COleVariant num=COleVariant(m_sbacst.m_num);
    COleVariant prenum=COleVariant(m_sbacst.m_prenum);
    COleVariant show=COleVariant(m_sbacst.m_show);
    COleVariant stract=COleVariant(m_sbacst.m_stract);
    COleVariant allnum=COleVariant(m_sbacst.m_allnum);
    COleVariant mdate=COleVariant(m_sbacst.m_date);
    rs.SetFieldValue("序号",num);        
    rs.SetFieldValue("打捆根数",prenum);    
    rs.SetFieldValue("当前根数",show);
    rs.SetFieldValue("打捆差值",stract);
    rs.SetFieldValue("累计总数",allnum);
    rs.SetFieldValue("存储时间",mdate);
    try
    {
    rs.Update();
    }
    catch (CDaoException* e) 
    {
    m_sbacst.DispDaoException(e);
    e->Delete();
    return;
     }
    
     if(rs.IsOpen())  rs.Close();
     if(td.IsOpen())  td.Close();
     if(db.IsOpen())  db.Close();
     MessageBox("添加记录成功!");
}
简单地说就是,我如何把OnSearch1函数计算出来的结果通过OnWrite函数里存到数据库?
如果不加入m_sbacst.m_show; m_sbacst.m_stract;m_sbacst.m_allnum这三项,数据库可以写入,但是加上这三项就不能,整了好几天也没明白!
如果哪位大侠知道,能不能给解答一下!
在此谢过了!

回复列表 (共1个回复)

沙发


[em10]
怎么没有人给我回一个呢!很急呀!
哪位大侠知道请不吝赐教!谢谢了!

我来回复

您尚未登录,请登录后再回复。点此登录或注册