两大类:单层驱动程序和多层驱动程序

1.单层数据库驱动程序

早期的xBASE数据库系统的驱动程序就属于单层驱动程序。

单层驱动程序不仅要处理ODBC函数调用,还要解释执行SQL语句,执行数据库管理系统(DBMS)的功能,实际上他就是一个数据库管理系统。利用它所编写的数据库应用程序,有两种运行模式:

运行于单击环境桌面数据库应用产品,如下图所示

运行在网络环境下的文件服务器数据库应用产品,如下图所示:

这种的数据库软件,如FoxPro、Access、Paradox等。

PS:这种应用程序运行于网络环境时,将服务器作为文件服务器使用,要访问数据时,将整个数据库文件传送到应用程序主机一方进行处理,应用程序处理结束后,再将数据库送到服务器上。图中文件服务器的作用只是管理用户的访问操作和实现文件的存储管理。

2.多层的数据库驱动程序

如:Oracle、Sql Server数据库驱动程序就属于多层驱动程序。

多层驱动程序只处理应用程序的ODBC函数调用和数据转换,它将SQL语句传递给数据源,由数据库管理系统解释执行SQL语句,实现用户的各种操作请求。利用它所编写的的数据库应用程序,主要分为两层和三层模式的两种运行模式:

1.客户机/服务器结构(俗称:C/S),属于两层结构

客户机端软件:由应用程序、驱动程序管理器、多层数据库驱动程序和网络支撑软件组成。

服务器端软件:由数据库引擎、数据库数据库文件和网络支撑软件组成。

2.网关应用结构(俗称:B/S),属于三层结构

上图中,驱动程序把收到的SQL请求传送到数据库网关,由数据库网关再将这些请求传递给数据库管理系统。

数据库网关

  在Internet/Intranet网络中使用非常普遍,CGI(通用网关接口,即Common Gateway Interface的英文缩写)就是经常使用的一种。如图所示:

2.4_Database Interface ODBC数据库驱动程序类型(单层与多层)的更多相关文章

  1. (15)zabbix ODBC数据库监控

    概述 ODBC监控对应于Zabbix Web管理端中的Database monitor监控项类型. ODBC是用于访问数据库管理系统(DBMS)的C语言中间件API.ODBC由Microsoft开发, ...

  2. 2.3_Database Interface ODBC组成原理

    从某种意义上来讲,ODBC实际上主要是一个数据库的访问库(API),它包含访问不同数据库所要求的ODBC驱动程序.应用程序要操作不同类型的数据库,只要调用ODBC所支持的函数,动态链接到不同的驱动程序 ...

  3. JDBC驱动程序类型

    JDBC驱动程序是什么? JDBC驱动程序在JDBC API中实现定义的接口,用于与数据库服务器进行交互. 例如,使用JDBC驱动程序,可以通过发送SQL或数据库命令,然后使用Java接收结果来打开数 ...

  4. 怎样配置visio的数据库驱动程序

    怎样配置visio的数据库驱动程序   百度师傅最快的到家服务,最优质的电脑清灰 在使用visio进行反向工程画数据库模型图时,需要进行数据库驱动程序的配置.下面以visio2003给大家演示怎样配置 ...

  5. 2.6_Database Interface JDBC及驱动类型

    JAVA语言参考ODBC,设计专用的数据库连接规范JDBC(JAVA Database Connectivity).目标是让Java开发人员在编写数据库应用程序时,可以有统一的接口,不依赖特定数据库A ...

  6. VS2010 MFC中 单独添加ODBC数据库记录集类(CRecordset)方法

    基于VS2010 MFC的项目是之前建好的,后来需要添加数据库. 方法分享于此. 1.  打开自己的项目,项目->添加类. 2. 选MFC ODBC使用者,点右下角的添加. 3. 点数据源. / ...

  7. 主流数据库字段类型转.Net类型的方法

    最近在阅读一些开源的代码,发现其中有些方法总结的很全面,至少在我做同样的事情时候,需要抓破脑袋想活着google,现在看到了这个关于主流数据库字段类型转.Net类型的方法,故收藏之,也顺便分享给那些能 ...

  8. 关于“System.Data.OleDb.OleDbException,外部数据库驱动程序 (1) 中的意外错误。”的解决方案

    网站之前运行一直很正常,但有一次用户在导入格式为xls的excel文件,发生了错误,跟踪错误后抛出如下的异常: 错误提示: 未处理System.Data.OleDb.OleDbException HR ...

  9. EntityFrameworkCore将数据库Timestamp类型在程序中转为long类型

    EntityFrameworkCore将数据库Timestamp类型在程序中转为long类型 EntityFrameworkCore Entity public class Entity { publ ...

随机推荐

  1. session使用方法

    每次客户端检索网页时,都要单独打开一个服务器连接,因此服务器不会记录下先前客户端请求的任何信息. 如何维持客户端与服务器的会话?方法之一: servlet中写入: //新建一个session保存用户名 ...

  2. OpenFOAM——90度T型管

    本算例来自<ANSYS Fluid Dynamics Verification Manual>中的VMFL010: Laminar Flow in a 90° Tee-Junction. ...

  3. 【2019.11.27】SDN上机第5次作业

    参考资料: https://www.cnblogs.com/zzqsss/p/11924685.html 问答环节 描述官方教程实现了一个什么样的交换机功能? Ryu是一个基于组件的软件定义的网络框架 ...

  4. join方法

    用join拼接两个字符串 a='hehe' b='wawa' print(''.join((a,b))) #'hehewawa' 用join拼接列表中的字符串 l=['a''b','c','d'] p ...

  5. Android adb命令打印activity堆栈

    ubuntu系统: adb shell dumpsys activity activities | sed -En -e '/Running activities/,/Run #0/p' window ...

  6. (转)nginx 安全配置文档

    原文:https://www.cnblogs.com/heaven-xi/p/9961357.html#top 1.配置文档中有多处明确写出了nginx的配置文件路径,该路径是测试环境中的路径,线上系 ...

  7. [简短问答]lodop打印过慢或有进度条

    问法1:打印预览显示进度条,过慢出现进度条,打印过慢,可能和很多原因有关:打印内容或样式或图片等过多,有需要下载有脚步执行或本身网络慢:机器性能过低 系统ie有问题或缓存过多:或使用的是共享打印机.如 ...

  8. LIST<>泛型集合取得对象的属性值

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  9. git bush 无法使用箭头进行选择

    1 找到git bash 的安装目录,找到bash.bashrc文件, 2 在文件的尾部加上:alias vue='winpty vue.cmd', 3 重启git bash 即可 来自:https: ...

  10. [LeetCode] 555. Split Concatenated Strings 分割串联字符串

    Given a list of strings, you could concatenate these strings together into a loop, where for each st ...