VS2010中MFC的ADO方式访问数据库

上传人:cl****1 文档编号:506986327 上传时间:2023-01-03 格式:DOCX 页数:4 大小:15.84KB
返回 下载 相关 举报
VS2010中MFC的ADO方式访问数据库_第1页
第1页 / 共4页
VS2010中MFC的ADO方式访问数据库_第2页
第2页 / 共4页
VS2010中MFC的ADO方式访问数据库_第3页
第3页 / 共4页
VS2010中MFC的ADO方式访问数据库_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《VS2010中MFC的ADO方式访问数据库》由会员分享,可在线阅读,更多相关《VS2010中MFC的ADO方式访问数据库(4页珍藏版)》请在金锄头文库上搜索。

1、文档供参考,可复制、编制,期待您的好评与关注! MFC里用ADO方式连接数据库1.在stdafx.h文件中添加如下代码#import c:program filescommon filessystemadomsado15.dll no_namespace rename (EOF, adoEOF)用#import语句来引用支持ADO的组件类型库(*.tlb),其中类型库可以作为可执行程序(DLL、EXE等)的一部分被定位在其自身程序中的附属资源里,如:被定位在msado15.dll的附属资源中,其中路径名可以根据自己系统安装的ADO支持文件的路径来自行设定。当编译器遇到#import语句时,它会

2、为引用组件类型库中的接口生成包装类,#import语句实际上相当于执行了API涵数LoadTypeLib()。#import语句会在工程可执行程序输出目录中产生两个文件,分别为*.tlh(类型库头文件)及*.tli(类型库实现文件),它们分别为每一个接口产生智能指针,并为各种接口方法、枚举类型,CLSID等进行声明,创建一系列包装方法。语句no_namespace说明ADO对象不使用命名空间,rename (EOF, adoEOF)说明将ADO中结束标志EOF改为adoEOF,以避免和其它库中命名相冲突。2. 定义_ConnectionPtr变量调用Connection对象的Open方法建立与

3、服务器的连接。 UpdateData(true);/_ConnectionPtr m_pConnection;/声明一个Connection指针 HRESULT hr=m_pConnection.CreateInstance(ADODB.Connection);/创建Connection对象 /定义初始化的连接参数CString strConnection=_T(Provider=SQLOLEDB;Server=(local);Database=);/服务器名称为local strConnection+=m_datasource;/数据库名称 strConnection+=;User ID=;

4、 strConnection+=m_user; /登陆名 strConnection+=;Password=; strConnection+=m_password; /登陆密码 /把CString转换为 _bstr_t型 _bstr_t bstrSRC(strConnection);/用try。catch()来捕获错误信息 try m_pConnection-Open(bstrSRC,adModeUnknown);/打开我们的链接库 MessageBox(_T(登陆成功!); catch(_com_error &e) MessageBox(e.Description(),_T(worring)

5、,MB_OK|MB_ICONINFORMATION); 这样就连接上了我的数据库。3. _RecordsetPtr智能指针,可以用来打开库内数据表,并可以对表内的记录、字段等进行各种操作。打开数据表。打开库内表名为xs的数据表,代码如下:_RecordsetPtr m_pRecordset;_variant_t var; CString strsql = _T(select * from xs);/具体执行的SQL语句 m_pRecordset = m_pConnection-Execute(_bstr_t(strsql),NULL,adCmdText);/将查询数据导入m_pRecordse

6、t数据容器 /读取并显示记录 for(int i=0;iadoEOF)/遍历列的记录 var = m_pRecordset-GetCollect(xh);/获取当前记录指针所指的字段值CString xh = (TCHAR*)(_bstr_t)var; /转换为CString型var = m_pRecordset-GetCollect(name);CString name = (TCHAR*)(_bstr_t)var;var = m_pRecordset-GetCollect(age);CString age = (TCHAR*)(_bstr_t)var;/显示到listCtrl中m_list

7、.InsertItem(i,xh);m_list.SetItemText(i,1,name);m_list.SetItemText(i,2,age); /UpdateData(false);m_pRecordset-MoveNext();/移向下一条记录 在BOOL CADOTest1Dlg:OnInitDialog()中添加listCtrl的初始化:/ TODO: 在此添加额外的初始化代码CRect rect; m_list.GetClientRect(&rect); / 为列表视图控件添加全行选中和栅格风格 m_list.SetExtendedStyle(m_list.GetExtende

8、dStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES); / 为列表视图控件添加两列 m_list.InsertColumn(0, _T(xh), LVCFMT_LEFT, rect.Width()/3, 0);/列索引,列标题,对齐方式,列宽,对应列表子项索引 m_list.InsertColumn(1, _T(name), LVCFMT_LEFT, rect.Width()/3, 1); m_list.InsertColumn(2, _T(age), LVCFMT_LEFT, rect.Width()/3, 2);4.数据库添加操作,编辑“添

9、加”的消息响应函数:void CADOTest1Dlg:OnBnClickedButton1()/ TODO: 在此添加控件通知处理程序代码 if(FAILED(m_pRecordset.CreateInstance(ADODB.Recordset) return; try m_pRecordset-Open(_variant_t(_T(xs),_variant_t(IDispatch*)m_pConnection),adOpenKeyset,adLockOptimistic,adCmdTable); catch(_com_error &e) MessageBox(e.Description(),_T(worring),MB_OK); /存入数据 CString strSql = _T(insert into xs (xh,name,age) values(6,张曼玉,16); /具体的SQL语句 /将查询数据导入m_pRecordsetm_pRecordset = m_pConnection-Execute(_bstr_t(strSql),NULL,adCmdText);5.删除操作只需要将上述函数里的存入数据语句改为:CString strSql = _T(delete from employee where no=6); /

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 国内外标准规范

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号