-
c语言入门之在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. 新建一个项目,并在窗体中放置下列控件(带省略号的属性值先不设置):
名称 控件类型 属性 属性值
ADOConnection1 TADOConnection ConnectionString …
ADODataSet1 TADODataSet Connection ADOConnection1 CommandText…
DataSource1 TDataSource DataSet ADODataSet1
DBGrid1 TDBGrid DataSource DataSource1
ADODataSet2 TADODataSet DataSetField …
DataSource2 TDataSource DataSet ADODataSet2
DBGrid2 TDBGrid DataSource DataSource2
---- 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控件使开发者能集中注意力于数据库的逻辑与功能设计,而不必关心繁复的常规代码和操作。
---- 本文介绍了在 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. 新建一个项目,并在窗体中放置下列控件(带省略号的属性值先不设置):
名称 控件类型 属性 属性值
ADOConnection1 TADOConnection ConnectionString …
ADODataSet1 TADODataSet Connection ADOConnection1 CommandText…
DataSource1 TDataSource DataSet ADODataSet1
DBGrid1 TDBGrid DataSource DataSource1
ADODataSet2 TADODataSet DataSetField …
DataSource2 TDataSource DataSet ADODataSet2
DBGrid2 TDBGrid DataSource DataSource2
---- 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控件使开发者能集中注意力于数据库的逻辑与功能设计,而不必关心繁复的常规代码和操作。
最新更新
Objective-C语法之代码块(block)的使用
VB.NET eBook
Add-in and Automation Development In VB.NET 2003 (F
Add-in and Automation Development In VB.NET 2003 (8
Add-in and Automation Development in VB.NET 2003 (6
Add-in and Automation Development In VB.NET 2003 (5
AddIn Automation Development In VB.NET 2003 (4)
AddIn And Automation Development In VB.NET 2003 (2)
Addin and Automation Development In VB.NET 2003 (3)
AddIn And Automation Development In VB.NET 2003 (1)
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
武装你的WEBAPI-OData入门
武装你的WEBAPI-OData便捷查询
武装你的WEBAPI-OData分页查询
武装你的WEBAPI-OData资源更新Delta
5. 武装你的WEBAPI-OData使用Endpoint 05-09
武装你的WEBAPI-OData之API版本管理
武装你的WEBAPI-OData常见问题
武装你的WEBAPI-OData聚合查询
OData WebAPI实践-OData与EDM
OData WebAPI实践-Non-EDM模式