登录社区云,与社区用户共同成长
邀请您加入社区
1 基本实现流程:
(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()); } }
有不足的地方欢迎指出!
腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。
更多推荐
Elasticsearch复杂数据类型终极指南:从入门到精通
Elasticsearch作为功能强大的搜索引擎,支持多种复杂数据类型,让开发者能够灵活处理各种结构化和非结构化数据。本文将带你全面了解Elasticsearch中的复杂数据类型,从基础概念到实际应用,助你轻松掌握数据建模的核心技巧。## 内部对象:构建层级化数据结构在Elasticsearch中,对象类型(Object)是最基础的复杂数据类型之一,用于表示具有嵌套关系的数据。例如,我们可
终极指南:Flink SQL连接器版本管理从混乱到有序的升级之路
Apache Flink作为流处理领域的佼佼者,其SQL连接器的版本管理一直是开发者面临的核心挑战。本文将系统讲解Flink SQL连接器版本管理的最佳实践,帮助你轻松应对版本兼容性问题,实现从混乱到有序的升级之旅。## 连接器版本管理的常见痛点 😫在Flink应用开发中,连接器版本管理常常让开发者头疼不已。不同版本的连接器可能导致各种兼容性问题,例如API变更、功能差异甚至运行时错误。
如何快速搭建Neon无服务器PostgreSQL:面向初学者的完整指南
Neon是一款革命性的无服务器PostgreSQL解决方案,它通过分离存储和计算层,实现了自动扩缩容、类代码式数据库分支以及零级扩展能力。本指南将帮助你从零开始搭建Neon开发环境,体验这款创新数据库的强大功能。## 准备工作:环境要求与依赖项在开始搭建Neon环境前,请确保你的系统满足以下要求:- Linux操作系统(推荐Ubuntu 20.04+或Debian 11+)- Git
扫一扫分享内容
为遵守国家网络实名制规定,未绑定将限制内容发布与互动
所有评论(0)