)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText); while(!m_pRecordset->adoEOF) { vID = m_pRecordset->GetCollect(_variant_t((long)0)); //取得第1列的值,从0开始计数,你也可以直接给出列的名称,如下一行 vUsername = m_pRecordset->GetCollect("姓名"); //取得姓名字段的值 vOld = m_pRecordset->GetCollect("年龄"); vBirthday = m_pRecordset->GetCollect("生日"); TRACE("id:%d,姓名:%s,年龄:%d,生日:%s\r\n", vID.lVal, (LPCTSTR)(_bstr_t)vUsername, vOld.lVal, (LPCTSTR)(_bstr_t)vBirthday); //在DEBUG方式下的OUTPUT窗口输出记录集中的记录
m_pRecordset->MoveNext(); //移到下一条记录 } m_pRecordset->MoveFirst(); //移到首条记录 m_pRecordset->Delete(adAffectCurrent); //删除当前记录 for(int i=0;i<3;i++) //添加三条新记录并赋值 { m_pRecordset->AddNew(); //添加新记录 m_pRecordset->PutCollect("学号",_variant_t((long)(i+10))); m_pRecordset->PutCollect("姓名",_variant_t("王斌年")); m_pRecordset->PutCollect("年龄",_variant_t((long)21)); m_pRecordset->PutCollect("生日",_variant_t("1930-3-15")); } m_pRecordset->Move(1,_variant_t((long)adBookmarkFirst)); //从第一条记录往下移动一条记录,即移动到第二条记录处 m_pRecordset->PutCollect(_variant_t("年龄"),_variant_t((long)45)); //修改其年龄 m_pRecordset->Update(); //保存到库中 } catch (_com_error e){}
/***********************【6】关闭记录集与连接 *************************/ 记录集或连接都可以用Close方法来关闭 m_pRecordset->Close(); //关闭记录集 m_pConnection->Close(); //关闭连接
在stdafx.h中进行宏定义: #if !defined CATCH_ERROR #define CATCH_ERROR \ { \ CString strComError; \ strComError.Format("错误编号: %08lx\n错误信息: %s\n错误源: %s\n错误描述: %s", \ e.Error(), \ e.ErrorMessage(), \ (LPCSTR) e.Source(), \ (LPCSTR) e.Description()); \ ::MessageBox(NULL,strComError,"错误",MB_ICONEXCLAMATION); \ } #endif 使用方法: try { ...} catch(_com_error e) { CATCH_ERROR; }
上一页 [1] [2] |