VC下一对话框,有一编辑框,对应CString变量m_str,输入格式例为$4321$,两个$分别为开始标识和结束标识,中间位数不固定。又有一表demo,要求用上面数字字符中的每一位与表中dosage字段中对应行的原值相加来更新,例如,原表中
  dosage         dosage         
      1    用$4321$       5
      2     相加后为       5
      3                   5
      4                   5采用ADO访问数据库,代码添加在“修改”按钮的处理函数中。我的思路如下:
m_pRecordset->MoveFirst();//指针移到表中第一条记录
while( .............)//以字符串结束标志$为循环停止条件
{
    ........            //对变量m_str进行操作,依次取得一位字符
  m_pRecordset->PutCollect("dosage", ........);//将这一位字符变为整形与原值相加
  m_pRecordset->Update();
  m_pRecordset->MoveNext();//指针移到下一条记录

我是个新手,哪位高手能帮我按上面框架给出具体代码,也可以按自己的思路写,最好有注释,谢谢!

解决方案 »

  1.   

    try
    {
            while(!m_pRecordset->adoEOF)
    {    .........//对字符串的处理自己写          var=m_pRecordset->GetCollect("dosage");
    if(var.vt!=VT_NULL)
    strdosage=(LPCSTR)_bstr_t(var);
    j=atof(strdosage)+j;
        m_pRecordset->PutCollect("dosage",(long)j);
                m_pRecordset->Update();
        m_pRecordset->MoveNext();
    }
    AfxMessageBox("修改成功");
    }
    catch(_com_error *e)
    {
    AfxMessageBox(e->ErrorMessage());
    }
    }