d150.bmp.txt

来自「Visual C++通信编程工程实例精解(附盘)」· 文本 代码 · 共 40 行

TXT
40
字号
strSQLMod = "SELECT * FROM  Al人信息  WHERE name = "'+strSeIName+""';
m_pRecordsetMod->Open(strSQLMod.AllocSysString(),
theApp.m_pConnection.GetInterfacePtr(),
 adOpenDynamic,
 adLockOptimistic,
  adCmdText);
UpdateData0;
try
{
                       m_pRecordsetMod->PutCollect( " name ",  _variant_t(m_Name》;
                  m_pRecordsetMod->PutCollect("sex ",  _variant_t(m_Sex》;
                       m_pRecordsetMod->PutCollect( "age ",  (long)atoi(m_Age》;
m_pRecordsetMod->Update0;
 }
catch(_com_error水e)
 {
                       AfxMessageBox(e->ErrorMessage(》 ;
 }
m_Name=m_Sex=m_Age="";
UpdateData(false);
ListData();
m_BDelData.EnableWindow(false);
m_BModifyData.EnableWindow(false);
    MessageBox(“修改成功!”);
}
    在修改数据的时候,没有使用上面用到的Command对象的Execute方法得到记录集对
象m_pRecordsetMod,而是使用了Recordset的Open方法。这就是因为用Command对象的
Execute方法得到的Recordset对象是只读的。用该方法得到了记录集对象后,不但记录集对
象中的记录无法修改,即使直接使用SQL语句修改同一表中的任何记录都不行。想要能修
改记录数据,还是要使用Recordset的Open方法。这一点在上面我们已经介绍到了。
    6)查询数据。在记录集中有3个字段:姓名、性别、年龄,为了使用不同字段查询时
能产生不同的查询条件,我们为IDCJIEM和IDC_OPER这2个Combo Box控件分别添加
针对CBN_SELENDOK事件的响应函数,并编辑该函数。
150
void CRemoteDBDlg::OnSelendokltem0
{
            // TODO: Add your control notification handler code here
UpdateData0;
         if (m_ltem ==“年龄”)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?