VC++ ADO数据库 FlexGrid控件

耗费了一下午,研究了一下VC的数据库编程,写了这个测试程序。主要的功能为实现access数据库的添加与删除,同时动态的将数据库数据显示在flexgrid控件中。下面把过程记录下来,以备后用。

一。ADO简介
 ADO提供了一组非常简单,将一般通用的数据访问细节进行封装的对象。由于ODBC数据源也提供了一般的OLE DB Privider,所以ADO不仅可以应用自身的OLE DB Privider,而且还可以应用所有的ODBC驱动程序。关于OLE DB和ADO的其它详细情况,读者可以自行查阅相关书籍或MSDN,这里就不一一说明了。让我们直接步入主题,如何掌握ADO这种数据库访问技术ADO的操作方法和前面讲过的DAO的操作在很多方面存在相似之处。
二。主要控件的布置
程序运行效果如图:


1.进入工程向导,建立基于对话框的mfc应用程序。名为databasetest。
加入flexgrid控件:工程--->添加到工程------->components and controls。找到Microsoft Flexgrid control,然后insert。添加几个static box 和editbox,添加两个botton,实现插入和删除的功能。
2.打开access2003,建立空数据库Demo.mdb。建立表Table1。设置编号,时间,采样点数,累加次数,数据5个字段,分别为自动编号,时间/日期,数字,数字和备注类型
如图:


三。数据库操作过程
1.用#import指令引入ADO类型库
要用#import语句来引用支持ADO的组件类型库(*.tlb),其中类型库可以作为可执行程序(DLL、EXE等)的一部分被定位在其自身程序中的附属资源里,如:被定位在msado15.dll的附属资源中,只需要直接用 #import引用它既可。可以直接在Stdafx.h文件中加入下面语句来实现:

#import "c:/program files/common files/system/ado/msado15.dll" /
no_namespace /
rename ("EOF", "adoEOF")


  其中路径名可以根据自己系统安装的ADO支持文件的路径来自行设定。当编译器遇到#import语句时,它会为引用组件类型库中的接口生成包装类,#import语句实际上相当于执行了API涵数LoadTypeLib()。#import语句会在工程可执行程序输出目录中产生两个文件,分别为*.tlh(类型库头文件)及*.tli(类型库实现文件),它们分别为每一个接口产生智能指针,并为各种接口方法、枚举类型,CLSID等进行声明,创建一系列包装方法。语句no_namespace说明ADO对象不使用命名空间,rename ("EOF", "adoEOF")说明将ADO中结束标志EOF改为adoEOF,以避免和其它库中命名相冲突。
2.COM初始化
使用AfxOleInit()来初始化COM库,这项工作通常在CWinApp::InitInstance()的重载函数中完成。代码如下:
BOOL CDatabasetestApp::InitInstance()
{
   ................................
   AfxOleInit();
..................................
}
3.CDatabasetestDlg.h中定义个控件类变量

 // 定义ADO连接、命令、记录集变量指针
 _ConnectionPtr m_pConnection;
 _CommandPtr  m_pCommand;
 _RecordsetPtr m_pRecordset;

// Dialog Data
 //{ {AFX_DATA(CDatabasetestDlg)
 enum { IDD = IDD_DATABASETEST_DIALOG };
 CEdit m_CSamplingTime;
 CString m_SamplingTime;
 UINT m_AccNum;
 UINT m_SamplingNum;
 CMSFlexGrid m_DataGrid;
 //}}AFX_DATA

 // ClassWizard generated virtual function overrides
 //{ {AFX_VIRTUAL(CDatabasetestDlg)

4.这样就可以数据库的实际操作了。首先在主应用程序databasetext.cpp中。主对话框弹出之前添加代码,创建一个实例指针,再用Open打开一个库连接,它将返回一个IUnknown的自动化接口指针

 m_pConnection.CreateInstance(__uuidof(Connection));

 // 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
 // 因为它有时会经常出现一些想不到的错误。jingzhou xu
 try                 
 { 
  // 打开本地Access库Demo.mdb
  m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Demo.mdb","","",adModeUnknown);
  
 }
 catch(_com_error e)
 {
  AfxMessageBox(e.ErrorMessage()); 
 }

注:ConnectionPtr智能指针,通常用于打开、关闭一个库连接或用它的Execute方法来执行一个不返回结果的命令语句(用法和_CommandPtr中的Execute方法类似)。

5.在databasetestDlg.cpp的前面加入:

//引用应用类
extern CDatabasetestApp theApp;

在::OnInitDialog()加入代码:

// 使用ADO创建数据库记录集
 m_pRecordset.CreateInstance(__uuidof(Recordset));

 // 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
 // 因为它有时会经常出现一些想不到的错误。jingzhou xu
 try
 {
  m_pRecordset->CursorLocation = adUseClient;
  m_pRecordset->Open("SELECT * FROM Table1",                // 查询DemoTable表中所有字段
       theApp.m_pConnection.GetInterfacePtr(),  // 获取库接库的IDispatch指针
       adOpenDynamic,
       adLockOptimistic,
       adCmdText);
 }

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: VB是Visual Basic的缩写,是一种运用对象、事件和属性等程序设计概念的编程语言,而数据库则是VB应用程序中非常常见的一个组件。当VB应用程序需要处理大量的数据时,使用数据库可以帮助程序更好地完成数据的存储、搜索和管理等功能。而第三方件则是一些非VB官方提供的组件,但可以与VB程序相容并且能够增强VB程序的功能。下面是VB数据库中比较常见的一些第三方件: 1. DataGrid:这是一个常用的数据显示件,可以用来在VB界面中展示数据表格。 2. ADO件:这是一组用来连接各种数据库件,可以在VB程序中使用SQL来进行数据库查询和操作。 3. DataCombo:这个件可以用来在VB表单中显示一些选择数据项,如下拉列表。 4. DBGrid:这是一个显示和编辑数据库表数据的高级件,能够允许用户进行数据的更新和删除操作。 5. DataReport:这是一个报表件,可以帮助VB程序生成各种格式的报表,从而更好地展示数据。 以上是VB数据库中常见的一些第三方件,这些件可以为VB程序提供更加丰富的功能和更好的用户体验。但要记住,使用第三方件并不一定就能提高程序的质量,因此在选择件时一定要按照实际需求和具体情况来进行权衡和选择。 ### 回答2: VB数据库第三方件有很多,其中一些比较常用的包括: 1. ADO ActiveX数据对象件:用于连接和操作数据库件,支持多种数据库。 2. DataGrid 件:用于在VB应用程序中显示和编辑数据表格。 3. GridEX 件:类似DataGrid,可以实现更加高级的数据展示和编辑。 4. FlexGrid 件:高度可定制的数据网格件,可用于数据编辑、分析和报告等方面。 5. Crystal Reports 件:用于创建和显示报表以及与数据库交互的件。 6. ChartFX 件:用于绘制各种类型的图表和图形,适用于数据分析和展示。 7. SQL Server Reporting Services (SSRS) 件:用于创建和管理SQL Server报表,可以与VB应用程序进行整合。 除此之外,还有许多其他的VB数据库第三方件,比如DBI、ODBC、MyODBC等,开发者可以根据项目需求选择合适的件。 ### 回答3: VB(Visual Basic)是一种开发Windows应用程序的编程语言,而数据库是其中一个重要的组成部分。为了增强VB开发人员开发数据库应用的能力,第三方件便悄然诞生了。以下是几个常见的VB数据库第三方件: 1. Data Grid:它可以在VB窗体中创建一个可编辑的表格件,可显示和编辑数据库中的数据,同时可以对数据进行排序、筛选等功能。 2. ActiveX Data Objects(ADO):它是微软的一种可编程数据访问技术,可以通过VB代码访问各种数据源,如SQL Server数据库、Access数据库、Oracle数据库等。 3. DAO(Data Access Objects):它是一种基于COM(Component Object Model)的数据访问技术,可以访问Access数据库。 4. ODBC(Open Database Connectivity):它是一种标准的API(Application Programming Interface)接口,可以访问各种不同的数据源,如SQL Server、Oracle等数据库。 5. JDBC(Java Database Connectivity):它是一种用于Java编程语言的API,也可以通过VB代码访问Java数据库。 除了以上几个第三方件,还有很多其他的数据库第三方件,如Crystal Report、ActiveReports等。使用这些件可以有效提高VB开发人员的工作效率和程序开发质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值