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


相关文章
|
5天前
|
人工智能 搜索推荐 算法
在当前数据驱动的时代,数据库技术面临哪些挑战
在当前数据驱动的时代,数据库技术面临哪些挑战
|
5天前
|
人工智能 自然语言处理 数据管理
自然语言处理技术在AI驱动的数据库中的作用是什么
自然语言处理技术在AI驱动的数据库中的作用是什么
|
6天前
|
存储 物联网 区块链
数据库技术在新兴领域的应用广泛且深入
【7月更文挑战第21天】数据库技术在新兴领域的应用广泛且深入
15 1
|
5天前
|
存储 数据管理 数据库
现代数据库技术中的分布式一致性问题与解决方案探讨
分布式系统在现代数据库技术中扮演着重要角色,但分布式环境下的数据一致性问题始终是挑战之一。本文深入探讨了分布式一致性的核心概念、各种一致性模型的特点及其在实际应用中的优缺点,旨在为技术从业者提供全面的视角和实用的解决方案。
|
21天前
|
存储 关系型数据库 MySQL
探索MySQL:关系型数据库的基石
MySQL,作为全球最流行的开源关系型数据库管理系统(RDBMS)之一,广泛应用于各种Web应用、企业级应用和数据仓库中
|
19天前
|
缓存 运维 关系型数据库
数据库容灾 | MySQL MGR与阿里云PolarDB-X Paxos的深度对比
经过深入的技术剖析与性能对比,PolarDB-X DN凭借其自研的X-Paxos协议和一系列优化设计,在性能、正确性、可用性及资源开销等方面展现出对MySQL MGR的多项优势,但MGR在MySQL生态体系内也占据重要地位,但需要考虑备库宕机抖动、跨机房容灾性能波动、稳定性等各种情况,因此如果想用好MGR,必须配备专业的技术和运维团队的支持。 在面对大规模、高并发、高可用性需求时,PolarDB-X存储引擎以其独特的技术优势和优异的性能表现,相比于MGR在开箱即用的场景下,PolarDB-X基于DN的集中式(标准版)在功能和性能都做到了很好的平衡,成为了极具竞争力的数据库解决方案。
|
18天前
|
关系型数据库 MySQL 网络安全
Mysql 数据库主从复制
在MySQL主从复制环境中,配置了两台虚拟机:主VM拥有IP1,从VM有IP2。主VM的`my.cnf`设置server-id为1,启用二进制日志;从VM设置server-id为2,开启GTID模式。通过`find`命令查找配置文件,编辑`my.cnf`,在主服务器上创建复制用户,记录二进制日志信息,然后锁定表并备份数据。备份文件通过SCP传输到从服务器,恢复数据并配置复制源,启动复制。检查复制状态确认运行正常。最后解锁表,完成主从同步,新用户在从库中自动更新。
994 7
Mysql 数据库主从复制
|
1天前
|
关系型数据库 MySQL 数据库
|
8天前
|
分布式计算 大数据 关系型数据库
MaxCompute产品使用合集之如何实现类似mysql实例中的数据库功能
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
10天前
|
消息中间件 DataWorks 关系型数据库
DataWorks产品使用合集之遇到无法连接到本地 MySQL 数据库的问题,该如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。