
MFC 通用操作Access 数据库的驱动
在MFC里面我用微软的Access数据库驱动来操作Access数据库CDatabasedb;CStringconnect="DRIVER={MicrosoftAccess...
在MFC里面我用微软的Access数据库驱动来操作Access 数据库
CDatabase db;
CString connect = "DRIVER={Microsoft Access Driver (*.mdb)};uid=;pwd=xxx123456;DBQ=my.mdb;";
if(!db.Open(NULL,0,0,connect))
{
MessageBox("打开数据库失败");
return ;
}
//db.BindParameters(
CDataRowset db_set(&db);
// 我用Microsoft Access Driver做驱动来操作Access数据库
// 问题是 假如别人的电脑里没有Access 数据库驱动怎么办??? 有没有更好一点的通用操作ACCESS数据库的驱动程序呢??? 就是大家电脑里面都有的!! 展开
CDatabase db;
CString connect = "DRIVER={Microsoft Access Driver (*.mdb)};uid=;pwd=xxx123456;DBQ=my.mdb;";
if(!db.Open(NULL,0,0,connect))
{
MessageBox("打开数据库失败");
return ;
}
//db.BindParameters(
CDataRowset db_set(&db);
// 我用Microsoft Access Driver做驱动来操作Access数据库
// 问题是 假如别人的电脑里没有Access 数据库驱动怎么办??? 有没有更好一点的通用操作ACCESS数据库的驱动程序呢??? 就是大家电脑里面都有的!! 展开
3个回答
展开全部
MFC ODBC数据库简述
开放数据互连(Open Database Connectivity,简称ODBC)是一种数据库的互操作平台,通过经严格定义的各个级别的ODBC接口和客户系统的初始装置,能够为应用程序提供数据库类型透明性和位置透明性,让应用程序的编写者避免了与数据源相联的复杂性。MFC的数据库扩展部分封装了使用ODBC数据资源的细节,应用程序可以直接使用MFC中的数据库扩展类,来操纵ODBC驱动程序管理器,访问数据库。进行MFC ODBC数据库开发时,所需的基础工具就是MFC ODBC数据库类的使用。利用MFC ODBC开发就是利用MFC ODBC数据库类来操纵ODBC数据源。Visual C++的大多数ODBC访问是通过MFC来完成的。Visual C++的MFC类库定义了几个数据库类,在利用MFC编程时常常用到,它们是CDatabase(数据库类)、CRecordSet(记录集类)、和CRecordView(可视记录集类)。
对于MFC ODBC数据库类来说,CDatabase类对象表示一个同数据源的连接,通过它可以对数据源进行操作。而CRecordSet对象代表从数据源中选择的一组记录的集合,也就是通常所说的记录集对象。
CRecordSet对象通常用于两种形式:动态集(dynasets)和快照集(snapshots)。动态集能与其他用户所做的更改保持同步,快照集则是数据的一个静态视图。每一种形式在记录被打开时都提供一组记录,区别在于,当用户在一个动态集里滚动到一条记录时,有其他用户或是应用程序中的其他记录集所做的更改就会相应地显示出来。CRecordView类对象能以控制的形式显示数据库记录。这个视图是直接连接到一个CRecordSet对象的表视图。
一个应用实例
本实例是某项目中的一部分,目的是实现MFC ODBC数据库与Access数据表格之间的相互操作。包括用Visual C++中的MFC ODBC技术实现对Access数据表格的内容的显示、添加、修改和删除的功能。
1、 ODBC数据源的创建
笔者使用的操作系统为Windows XP,工具是Visual C++6.0。此例中建立的Access表格取名为“plc”。
在“控制面板”中双击“管理工具”图标,然后在新出现的窗口中双击“数据源(ODBC)”,在弹出的对话框中选中“用户DSN”中的“dBASE Files”,单击“添加”按钮,从弹出的对话框中选中“Microsoft Access Driver(*.mdb)”。单击“完成”后,将弹出一个新的对话框,在数据源名及说明后的编辑框中填入表格名“plc”。
在命名数据源之后,需要把它连接到一个数据库。单击“选择”,如图1所示,得到存储在数据目录中plc.mdb的拷贝文件,选中之,单击“确定”关闭此对话框。然后单击“确定”,完成数据源的创建。
开放数据互连(Open Database Connectivity,简称ODBC)是一种数据库的互操作平台,通过经严格定义的各个级别的ODBC接口和客户系统的初始装置,能够为应用程序提供数据库类型透明性和位置透明性,让应用程序的编写者避免了与数据源相联的复杂性。MFC的数据库扩展部分封装了使用ODBC数据资源的细节,应用程序可以直接使用MFC中的数据库扩展类,来操纵ODBC驱动程序管理器,访问数据库。进行MFC ODBC数据库开发时,所需的基础工具就是MFC ODBC数据库类的使用。利用MFC ODBC开发就是利用MFC ODBC数据库类来操纵ODBC数据源。Visual C++的大多数ODBC访问是通过MFC来完成的。Visual C++的MFC类库定义了几个数据库类,在利用MFC编程时常常用到,它们是CDatabase(数据库类)、CRecordSet(记录集类)、和CRecordView(可视记录集类)。
对于MFC ODBC数据库类来说,CDatabase类对象表示一个同数据源的连接,通过它可以对数据源进行操作。而CRecordSet对象代表从数据源中选择的一组记录的集合,也就是通常所说的记录集对象。
CRecordSet对象通常用于两种形式:动态集(dynasets)和快照集(snapshots)。动态集能与其他用户所做的更改保持同步,快照集则是数据的一个静态视图。每一种形式在记录被打开时都提供一组记录,区别在于,当用户在一个动态集里滚动到一条记录时,有其他用户或是应用程序中的其他记录集所做的更改就会相应地显示出来。CRecordView类对象能以控制的形式显示数据库记录。这个视图是直接连接到一个CRecordSet对象的表视图。
一个应用实例
本实例是某项目中的一部分,目的是实现MFC ODBC数据库与Access数据表格之间的相互操作。包括用Visual C++中的MFC ODBC技术实现对Access数据表格的内容的显示、添加、修改和删除的功能。
1、 ODBC数据源的创建
笔者使用的操作系统为Windows XP,工具是Visual C++6.0。此例中建立的Access表格取名为“plc”。
在“控制面板”中双击“管理工具”图标,然后在新出现的窗口中双击“数据源(ODBC)”,在弹出的对话框中选中“用户DSN”中的“dBASE Files”,单击“添加”按钮,从弹出的对话框中选中“Microsoft Access Driver(*.mdb)”。单击“完成”后,将弹出一个新的对话框,在数据源名及说明后的编辑框中填入表格名“plc”。
在命名数据源之后,需要把它连接到一个数据库。单击“选择”,如图1所示,得到存储在数据目录中plc.mdb的拷贝文件,选中之,单击“确定”关闭此对话框。然后单击“确定”,完成数据源的创建。

2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图...
点击进入详情页
本回答由AiPPT提供
展开全部
无法保证任何人电脑上都有的数据库驱动,但你可以打包安装。
ADO的方式比ODBC更好(从各方面都是),一般MFC下推荐使用这个,在没有按照数据源的机器上,运行MDAC安装包(微软官方)即可使用。
ODBC更换为ADO需要较大改动。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-04-10
展开全部
CString sDriver = "MICROSOFT ACCESS DRIVER (*.mdb)";
CString sDsn;
CString sFile = "f://Signin.mdb";
int iRec = 0;
CString ConnectStr = _T("");
ConnectStr.Format("ODBC;DRIVER={%s};DSN='';DBQ=%s",sDriver,sFile);
if (m_DB.IsOpen ())
m_DB.Close ();
if (m_DB.Open (sDsn, FALSE, FALSE, ConnectStr))
{
return TRUE;
}
else
return FALSE;
CString sDsn;
CString sFile = "f://Signin.mdb";
int iRec = 0;
CString ConnectStr = _T("");
ConnectStr.Format("ODBC;DRIVER={%s};DSN='';DBQ=%s",sDriver,sFile);
if (m_DB.IsOpen ())
m_DB.Close ();
if (m_DB.Open (sDsn, FALSE, FALSE, ConnectStr))
{
return TRUE;
}
else
return FALSE;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询