如何使用MFC连接Access数据库
(2)为系统添加数据源。打开“控制面板”—>“管理工具”—>“数据源”,选择“系统DSN”,点击右边的“添加”按钮,选择“Microsoft Access Driver(*.mdb)”,点击“完成”,给数据源起个名字,如conn,然后点击下面的“选择”,选择刚才建立好的data.mdb,点击“确定”,就完成了数据源的添加工作。
注:如果是64位的操作系统,在点击“添加”按钮时可能没有Microsoft Access Driver(*.mdb)选项,这时你可以打开C:\Windows\SysWOW64\odbcad32.exe,这里面就有了。
(3)引入ado动态库文件。此时准备工作就已经做好了,接下来就是在MFC对话框工程(本文中工程名以Test为例)中进行数据库连接了。在stdafx.h头文件中添加对ado的支持,引入ado动态库文件,添加以下代码即可:
#import "C:\ProgramFiles\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
BOOL CTestApp::InitInstance() { AfxOleInit(); ...... }
注:还有另外一种初始化COM环境的方法,
BOOL CTestApp::InitInstance() { ::CoInitialize(NULL);//在app类中的InitInstance函数中添加 ...... ::CoUninitialize();//在app类中的InitInstance函数的最后(return之前)添加,释放COM环境 }
(5)在对话框头文件CTestDlg.h的类中声明两个成员变量。
_ConnectionPtr m_pConnection; _RecordsetPtr m_pRecordset;
(6)接下来就是在对话框初始化的时候连接数据库了。在CTestDlg::OnInitDialog()中添加以下代码:
BOOL CTestDlg::OnInitDialog() { // TODO:在此添加额外的初始化代码 try { HRESULT hr =m_pConnection.CreateInstance("ADODB.Connection");//创建Connection对象 if(SUCCEEDED(hr)) { hr =m_pConnection->Open("Provider = Microsoft.Jet.OLEDB.4.0; Data Source =e:\\data.mdb","","",adModeUnknown);//连接数据库 //hr =m_pConnection->Open("DRIVER={Microsoft Access Driver(*.mdb)};DBQ=e:\\data.mdb;","","",adModeUnknown);//连接数据库 //上面一句中连接字符串中的Provider是针对ACCESS2000环境的,对于ACCESS97,需要改为:Provider=Microsoft.Jet.OLEDB.3.51; } } catch(_com_error e)//捕捉异常 { CString errormessage; errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage()); AfxMessageBox(errormessage);//显示错误信息 } }
(7)以上准备工作做好了,就可以在程序中使用m_pConnection,m_pRecordset了。调用示例如下:
void CTestDlg::OnBnClickedButton1() { //TODO: 在此添加控件通知处理程序代码 m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open("SELECT* FROM news WHERE id = 174",m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText); _variant_t value = m_pRecordset->GetCollect("content"); SetDlgItemText(IDC_EDIT1,(LPCTSTR)_bstr_t(value)); }
注:可将以上步骤简单地总结一下:
第一步:引入ado动态库文件。第二步:初始化COM环境。第三步:创建数据库连接Connection及记录集Recordset。
通过以上步骤,就能让你的客户端和数据库交互了,可以对数据库进行增改删查等。
如何使用MFC连接Access数据库的更多相关文章
- 【.net 深呼吸】连接Access数据库应注意的几点
本地数据库可以有Y种选择,比如Sqlite.SQL Server Express.SQL Local DB.SQL Server CE.Access等,本文老周选用比较著名的Access本地数据库,在 ...
- C#连接Access数据库(详解)
做一个用VS2012的C#连接Access数据库的备忘, SQL数据库固然强大,有大微软的强力技术支持,LINQ的方便操作,但是如果写一个小程序对数据库方面没有什么大的要求的话,将来在数据库方面就可以 ...
- ASP.net分别连接SQLserver数据库与连接Access数据库精英版
-------------------------连接access2003 字符串------------------------- Provider=Microsoft.Jet.OLEDB.4.0; ...
- php连接Access数据库错误及解决方法
<?php $connstr="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("data.m ...
- php连接Access数据库的三种方法
http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2009/1115/3524.html 虽然不是一个类但先放这儿吧 最近想把一个asp的网站改成 ...
- 三种php连接access数据库方法
种是利用php的pdo,一种是odbc,com接口来与access数据库连接.利用pdo与access数据库连接 $path ="f:fontwww.jb51.netspiderresult ...
- 具体解释VB中连接access数据库的几种方法
在VB中,连接ACCESS数据库的方法主要有以下三种 使用ADO对象,通过编写代码訪问数据库 Connection 对象 ODBC数据源 使用ADO Data 控件高速创建数据库连接 有三种连接方法 ...
- C# 连接 Access 数据库
c#连接Access 数据库需要System.Data, System.Data.OleDb using System.Data using System.Data.OleDb public OleD ...
- JSP连接access数据库
一个用jsp连接Access数据库的代码. 要正确的使用这段代码,你需要首先在Access数据库里创建一username表,表里面创建两个字符型的字段,字段名分别为:uid,pwd,然后插入几条测试数 ...
随机推荐
- 【转】缓存淘汰算法系列之1——LRU类
原文地址:http://www.360doc.com/content/13/0805/15/13247663_304901967.shtml 参考地址(一系列关于缓存的,后面几篇也都在这里有):htt ...
- 谢欣伦 - 原创教程 - 使用GDI+绘制抗锯齿斜线
早些年用过GDI的同学都知道,用GDI绘图API函数画斜线那个锯齿有多恶心.就像下图第一行的三条斜线: 坦白说,45度斜线在抗锯齿以前还是蛮抗锯齿的,哈哈,抗不抗都没什么差别. 那第二行很自然就看得出 ...
- JAVA基础知识总结:五
一.初步认识数组 1.理解数组 数组是用来存储相兼容数据类型的定长的容器 特点: a.只能存放相兼容数据类型,不能存放多种数据类型 b.可以存放基本数据类型和引用数据类型 c.数组是定长的,一旦被初始 ...
- MySQL复制之实践篇
本文主要以"一个主库,两个备库"代表"一个主库,多个备库"的拓扑结构来展示MySQL复制的实践过程. 拓扑结构: 主库创建复制账号: grant replica ...
- LeetCode 543. Diameter of Binary Tree (二叉树的直径)
Given a binary tree, you need to compute the length of the diameter of the tree. The diameter of a b ...
- Java并发编程--线程池
1.ThreadPoolExecutor类 java.uitl.concurrent.ThreadPoolExecutor类是线程池中最核心的一个类,下面我们来看一下ThreadPoolExecuto ...
- 仿微信抢红包(js 转)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 蒙特卡罗算法(Monte Carlo method)
蒙特卡罗方法概述 蒙特卡罗方法又称统计模拟法.随机抽样技术,是一种随机模拟方法,以概率和统计理论方法为基础的一种计算方法,是使用随机数(或更常见的伪随机数)来解决很多计算问题的方法.将所求解的问题同一 ...
- [板子]Floyd&Dijkstra
谨以此笔记记录jjw高三党四个月学习NOI的历程..如转载请标记出处 Floyd算法: 默认是业界最短路最简单的写法,并且只有五行.时间复杂度为O(N3),空间复杂度为O(N2). ;k<=n; ...
- Leetcode题解(28)
90. Subsets II 题目 分析:代码如下 class Solution { public: vector<vector<int> > subsetsWithDup(v ...