数据库访问和组件技术相关概念(ADO、ActiveX、DLL、ODBC等)详解

简介: 数据库访问和组件技术相关概念(ADO、ActiveX、DLL、ODBC等)详解

背景

   最近又再重新学习vb,老师说过无论学习什么知识一定不能独立的学习,学习编程语言也是一样,把两种或者三种语言放到一起进行比较,通过比较每种语言的语法和结构,可以更好地理解它们之间的异同。这有助于扩展编程思维和理解编程范式的多样性,最重要的是在比较的过程中,发挥创造力把不同看成相同,学习就会事半功倍。今天主要介绍几个数据库访问和组件技术相关的概念。

   我们在vb中接触最多的就是组件和控件,控件一般是指ActiveX控件,组件主要指ActiveX动态链接库和ActiveX.exe。组件和控件应用非常广泛,提高了开发效率。vb下面有两套数据存储模型,一个是DAO(早期模型,渐渐淘汰了),一个是ADO,采用的是ActiveX技术,采用二进制标准,具有跨平台的性质,下面就先从ADO开始进行一下介绍:


概念

ADO

   ADO(ActiveX Data Objects)是一组用于访问和处理数据的组件和对象模型。它是Microsoft提供的一种数据访问技术,用于在应用程序中连接到数据库、执行查询、检索和更新数据等操作。

ADO提供了一种统一的编程接口,使开发人员能够以一致的方式与不同类型的数据源进行交互,包括关系型数据库(如SQL Server、Oracle、MySQL等)、文本文件、Excel表格等。


核心组件

1.Connection对象:用于建立与数据源的连接,并管理连接的打开和关闭。 在数据库应用里操作数据源都必须通过该对象,这是数据交换的环境。Connection对象代表了同数据源的一个会话,在客户/服务器模型里,这个会话相当于同服务器的一次网络连接。

2.Command对象:用于执行SQL语句或存储过程,并处理查询结果。是一个对数据源执行命令的定义,使用该对象可以查询数据库并返回一个Recordset对象,可以执行一个批量的数据操作,可以操作数据库的结构。

3.Recordset对象:用于表示从数据源中检索的结果集,可以对结果集进行浏览、修改和更新。

代码展示

1.引入ADO库:在VB项目中,你需要引入ADO库,以便使用ADO相关的组件和对象。可以通过在项目中添加对"Microsoft ActiveX Data Objects"的引用来实现。

2.创建连接对象:使用ADO的Connection对象来建立与数据库的连接。可以指定数据库的连接字符串,其中包括数据库的类型、位置、用户名、密码等信息。

Dim conn As New ADODB.Connection
conn.ConnectionString = "Provider=SQLOLEDB;Data Source=myServerAddress;Initial Catalog=myDatabase;User ID=sa;Password=123456;"
conn.Open

3.执行查询语句:使用ADO的Command对象来执行数据库查询语句。你可以编写SQL语句或调用存储过程来查询和操作数据库。

Dim cmd As New ADODB.Command
cmd.ActiveConnection = conn
cmd.CommandText = "SELECT * FROM Students"
Dim rs As ADODB.Recordset
Set rs = cmd.Execute

4.处理查询结果:查询结果会返回一个Recordset对象,可以使用它来遍历和操作查询结果集。

While Not rs.EOF
    ' 处理每一条记录
    MsgBox rs("StudentName").Value
    rs.MoveNext
Wend

5.关闭连接:在完成数据库操作后,关闭连接,释放资源。

rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing

   通过以上步骤,可以使用ADO在VB中连接数据库、执行查询语句,并处理查询结果.


概念中的概念

   现在回看一下ADO概念中的几个名词,分别进一步介绍


ActiveX

   ADO中的A就是指ActiveX ,那这又是什么呢?


   ActiveX是"Active eXtension"的缩写,它是一种基于COM(Component Object Model)的技术。ActiveX是Microsoft提出的一种软件组件技术,用于创建可重用的软件组件,可以在不同的应用程序和平台之间进行交互和共享。


   ActiveX技术的目标是实现跨平台、跨语言和跨网络的组件通信。它提供了一种标准的组件模型,使开发人员可以创建和使用可重用的软件组件。这些组件可以以二进制形式存在,被其他应用程序调用和使用,从而实现代码的重用和模块化。


   ActiveX技术主要应用于Windows平台,并且在Web浏览器中也有广泛的应用。在Web浏览器中,ActiveX控件可以嵌入到网页中,实现丰富的交互和功能扩展,但需要用户的授权和浏览器的支持。


   说到这里插入一点“历史”,关于静态库(Static Library)、动态链接库(Dynamic Link Library,DLL)和ActiveX。这三种是常见的代码共享方式,使得多个应用程序可以共享同一份代码,减少代码冗余和提高代码复用性。

   静态库是最早出现的,DLL是在静态库的基础上发展而来,ActiveX是基于COM和OLE技术的一种特殊的DLL。它们的演化过程是为了解决代码共享和软件更新的需求,并提供更灵活和易于维护的方式。


三者不同点见下表

特点 静态库 DLL ActiveX
文件类型 .lib .dll .dll
链接方式 静态链接 动态链接 动态链接
内存占用 静态库的代码被复制到可执行文件中 共享代码段,多个进程共享同一份代码 共享代码段,多个进程共享同一份代码
可执行文件大小 较大 较小 较小
更新方式 需要重新编译整个程序 只需替换DLL文件 只需替换DLL文件
运行时依赖 不依赖外部库文件 需要依赖DLL文件 需要依赖DLL文件
跨平台性 不具备 具备 具备
使用场景 静态链接时,适用于小型项目 动态链接时,适用于大型项目 适用于跨平台和分布式系统


4992a24eae98413085fb78cab87443e8.png

363c476a120c4f69a17a934dca748906.png

   总结起来,ActiveX是一种基于COM的技术,用于创建可重用的软件组件,可以在不同的应用程序和平台之间进行交互和共享。它提供了一种标准的组件模型,用于实现代码的重用和功能的扩展。


组件

   指的是可重用的软件模块,可以被其他程序调用和使用。

组件在VB中通常以类库(Library)的形式存在,可以包含多个类、接口和函数等。ADO提供了一组组件,用于在VB应用程序中进行数据库访问和数据处理。


   在上面给的代码中,ADODB.Connection和ADODB.Recordset就是ADO组件的一部分。通过创建这些组件的实例,并调用相应的方法和属性,可以实现与数据库的交互和数据操作。


对象模型

   指的是一组对象的层次结构,这些对象代表了不同的数据库相关组件和功能。这些对象之间存在关联和依赖关系,通过调用对象的方法和属性,可以实现对数据库的连接、查询、更新等操作。


   上面提到的 Connection、 Command、 Recordset以及 Field(字段对象:表示记录集中的一个字段,可以获取和设置字段的值 )都是ADO的对象模型中的核心对象,除了这些核心对象,还有其他辅助对象和集合对象,用于支持数据访问和处理的各种功能。


   对象模型提供了一种结构化的方式来组织和管理这些功能,使得在VB中进行数据库编程更加方便和灵活。开发人员可以根据需要创建和配置这些对象,以实现特定的数据库操作。


ADO与ODBC的关系

   ODBC(Open Database Connectivity)是一种开放的标准API,用于在应用程序和数据库之间建立连接和进行数据交互。它提供了一组函数和驱动程序,使应用程序能够通过统一的方式访问不同类型的数据库。ODBC允许应用程序使用SQL语句来查询和操作数据库,并提供了一种独立于数据库的编程接口。


   ADO是建立在ODBC之上的一种高级数据访问技术。ADO提供了一个对象模型,使开发人员可以以更简洁和直观的方式与数据库进行交互。ADO可以使用ODBC驱动程序来连接和访问数据库,通过ODBC提供的功能,ADO可以与各种不同的数据库进行通信。

在ADO中,可以使用ADO的Connection对象来建立与数据库的连接,而连接字符串中可以指定使用的ODBC数据源。通过这种方式,ADO利用了ODBC的功能来实现与不同数据库的通用数据访问。


   需要注意的是,尽管ADO可以使用ODBC来连接数据库,但它也支持其他的数据访问方式,如使用本地驱动程序、OLE DB提供程序等。这使得ADO具有更大的灵活性和可扩展性,可以适应不同的数据访问需求。


总结

   本文介绍了数据库访问和组件技术相关的概念,从ADO作为起点展开,介绍了ADO作为一组用于访问和处理数据的组件和对象模型,在VB中的应用。接着介绍了ActiveX的前身静态库和动态链接库(DLL),它们都是常见的代码复用和模块化的方式。同时,介绍了组件和对象模型的概念,ActiveX组件以DLL的形式存在,通过使用ActiveX技术,组件可以更加灵活地被调用和使用,实现跨平台、跨语言和跨网络的组件通信。最后,提到了ADO与ODBC的关系。通过介绍ActiveX、组件、对象模型、静态库、动态链接库(DLL)以及ADO与ODBC的关系,展示了数据库访问和组件技术的发展和应用。这些概念和技术为开发人员提供了强大的工具和平台,用于构建可重用、灵活和高效的软件系统。


相关文章
|
17天前
|
Cloud Native OLAP OLTP
在业务处理分析一体化的背景下,开发者如何平衡OLTP和OLAP数据库的技术需求与选型?
在业务处理分析一体化的背景下,开发者如何平衡OLTP和OLAP数据库的技术需求与选型?
119 4
|
13天前
|
存储 NoSQL Java
Java数据库编程指南:实现高效数据存储与访问
【4月更文挑战第2天】Java开发者必须掌握数据库编程,尤其是JDBC,它是连接数据库的标准接口。使用Spring JDBC或JPA能简化操作。选择合适的JDBC驱动,如MySQL Connector/J,对性能至关重要。最佳实践包括事务管理、防SQL注入、优化索引和数据库设计。NoSQL数据库如MongoDB也日益重要,Java有对应的驱动支持。理解这些概念和技术是构建高效数据库应用的基础。
Java数据库编程指南:实现高效数据存储与访问
|
21天前
|
Oracle 关系型数据库 数据库
Oracle数据库基本概念理解(3)
Oracle数据库基本概念理解(3)
15 2
|
4天前
|
存储 中间件 关系型数据库
数据库切片大对决:ShardingSphere与Mycat技术解析
数据库切片大对决:ShardingSphere与Mycat技术解析
10 0
|
17天前
|
SQL 关系型数据库 MySQL
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(8.0版本升级篇)
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(8.0版本升级篇)
83 0
|
21天前
|
Oracle 关系型数据库 数据库
Oracle数据库基本概念理解(2)
Oracle数据库基本概念理解(2)
13 1
|
12天前
|
NoSQL 大数据 数据挖掘
现代数据库技术与大数据应用
随着信息时代的到来,数据量呈指数级增长,对数据库技术提出了前所未有的挑战。本文将介绍现代数据库技术在处理大数据应用中的重要性,并探讨了一些流行的数据库解决方案及其在实际应用中的优势。
|
17天前
|
SQL 关系型数据库 MySQL
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(数据恢复补充篇)(一)
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(数据恢复补充篇)
29 0
|
21天前
|
存储 SQL 缓存
【软件设计师备考 专题 】数据库模型(概念模式、外模式、内模式)
【软件设计师备考 专题 】数据库模型(概念模式、外模式、内模式)
64 0
|
21天前
|
Oracle 关系型数据库 数据库
Oracle数据库基本概念理解(1)
Oracle数据库基本概念理解(1)
11 1

热门文章

最新文章