使用ADO编写数据库应用程序

2016-02-19 12:14 9 1 收藏

下面图老师小编跟大家分享使用ADO编写数据库应用程序,一起来学习下过程究竟如何进行吧!喜欢就赶紧收藏起来哦~

【 tulaoshi.com - 编程语言 】

使用DAO   
4.1    概述
Visual C++提供了对DAO的封装,MFC DAO类封装了DAO(数据库访问对象)的大部分功能,从面Visual C++程序就可以使用Visual C++提供的MFC DAO类方便的访问Microsoft Jet 数据库,编制简洁、有Visaul C++特色的数据库应用程序。
数据库访问对象(DAO)提供了一种通过程序代码创建和操纵数据库的机制。多个DAO对象构成一个体系结构,在这个结构里,各个DAO对象协同工作。DAO支持以下四个数据库选项:
1、 打开访问数据库(MDB文件)——MDB文件是一个自包含的数据库,它包括查询定义、安全信息、索引、关系,当然还有实际的数据表。用户只须指定MDB文件的路径名。
2、 直接打开ODBC数据源——这里有一个很重要的限制。不能找开以Jet引擎作为驱动程序的ODBC数据源;只可以使用具有自己的ODBC驱动程序DLL的数据源。
3、 用Jet引擎找开ISAM型(索引顺序访问方法)数据源(包括dBase,FoxPro,Paradox,Btrieve,Excel或文本文件)——即使已经设置了ODBC数据源,要用Jet引擎来访问这些文件类型中的一种,也必须以ISAM型数据源的方式来找开文件,而不是以ODBC数据源的方式。
4、 给ACCESS数据库附加外部表——这实际上是用DAO访问ODBC数据源的首选方法。首先使用ACCESS把ODBC表添加到一个MDB文件上,然后依照第一选项中介绍的方法用DAO找开这个MDB文件就可以了。用户也可以用ACCESS把IASM文件附加到一个MDB文件上。
4.2    应用DAO编程
4.21    打开数据库
CDaoWorkspace对象代表一个DAO Workspace对象,在MFC DAO体系结构中处于最高处,定义了一个用户的同数据库的会话,并包含打开的数据库,负责完成数据库的事务处理。我们可以使用隐含的workspace对象。
CDaoDatabase对象代表了一个到数据库的连接,在MFC中,是通过CDaoDatabase封装的。
在构造CDaoDatabase对象时,有如下两种方法:
1、 创建一个CDaoDatabase对象,并向其传递一个指向一个已经找开的CdaoWorkspace对象的指针。
2、 创建一个CDaoDatabase对象,而不明确地指定使用的workspace,此时,MFC将创建一个新的临时的CDaoWorkspace对象。
如下代码所示:
CDaoDatabase  db;
db.Open(“test.mdb”,FALSE,FALSE,_T(“”);
其中参数一包括要打开的文件的全路径名。
4.22    查询记录
一个DAO recordset对象,代表一个数据记录的集合,该集合是一个库表或者是一个查询的运行结果中的全部记录。CDaoRecorset对象有三种类型:表、动态集、快照。
通常情况下,我们在应用程序中可以使用CDaoRecordset的导出类,这一般是通过ClassWizard或AppWizard来生成的。但我们也可以直接使用CDaoRecordset类生成的对象。此时,我们可以动态地绑定recordset对象的数据成员。
如下代码所示:
COleVariant var;
long id;
CString str;
CDaoRecordset m_Set(&db);
m_Set.Open(“查询的SQL语句”);
while(!m_Set.IsEOF())
{
/*
      处理
      m_Set.GetFieldValue(“ID”,var);
      id=V_I4(var);
      m_Set.GetFieldValue(“Name”,var);
      str=var.pbVal;
*/
    m_Set.MoveNext();
}
m_Set.Close();
4.23    添加记录
添加记录用AddNew函数,此时用SetFieldValue来进行赋值。
如下代码所示:
        m_pDaoRecordset-AddNew ();
        sprintf(strValue,"%s",m_UserName  );
        m_pDaoRecordset-SetFieldValue ("UserName",strValue);
        sprintf(strValue,"%d",m_PointId  );
        m_pDaoRecordset-SetFieldValue ("PointId",strValue);
dataSrc.SetDateTime (m_UpdateTime .GetYear ),m_UpdateTime .GetMonth ),m_UpdateTime .GetDay (),
        m_UpdateTime .GetHour (),m_UpdateTime .GetMinute (),m_UpdateTime .GetSecond ());
        valValue=dataSrc;
        m_pDaoRecordset-SetFieldValue ("UpdateTime",valValue);
        sprintf(strValue,"%f",m_pRecordset-m_OldValue  );
        m_pDaoRecordset-SetFieldValue ("OldValue",strValue);
        sprintf(strValue,"%f",m_pRecordset-m_NewValue );
        m_pDaoRecordset-SetFieldValue ("NewValue",strValue);
        m_pDaoRecordset-Update ();
此时,要注意,日期时间型数据要用SetDataTime函数来赋值,这里面要用到COleVariant类型数据,具体用法可以参考有关帮助。
4.24    修改记录
修改记录用Edit()函数,把记录定位到要修改的位置,调用Edit函数,修改完成后,调用Update函数。
如下代码所示:
m_Set.Edit();
m_Set.SetFieldValue(“列名”,”字符串”);
m_Set.Update();
4.25    删除记录
删除记录用Delete()函数,使用后不需调用Update()函数。
4.26    统计记录
可以使用如下代码来统计记录数:
    COleVariant varValue;
    CDaoRecordset m_Set(&db);
    m_Set.Open(dbOpenDynaset,”SQL语句”);
    varValue=m_Set.GetFieldValue(0);
    m_lMaxCount=V_I4(&varValue);
    m_Set.Close();
如果是统计一张表中总记录,可以使用CDaoTableDef对象,如下代码所示:
    CDaoTableDef m_Set(&gUseDB);
  Count=m_Set.GetRecordCount();
  m_Set.Close();
不能用CDaoRecordset对象的GetRecordCount()来取得记录数。
4.3    总结
使用DAO技术可以便我们方便的访问Microsoft Jet引擎数据库,由于Microsoft Jet不支持多线程,因此,必须限制调用到应用程序主线程的所有DAO。

来源:http://www.tulaoshi.com/n/20160219/1600272.html

延伸阅读
标签: Delphi
  13.3.2 数据控制部件         数据控制部件页上的部件,主要用于设计用户界面,对数据库中的数据进行浏览、编辑、插入、删除等操作。因而数据控制部件常常又被称为数据浏览部件,数据控制部件其实是在Standard页上的标准部件的基础上,相应地增加了数据浏览功能,使得它们能够显示和编辑数...
 Delphi是著名的Borland公司开发的可视化软件开发工具。有这样一句话最为经典、贴切的描述了Delphi——“真正的程序员用C,聪明的程序员用Delphi”。很多人把Delphi称为是第四代编程语言,它具有简单、高效、功能强大等特点。和Visual C++比较,Delphi更简单、更易于学习掌握,而在功能上却毫不逊色;和Visual Basic相比,Delphi则...
随着 Microsoft 的 .NET 框架的逐渐流行,许多开发人员迫切想了解关于将 .NET 应用程序与 Oracle 集成的最好的方式的信息 不仅在基本的连通性方面,还包括与使用 Visual Studio.NET (VS.NET) 进行有效的应用程序开发的关系。 在本文中,我将说明构建使用 Oracle 数据库的 .NET 应用程序所涉及到的基本但不可或缺的过程,包括: 如何...
标签: ASP
  web.config文件是标准的xml文件,我们可以使用它来为一台机器下的每一个web应用程序或某个应用程序或一个目录下的asp.net页面来进行设置,当然,它也可以为一个单独的web页面进行设置。  如:网站的主目录是\inetpub\wwwroot\,那么我们将web.config放置于其下,那么这个网站中的应用程序将被web.config中的设置所影响。  e....
本文主要介绍用C# Builder通过ODBC访问数据。并将数据导出到Excel,下面以C# Builder Enterprise+Microsoft Access 2000+Microsoft Excel 2000为例。 1.建立数据库mydb,内建表:联系人 联系人ID 名字 姓氏 地址 城市 省份 [ 相关贴图 ] 2.建立ODBC(mydb) 3.编写程序 点击菜单 Fil...

经验教程

481

收藏

68
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部