如何进行ADO连接ACCESS相关操作

开发 后端
在VC中进行ADO连接ACCESS,界面上即可显示数据表中的第一条记录.这只是一个入门的程序,若有兴趣可以继续完善。。。

***进行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);  
责任编辑:chenqingxiang 来源: CSDN
相关推荐

2009-12-28 14:47:53

ADO工具

2009-12-23 11:01:50

ADO.NET 批处理

2010-02-05 16:35:35

Android操作系统

2009-12-28 15:00:21

ADO操作

2009-12-29 13:57:30

访问ADO.NET

2009-12-28 13:23:38

ADO Records

2010-03-10 19:34:45

Python主线程

2010-01-05 10:11:23

ADO.NET连接池

2009-12-29 13:46:50

ADO.NET类库

2010-02-04 17:42:15

Android数据库

2010-07-26 16:23:46

Telnet 110

2010-02-01 16:22:36

Python字符串操作

2010-01-15 17:31:18

C++Test

2009-12-29 11:21:55

ADO多线程

2009-12-22 09:50:23

ADO.NET学习

2009-12-30 16:45:31

ADO操作

2009-12-28 10:03:58

ADO 对象

2009-12-25 10:25:59

2009-12-25 15:28:48

ADO类

2009-12-25 15:38:12

ADO连接池
点赞
收藏

51CTO技术栈公众号