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

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. Spark跑在Yarn上出现错误,原因是jdk的版本问题

    ./bin/spark-shell --master yarn 2019-07-01 12:20:13 WARN NativeCodeLoader:62 - Unable to load native ...

  2. mysql 存储过程 REPEAT ... UNTIL ... END REPEAT

    begin   declare  b int;   declare  use_no    varchar(10);   declare  use_name  varchar(400);   decla ...

  3. thread 线程分析工具

    (1) https://fastthread.io/ 将线程 jstack pid 出来之后,压缩一下成为zip 然后 上传上去

  4. MacBook Air装Windows7双系统后的一些(未尝试)想法

    转载请标注原地址:https://www.cnblogs.com/lixiaojing/p/11458477.html 运行环境: macOS在Mojave下的Boot Camp Assistant只 ...

  5. linux声卡录音和播放(alsa方法)

    前言 客户购买多台UNO-2184,使用fedora23系统进行视频监控,视频监控的同时,也要同步采集现场画面的声音,原来系统采用的是fedora 14,之前是通过操作/dev/bsp,对声卡进行操作 ...

  6. ES6将两个数组合并成一个对象数组

    需求 有这么两个数组 let metrodates = [ "2008-01", "2008-02", "2008-03",..ect ]; ...

  7. 《你必须知道的javascript(上)》- 1.作用域和闭包

    1 作用域是什么 1.1 编译原理 分词/词法分析(Tokenizing/Lexing) 将由字符组成的字符串分解成(对编程语言来说)有意义的代码块,这些代码块被称为词法单元(token). 解析/语 ...

  8. BackgroundWorkerHelper

    public static class BackgroundWorkerHelper { public static void Run(DoWorkEventHandler doWork, RunWo ...

  9. [简短问答]SET_PRINT_STYLEA相关简短问答

    常见1:SET_PRINT_STYLEA(0,.....)放在那里参考官网下载中心的LODOP技术手册SET_PRINT_STYLEA篇,0代表前面紧跟着的打印项,放在需要该样式的打印项后面紧跟着. ...

  10. 源码分析之Handler

    Handler是Android中的消息机制实现,可以实现UI线程和子线程的消息传递,这里就来深入了解Android的消息机制,来分析Handler的源代码 入手实例 在Android开发中,子线程与主 ...