⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csdn_文档中心_使用ado编写数据库应用程序.htm

📁 csdn10年中间经典帖子
💻 HTM
📖 第 1 页 / 共 2 页
字号:
          <TD align=middle height=5></TD>
          <TD align=middle width=500></TD></TR>
        <TR>
          <TD align=middle bgColor=#003399 height=10><FONT 
            color=#ffffff>标题</FONT></TD>
          <TD><B>&nbsp;&nbsp;&nbsp;&nbsp;使用ADO编写数据库应用程序</B>&nbsp;&nbsp;&nbsp;&nbsp;zzh(原作) 
          </TD></TR>
        <TR>
          <TD align=middle height=5></TD>
          <TD align=middle width=500></TD></TR>
        <TR>
          <TD align=middle bgColor=#003399><FONT color=#ffffff>关键字</FONT></TD>
          <TD width=500>&nbsp;&nbsp;&nbsp;&nbsp;使用ADO编写数据库应用程序</TD></TR>
        <TR>
          <TD align=middle height=5></TD>
          <TD align=middle width=500></TD></TR></TBODY></TABLE><!--文章说明信息结束//-->
      <TABLE border=0 width=600>
        <TBODY>
        <TR>
          <TD align=left><BR>使用DAO&nbsp; &nbsp; 
            <BR>4.1&nbsp;&nbsp;&nbsp;&nbsp;概述<BR>Visual C++提供了对DAO的封装,MFC 
            DAO类封装了DAO(数据库访问对象)的大部分功能,从面Visual C++程序就可以使用Visual C++提供的MFC 
            DAO类方便的访问Microsoft Jet 数据库,编制简洁、有Visaul 
            C++特色的数据库应用程序。<BR>数据库访问对象(DAO)提供了一种通过程序代码创建和操纵数据库的机制。多个DAO对象构成一个体系结构,在这个结构里,各个DAO对象协同工作。DAO支持以下四个数据库选项:<BR>1、 
            打开访问数据库(MDB文件)——MDB文件是一个自包含的数据库,它包括查询定义、安全信息、索引、关系,当然还有实际的数据表。用户只须指定MDB文件的路径名。<BR>2、 
            直接打开ODBC数据源——这里有一个很重要的限制。不能找开以Jet引擎作为驱动程序的ODBC数据源;只可以使用具有自己的ODBC驱动程序DLL的数据源。<BR>3、 
            用Jet引擎找开ISAM型(索引顺序访问方法)数据源(包括dBase,FoxPro,Paradox,Btrieve,Excel或文本文件)——即使已经设置了ODBC数据源,要用Jet引擎来访问这些文件类型中的一种,也必须以ISAM型数据源的方式来找开文件,而不是以ODBC数据源的方式。<BR>4、 
            给ACCESS数据库附加外部表——这实际上是用DAO访问ODBC数据源的首选方法。首先使用ACCESS把ODBC表添加到一个MDB文件上,然后依照第一选项中介绍的方法用DAO找开这个MDB文件就可以了。用户也可以用ACCESS把IASM文件附加到一个MDB文件上。<BR>4.2&nbsp;&nbsp;&nbsp;&nbsp;应用DAO编程<BR>4.21&nbsp;&nbsp;&nbsp;&nbsp;打开数据库<BR>CDaoWorkspace对象代表一个DAO 
            Workspace对象,在MFC 
            DAO体系结构中处于最高处,定义了一个用户的同数据库的会话,并包含打开的数据库,负责完成数据库的事务处理。我们可以使用隐含的workspace对象。<BR>CDaoDatabase对象代表了一个到数据库的连接,在MFC中,是通过CDaoDatabase封装的。<BR>在构造CDaoDatabase对象时,有如下两种方法:<BR>1、 
            创建一个CDaoDatabase对象,并向其传递一个指向一个已经找开的CdaoWorkspace对象的指针。<BR>2、 
            创建一个CDaoDatabase对象,而不明确地指定使用的workspace,此时,MFC将创建一个新的临时的CDaoWorkspace对象。<BR>如下代码所示:<BR>CDaoDatabase&nbsp; 
            db;<BR>db.Open(“test.mdb”,FALSE,FALSE,_T(“”);<BR>其中参数一包括要打开的文件的全路径名。<BR>4.22&nbsp;&nbsp;&nbsp;&nbsp;查询记录<BR>一个DAO 
            recordset对象,代表一个数据记录的集合,该集合是一个库表或者是一个查询的运行结果中的全部记录。CDaoRecorset对象有三种类型:表、动态集、快照。<BR>通常情况下,我们在应用程序中可以使用CDaoRecordset的导出类,这一般是通过ClassWizard或AppWizard来生成的。但我们也可以直接使用CDaoRecordset类生成的对象。此时,我们可以动态地绑定recordset对象的数据成员。<BR>如下代码所示:<BR>COleVariant 
            var;<BR>long id;<BR>CString str;<BR>CDaoRecordset 
            m_Set(&amp;db);<BR>m_Set.Open(“查询的SQL语句”);<BR>while(!m_Set.IsEOF())<BR>{<BR>/*<BR>&nbsp; 
            &nbsp; &nbsp; 处理<BR>&nbsp; &nbsp; &nbsp; 
            m_Set.GetFieldValue(“ID”,var);<BR>&nbsp; &nbsp; &nbsp; 
            id=V_I4(var);<BR>&nbsp; &nbsp; &nbsp; 
            m_Set.GetFieldValue(“Name”,var);<BR>&nbsp; &nbsp; &nbsp; 
            str=var.pbVal;<BR>*/<BR>&nbsp; &nbsp; 
            m_Set.MoveNext();<BR>}<BR>m_Set.Close();<BR>4.23&nbsp;&nbsp;&nbsp;&nbsp;添加记录<BR>添加记录用AddNew函数,此时用SetFieldValue来进行赋值。<BR>如下代码所示:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_pDaoRecordset-&gt;AddNew 
            ();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sprintf(strValue,"%s",&gt;m_UserName&nbsp; 
            );<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_pDaoRecordset-&gt;SetFieldValue 
            ("UserName",strValue);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sprintf(strValue,"%d",m_PointId&nbsp; 
            );<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_pDaoRecordset-&gt;SetFieldValue 
            ("PointId",strValue);<BR>dataSrc.SetDateTime (m_UpdateTime .GetYear 
            ),m_UpdateTime .GetMonth ),m_UpdateTime .GetDay 
            (),<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_UpdateTime 
            .GetHour (),m_UpdateTime .GetMinute (),m_UpdateTime .GetSecond 
            ());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;valValue=dataSrc;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_pDaoRecordset-&gt;SetFieldValue 
            ("UpdateTime",valValue);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sprintf(strValue,"%f",m_pRecordset-&gt;m_OldValue&nbsp; 
            );<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_pDaoRecordset-&gt;SetFieldValue 
            ("OldValue",strValue);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sprintf(strValue,"%f",m_pRecordset-&gt;m_NewValue 
            );<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_pDaoRecordset-&gt;SetFieldValue 
            ("NewValue",strValue);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_pDaoRecordset-&gt;Update 
            ();<BR>此时,要注意,日期时间型数据要用SetDataTime函数来赋值,这里面要用到COleVariant类型数据,具体用法可以参考有关帮助。<BR>4.24&nbsp;&nbsp;&nbsp;&nbsp;修改记录<BR>修改记录用Edit()函数,把记录定位到要修改的位置,调用Edit函数,修改完成后,调用Update函数。<BR>如下代码所示:<BR>m_Set.Edit();<BR>m_Set.SetFieldValue(“列名”,”字符串”);<BR>m_Set.Update();<BR>4.25&nbsp;&nbsp;&nbsp;&nbsp;删除记录<BR>删除记录用Delete()函数,使用后不需调用Update()函数。<BR>4.26&nbsp;&nbsp;&nbsp;&nbsp;统计记录<BR>可以使用如下代码来统计记录数:<BR>&nbsp;&nbsp;&nbsp;&nbsp;COleVariant 
            varValue;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CDaoRecordset 
            m_Set(&amp;db);<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_Set.Open(dbOpenDynaset,”SQL语句”);<BR>&nbsp;&nbsp;&nbsp;&nbsp;varValue=m_Set.GetFieldValue(0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_lMaxCount=V_I4(&amp;varValue);<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_Set.Close();<BR>如果是统计一张表中总记录,可以使用CDaoTableDef对象,如下代码所示:<BR>&nbsp;&nbsp;&nbsp;&nbsp;CDaoTableDef 
            m_Set(&amp;gUseDB);<BR>&nbsp; 
            Count=m_Set.GetRecordCount();<BR>&nbsp; 
            m_Set.Close();<BR>不能用CDaoRecordset对象的GetRecordCount()来取得记录数。<BR>4.3&nbsp;&nbsp;&nbsp;&nbsp;总结<BR>使用DAO技术可以便我们方便的访问Microsoft 
            Jet引擎数据库,由于Microsoft 
        Jet不支持多线程,因此,必须限制调用到应用程序主线程的所有DAO。<BR><BR></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR>
<TABLE align=center bgColor=#006699 border=0 cellPadding=0 cellSpacing=0 
width=770>
  <TBODY>
  <TR bgColor=#006699>
    <TD align=middle bgColor=#006699 id=white><FONT 
    color=#ffffff>对该文的评论</FONT></TD>
    <TD align=middle>
      <SCRIPT src="CSDN_文档中心_使用ADO编写数据库应用程序.files/readnum.htm"></SCRIPT>
    </TD></TR></TBODY></TABLE>
<TABLE align=center bgColor=#666666 border=0 cellPadding=2 cellSpacing=1 
width=770>
  <TBODY>
  <TR>
    <TD bgColor=#cccccc colSpan=3><SPAN style="COLOR: #cccccc"><IMG height=16 
      hspace=1 src="CSDN_文档中心_使用ADO编写数据库应用程序.files/ico_pencil.gif" width=16> 
      </SPAN>&nbsp;&nbsp;&nbsp;&nbsp; blodes <I>(2004-2-2 22:10:00)</I> </TD></TR>
  <TR>
    <TD bgColor=#ffffff colSpan=3 
      width=532><BR>晕,有没搞错??????????晕,有没搞错??????????晕,有没搞错??????????晕,有没搞错??????????晕,有没搞错??????????晕,有没搞错??????????晕,有没搞错??????????晕,有没搞错??????????晕,有没搞错??????????晕,有没搞错??????????晕,有没搞错?????????? 
      <BR></TD></TR></TBODY></TABLE>
<TABLE align=center bgColor=#666666 border=0 cellPadding=2 cellSpacing=1 
width=770>
  <TBODY>
  <TR>
    <TD bgColor=#cccccc colSpan=3><SPAN style="COLOR: #cccccc"><IMG height=16 
      hspace=1 src="CSDN_文档中心_使用ADO编写数据库应用程序.files/ico_pencil.gif" width=16> 
      </SPAN>&nbsp;&nbsp;&nbsp;&nbsp; hlt1982 <I>(2003-8-12 18:56:04)</I> </TD></TR>
  <TR>
    <TD bgColor=#ffffff colSpan=3 
      width=532><BR>标题弄错了吧?标题弄错了吧?标题弄错了吧?标题弄错了吧?标题弄错了吧?!!!!! 
<BR></TD></TR></TBODY></TABLE>
<TABLE align=center bgColor=#666666 border=0 cellPadding=2 cellSpacing=1 
width=770>
  <TBODY>
  <TR>
    <TD bgColor=#cccccc colSpan=3><SPAN style="COLOR: #cccccc"><IMG height=16 
      hspace=1 src="CSDN_文档中心_使用ADO编写数据库应用程序.files/ico_pencil.gif" width=16> 
      </SPAN>&nbsp;&nbsp;&nbsp;&nbsp; alphapaopao <I>(2001-11-11 21:42:06)</I> 
    </TD></TR>
  <TR>
    <TD bgColor=#ffffff colSpan=3 width=532><BR>作者懂不懂? 
<BR></TD></TR></TBODY></TABLE>
<TABLE align=center bgColor=#666666 border=0 cellPadding=2 cellSpacing=1 
width=770>
  <TBODY>
  <TR>
    <TD bgColor=#cccccc colSpan=3><SPAN style="COLOR: #cccccc"><IMG height=16 
      hspace=1 src="CSDN_文档中心_使用ADO编写数据库应用程序.files/ico_pencil.gif" width=16> 
      </SPAN>&nbsp;&nbsp;&nbsp;&nbsp; susdj <I>(2001-4-12 14:40:03)</I> </TD></TR>
  <TR>
    <TD bgColor=#ffffff colSpan=3 width=532><BR>是主编的错还是作者的呢? 
<BR></TD></TR></TBODY></TABLE>
<TABLE align=center bgColor=#666666 border=0 cellPadding=2 cellSpacing=1 
width=770>
  <TBODY>
  <TR>
    <TD bgColor=#cccccc colSpan=3><SPAN style="COLOR: #cccccc"><IMG height=16 
      hspace=1 src="CSDN_文档中心_使用ADO编写数据库应用程序.files/ico_pencil.gif" width=16> 
      </SPAN>&nbsp;&nbsp;&nbsp;&nbsp; sztanj <I>(2000-8-17 9:41:55)</I> </TD></TR>
  <TR>
    <TD bgColor=#ffffff colSpan=3 width=532><BR>DAO和ADO完全不一样。 
  <BR></TD></TR></TBODY></TABLE>
<TABLE align=center bgColor=#666666 border=0 cellPadding=2 cellSpacing=1 
width=770>
  <TBODY>
  <TR>
    <TD bgColor=#cccccc colSpan=3><SPAN style="COLOR: #cccccc"><IMG height=16 
      hspace=1 src="CSDN_文档中心_使用ADO编写数据库应用程序.files/ico_pencil.gif" width=16> 
      </SPAN>&nbsp;&nbsp;&nbsp;&nbsp; bokei <I>(2000-8-13 17:07:40)</I> </TD></TR>
  <TR>
    <TD bgColor=#ffffff colSpan=3 width=532><BR>标题弄错了吧? 
<BR></TD></TR></TBODY></TABLE><BR>
<DIV align=center>
<TABLE align=center bgColor=#cccccc border=0 cellPadding=2 cellSpacing=1 
width=770>
  <TBODY>
  <TR>
    <TH bgColor=#006699 id=white><FONT 
color=#ffffff>我要评论</FONT></TH></TR></TBODY></TABLE></DIV>
<DIV align=center>
<TABLE border=0 width=770>
  <TBODY>
  <TR>
    <TD>你没有登陆,无法发表评论。 请先<A 
      href="http://www.csdn.net/member/login.asp?from=/Develop/read_article.asp?id=331">登陆</A> 
      <A 
href="http://www.csdn.net/expert/zc.asp">我要注册</A><BR></TD></TR></TBODY></TABLE></DIV><BR>
<HR noShade SIZE=1 width=770>

<TABLE border=0 cellPadding=0 cellSpacing=0 width=500>
  <TBODY>
  <TR align=middle>
    <TD height=10 vAlign=bottom><A 
      href="http://www.csdn.net/intro/intro.asp?id=2">网站简介</A> - <A 
      href="http://www.csdn.net/intro/intro.asp?id=5">广告服务</A> - <A 
      href="http://www.csdn.net/map/map.shtm">网站地图</A> - <A 
      href="http://www.csdn.net/help/help.asp">帮助信息</A> - <A 
      href="http://www.csdn.net/intro/intro.asp?id=2">联系方式</A> - <A 
      href="http://www.csdn.net/english">English</A> </TD>
    <TD align=middle rowSpan=3><A 
      href="http://www.hd315.gov.cn/beian/view.asp?bianhao=010202001032100010"><IMG 
      border=0 height=48 src="CSDN_文档中心_使用ADO编写数据库应用程序.files/biaoshi.gif" 
      width=40></A></TD></TR>
  <TR align=middle>
    <TD vAlign=top>百联美达美公司 版权所有 京ICP证020026号</TD></TR>
  <TR align=middle>
    <TD vAlign=top><FONT face=Verdana>Copyright &copy; CSDN.net, Inc. All rights 
      reserved</FONT></TD></TR>
  <TR>
    <TD height=15></TD>
    <TD></TD></TR></TBODY></TABLE></DIV>
<DIV></DIV><!--内容结束//--><!--结束//--></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -