数据库访问和组件技术相关概念(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的关系,展示了数据库访问和组件技术的发展和应用。这些概念和技术为开发人员提供了强大的工具和平台,用于构建可重用、灵活和高效的软件系统。


相关文章
|
22天前
|
负载均衡 网络协议 数据库
选择适合自己的数据库多实例负载均衡技术
【10月更文挑战第23天】选择适合自己的数据库多实例负载均衡技术需要全面考虑多种因素。通过深入的分析和评估,结合自身的实际情况,能够做出明智的决策,为数据库系统的高效运行提供有力保障。
106 61
|
20天前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
33 3
|
22天前
|
缓存 负载均衡 监控
数据库多实例的负载均衡技术深入
【10月更文挑战第23天】数据库多实例负载均衡技术是确保数据库系统高效运行的重要手段。通过合理选择负载均衡策略、实时监控实例状态、不断优化调整,能够实现资源的最优分配和系统性能的提升。在实际应用中,需要根据具体情况灵活运用各种负载均衡技术,并结合其他相关技术,以满足不断变化的业务需求。
|
20天前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
19 1
|
10天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
25 1
|
12天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
28 4
|
1月前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
63 3
Mysql(4)—数据库索引
|
19天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
89 1
|
21天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
64 2
|
24天前
|
存储 关系型数据库 MySQL
MySQL vs. PostgreSQL:选择适合你的开源数据库
在众多开源数据库中,MySQL和PostgreSQL无疑是最受欢迎的两个。它们都有着强大的功能、广泛的社区支持和丰富的生态系统。然而,它们在设计理念、性能特点、功能特性等方面存在着显著的差异。本文将从这三个方面对MySQL和PostgreSQL进行比较,以帮助您选择更适合您需求的开源数据库。
94 4