在C++Builder 5中使用ADO数据库编程

BCB程序 专栏收录该内容
7 篇文章 0 订阅

在C++Builder 5中使用ADO数据库编程

---转载自《计算机世界日报》 (文/凌震)

---- 本文介绍了在 C++Builder 5环境下新增的ADO控件的使用方法,并给出了一个简单的实例。

---- 一、ADO概述

---- ADO(Active Data Object) 是微软公司基于OLE DB的数据库模型。它实现了一系列COM接口,通过数据提供者(Data Provider)和数据使用者( Data Consumer)来实现广义的数据存取。ADO模型一方面简化了数据存取,例如使用Jet OLE DB Provider可以实现Access数据库的无DSN连接;另一方面,在ASP等Internet应用中也得到了广泛的使用。

---- 在C++Builder 5/Delphi 5中诸多新增特性中,ADO数据控件的引入是比较引人注目的,它使ADO编程和在Visual Basic 6中一样容易。由于VCL类库对ADO的封装更加合理,旧的数据控件可以很容易地升级到ADO支持,而不象在VB中某些DAO或RDO控件无法兼容ADO。

---- 二、使用ADO控件

---- 在C++Builder 5中,ADO控件实质上是一种数据访问组件。如果读者有过C++Builder先前版本的数据库开发经验,就会发现与数据访问组件相连的数据源组件(TdataSource) 和数据感知组件(如TDBGrid)的使用方法和以前一样,只需把 TdataSource 连到ADO控件上即可。

---- 如果要实现简单的表操作或查询,可以使用TADOTable或TADOQuery。更一般地,可以使用TADODataSet控件,其基本属性的设置方法如下:

---- (1)ConnectionString属性:点击属性栏中的省略号,出现配置窗口,选"Use Connection String",按Build按钮。在接下来的窗口中选择数据提供者,以微软的Northwind示例Access数据库为例,选Microsoft Jet 4.0 OLE DB Provider, 按Next按钮,选择数据库的路径和文件名。点击Test Connection按钮可以测试数据库连接。点击"确定"。

---- (2)CommandText属性:可以使用CommandText Editor生成SQL语句或Shape语句。

---- 注意,TADODataSet不支持不返回结果集的DML语句,如DELETE,INSERT,UPDATE。如果要使用这些语句,选择TADOCommand或TADOQuery。

---- 这些ADO控件自身已能实现数据库连接,也可以设置其Connection属性为一个TADOConnection控件名,而在 TADOConnection控件中设置 ConnectionString属性。所有属性也可以用代码在运行期间设置。

---- 三、一个Master/Detail实例

---- 下面以一个简单的实例说明ADO控件的应用。这里我们用Shape语句实现Master/Detail关系。关于Shape语句的详细解释,请参考MSDN文档。

---- 1. 新建一个项目,并在窗体中放置下列控件(带省略号的属性值先不设置):

名称控件类型属性属性值
ADOConnection1TADOConnectionConnectionString
ADODataSet1TADODataSet ConnectionADOConnection1CommandText…
DataSource1TDataSourceDataSetADODataSet1
DBGrid1TDBGridDataSourceDataSource1
ADODataSet2TADODataSet DataSetField
DataSource2TDataSourceDataSetADODataSet2
DBGrid2TDBGridDataSourceDataSource2

---- 2. 设置 ADOConnection1的ConnectionString值

---- 选择Data Provider为MSDataShape,并设置Northwind数据库的路径和名称。

---- 3. 设置 ADODataSet1的CommandText值如下:

SHAPE  {select * from Orders}
APPEND ({select * from [Order Details]} AS Details
   RELATE OrderID TO OrderID)
---- 这里定义了主表Orders和子表Order Details通过OrderID的连接。

---- 4. 在ADODataSet1控件上右击,选Fields Editor…->右击->选Add fields… 或Add all fields,务必选中"Details"项,这是我们在Shape语句中定义的用于子表连接主表的数据集。

---- 5. 设置

----ADODataSet2的DataSetField值,这时可供选择的值为ADODataSet1Details,选中它,表明与ADODataSet1的Details列相连。

---- 6. 出现在 DBGrid1中的 Details 列,其每个记录都是DataSet类型的。可以在DBGrid1中隐藏 Details列的显示:选择 DBGrid1的Columns属性,在弹出窗口的工具条上点击 Add all Fields,选中 Details,点击Delete Selected.

---- 7. 运行该程序,当数据指针在主表Orders中移动时,子表Order Details自动更新以显示不同订单的明细条目。

---- 从以上实例看出, C++Builder 5完全具备开发复杂的ADO应用程序的能力,其强大的VCL控件使开发者能集中注意力于数据库的逻辑与功能设计,而不必关心繁复的常规代码和操作。

展开阅读全文
  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

上篇 C++ Builder入门 第一章 C++ Builder 5的集成开发环境 1.1 概述 1.1.1 C++ Builder 5的主要特点 1.1.2 C++ Builder 5的新增功能 1.1.3 C++ Builder 5的安装与运行 1.2 C++ Builder 5的集成开发环境 1.2.1 窗体 1.2.2 菜单栏 1.2.3 加速栏 1.2.4 控件栏 1.2.5 对象观察器 1.2.6 工程管理器 1.2.7 代码编辑器 1.2.8 类浏览器 1.2.9 桌面工具栏 1.3 C++ Builder的编程方法和步骤 1.3.1 开始一个新的工程 1.3.2 设计用户界面 1.3.3 属性的设置 1.3.4 编写程序代码 1.3.5 编译、运行程序 1.4 程序的调试 1.4.1 程序错误的种类 1.4.2 C++ Builder集成环境的调试选项 1.4.3 C++ Builder的主要调试手段 1.4.4 C++ Builder的辅助调试工具 1.5 使用联机帮助 1.6 小结 第二章 窗体 2.1 窗体的属性、事件和方法 2.1.1 窗体的主要属性 2.1.2 窗体的主要事件 2.1.3 窗体的方法 2.2 设置窗体环境 2.3 窗体模板 2.3.1 使用窗体模板 2.3.2 向窗体模板库加入新的窗体模板 2.4 菜单设计 2.5 菜单项的主要属性和方法 2.6 菜单模板 2.7 工具栏设计 2.8 状态栏设计 2.9 综合实例 2.10 小结 第三章 常用控件编程 3.1 进度条控件(ProgressBar) 3.1.1 进度条捷件的属性 3.1.2 进度条控件的入法 3.2 动画控件(Animate) 3.2.1 动画控件的属性 3.2.2 动画控件的主要方法 3.3 列表框控件(ListBox) 3.3.1 列表框控件的属性 3.3.2 列表框的主要方法 3.4 组合框控件(ComboBox) 3.4.1 组合框拧件的属性 3.4.2 组合框控件的方法 3.5 列表视图控件的属性(ListView) 3.6 树形视图控件(TreeView) 3.7 文件系统控件 3.7.1 文件列表框控件(FileList) 3.7.2 驱动器组合框控件(DriveComboBox) 3.7.3 过滤器组合框控件(FilterComboBox) 3.7.4 目录列表框控件(DirectoryListBox) 3.8 公用对话枢控件 3.8.1 OpenDialog的主要属性 3.8.2 OpenDialog的方法——Execute方法 3.9 文本编辑校件(RichEdit) 3.9.1 文本编辑控件的主要属性 3.9.2 文本编辑校件的方法 3.10 小结 第四章 消息及异常 4.1 Windows消息和C++ Builder事件 4.2 消息映射 4.3 自定义消息 4.3.1 定义自己的消息 4.3.2 定义消息处理旬柄 4.3.3 发送和传递消息 4.4 异常处理 4.5 try/catch块 4.6 异常类 4.7 替代缺省的异常处理 4.8 小结 篇 C++ Builder进阶 第五章 图形和图像 5.1 图形功能 5.1.1 画布(Canvas)的属性 5.1.2 画布对象的常用方法 5.2 图像功能 5.2.1 TGraphic类 5.2.2 TPicture类 5.2.3 TImage组件及其应用 5.2.4 TShape组件 5.3 图形和图像的综合 5.3.1 组件设计 5.3.2 代码设计 5.4 小结 第六章 多媒体 6.1 多媒体与MCI Media Player 6.2 用MediaPlayer控件进行编程 6.2.1 MediaPlayer的主要属性及事件 6.2.2 使用MediaPlayer控件 6.3 运用MCI API进行多媒体开发 6.3.1 PlaySound函数 6.3.2 mciSendString 6.3.3 mciSendCommand 6.4 ActiveMovie控件 6.4.1 ActiveMovie控件的主要属性 6.4.2 ActvieMovie的主要方法 6.4.3 ActiveMovie的主要事件 6.5 小结 第七章 OpenGL和DirectDraw 7.1 OpenGL 7.2 DirectDraw 7.2.1 DirectX 7.2.2 DirectDraw的概述 7.3 DirectDraw、OLE和COM接口 7.3.1 DirectDraw对象和IDirectDraw接口 7.3.2 DirectDrawClipper对象和IDirectDrawClipper接口 7.3.3 DirectDraw
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值