MFC 中ADO方式操作ACCESS数据库
2010-08-31 23:27
441 查看
1 基本实现流程:
(1)初始化COM库,引入ADO库定义文件
(2)用Connection对象连接数据库
(3)利用建立好的连接,通过Connection、Command对象执行SQL命令,或利用Recordset对象取得结果记录集进行查询、处理。
(4)使用完毕后关闭连接释放对象。
2 部分代码参考
有不足的地方欢迎指出!
(1)初始化COM库,引入ADO库定义文件
(2)用Connection对象连接数据库
(3)利用建立好的连接,通过Connection、Command对象执行SQL命令,或利用Recordset对象取得结果记录集进行查询、处理。
(4)使用完毕后关闭连接释放对象。
2 部分代码参考
CAdoData::CAdoData() { if(!AfxOleInit()) { AfxMessageBox("AfxOleInit error "); } HRESULT res = m_pCon.CreateInstance(__uuidof(Connection)); } CAdoData::~CAdoData() { } int CAdoData::LoginCheck() //登陆检查 { if(!m_pCon->State) { AfxMessageBox("未连接"); return -2; } _bstr_t sql = "select * from UserTable"; try { //_variant_t VARIANT var; var.vt = VT_I4; _RecordsetPtr pSet; pSet = m_pCon->Execute(sql,&var,adCmdText); _variant_t val; while(!pSet->adoEOF) { val = pSet->GetCollect("id"); //if(val.vt == VT_I4) long id = (long)val; val = pSet->GetCollect((long)1); CString name = (char*)(_bstr_t)val; val = pSet->GetCollect((long)1); CString pwd = (char*)(_bstr_t)val; if(strcmp(name,infomation.username)==0 && strcmp(pwd,infomation.password)==0) { return -1; } pSet->MoveNext(); } } catch (_com_error &e) { AfxMessageBox(e.Description()); } return 1; } void CAdoData::OnConnect() //连接 { if (m_pCon->State) { AfxMessageBox("已连接数据库"); return ; } try{ _bstr_t szCon = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = server.mdb"; HRESULT res = m_pCon->Open(szCon, "","",adModeUnknown); } catch(_com_error err) { CString errormessage; errormessage.Format("连接数据库失败,失败信息:%s", err.ErrorMessage()); AfxMessageBox(err.ErrorMessage()); } } void CAdoData::OnInsert() //插入数据库 { if(!m_pCon->State) { AfxMessageBox("未连接"); return; } char username[20]={0}; char password[20]={0}; char sex[4]={0}; char birth[15]={0}; CString str; //str.Format("%s",birth) strcpy(username, infomation.username); strcpy(password, infomation.password); strcpy(sex, infomation.sex); strcpy(birth, infomation.birth); CString sql; sql.Format("insert into UserTable(用户名,密码,性别,生日)values('%s','%s', '%s', '%s')", username,password,sex,birth); try { VARIANT var; var.vt = VT_I4; m_pCon->Execute((_bstr_t)sql,&var,adCmdText); } catch (_com_error &e) { AfxMessageBox(e.Description()); } } void CAdoData::OnClose() //关闭数据库 { if(m_pCon->State) { m_pCon->Close(); } } void CAdoData::OnSerchRank() //查询积分 { if(!m_pCon->State) { AfxMessageBox("未连接"); return; } _bstr_t sql = "select * from RankTable"; try { //_variant_t VARIANT var; var.vt = VT_I4; _RecordsetPtr pSet; pSet = m_pCon->Execute(sql,&var,adCmdText); _variant_t val; while(!pSet->adoEOF) { val = pSet->GetCollect("id"); //if(val.vt == VT_I4) long id = (long)val; val = pSet->GetCollect((long)1); CString name = (char*)(_bstr_t)val; val = pSet->GetCollect((long)1); long score = (long)val; pSet->MoveNext(); } } catch (_com_error &e) { AfxMessageBox(e.Description()); } }
有不足的地方欢迎指出!
相关文章推荐
- VC++中使用ADO方式操作ACCESS数据库
- VS2010、MFC ADO方式访问ACCESS数据库笔记
- VC++中使用ADO方式操作ACCESS数据库
- VC++中使用ADO方式操作ACCESS数据库
- VC++中使用ADO方式操作ACCESS数据库
- MFC下ADO方式操作数据库
- VC++中使用ADO方式操作ACCESS数据库
- VC++中使用ADO方式操作ACCESS数据库
- VC++中使用ADO方式操作ACCESS数据库
- MFC中ADO方式操作数据库实例
- VC++6.0中使用ADO方式操作ACCESS数据库
- VC++中使用ADO方式操作ACCESS数据库(转)
- MFC通过ADO操作Access数据库
- MFC通过ADO操作Access数据库
- VC++中使用ADO方式操作ACCESS数据库
- 第一次在VS2010下MFC采用ADO方式连接ACCESS数据库(详细过程)
- 利用ADO连接ACCESS数据库,并进行读写操作(MFC)
- 第一次在VS2010下MFC采用ADO方式连接ACCESS数据库(详细过程)
- VC++中使用ADO方式操作ACCESS数据库
- MFC通过ADO操作Access数据库