如何进行ADO连接ACCESS相关操作
创始人
2024-06-18 14:10:16
0

***进行ADO连接ACCESS时会出现相关提示,把LPCSTR类型的字符串自动转换为CString。 除***步外,其余代码均添加在OnInitDialog()中,在网上找了很多资料,但因资料繁杂,版本很多,且连接方法有很多种,所以看着不方便,。#t#

新建一个对话框应用程序,建一个ACESS数据库命名为Demo.mdb,数据表名为Demo Table,数据表中记录的字段值分别为Name,Age..将此数据库放入刚才建的应用程序文件夹下。

1.在stdafx.h中加入
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")

2.在OnInitDialog()中初始化COM.
AfxOleInit();

3.创建Connection对象并连接数据库
首先声明一个_ConnectionPtr接口对象
_ConnectionPtr m_pConnection;

下面创建Connection对象实例及如何连接数据库并进行异常捕捉。

  1. m_pConnection.CreateInstance(__uuidof(Connection));  
  2. try                   
  3. {   
  4. // 打开本地Access库Demo.mdb  
  5. m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Demo.mdb","","",adModeUnknown);  
  6. }  
  7. catch(_com_error e)  
  8. {  
  9. AfxMessageBox("数据库连接失败,确认数据库Demo.mdb是否在当前路径下!");  
  10. return FALSE;  
  11. }  

4.利用_RecordsetPtr智能指针,来打开库内数据表,并对表内的记录、字段等进行各种操作。

  1. RecordsetPtr m_pRecordset;  
  2. m_pRecordset.CreateInstance(__uuidof(Recordset));  
  3.  
  4. try  
  5. {  
  6. m_pRecordset->Open("SELECT * FROM DemoTable",                // 查询DemoTable表中所有字段  
  7.        m_pConnection.GetInterfacePtr(), // 获取库接库的IDispatch指针  
  8.        adOpenDynamic,  
  9.        adLockOptimistic,  
  10.        adCmdText);  
  11. }  
  12. catch(_com_error *e)  
  13. {  
  14. AfxMessageBox(e->ErrorMessage());  
  15. }      

5.读取表内数据。将表内数据读出并显示在编辑框中.
首先在对话框上添加两个EDIT控件并添加变量m_name,m_age;添加代码如下:

  1. variant_t var; //_variant_t是一种通用数据类型,里面可以放不同类型的数据。  
  2. var = m_pRecordset->GetCollect("Name");  
  3. if(var.vt != VT_NULL)  
  4.  m_name = (LPCSTR)_bstr_t(var);    
  5. var = m_pRecordset->GetCollect("Age");  
  6. if(var.vt != VT_NULL)  
  7. m_age = (LPCSTR)_bstr_t(var);  
  8. UpdateData(false);  

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...