当前位置: 首页 > news >正文

2.3_Database Interface ODBC组成原理

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

上图可看出,应用程序调用ODBC API(函数调用),但ODBC API不直接访问数据库,通过驱动程序管理器与数据库交换信息。驱动程序管理器将应用程序对ODBC API的调用传递给专用的ODBC驱动程序(DBMS提供),而该驱动程序在执行完相应的操作后,将结果通过驱动程序管理器返回给应用程序。

各个组件部分的用途

1.应用程序

调用ODBC API函数,递交SQL语句给DBMS,搜索出结果,并进行处理。

2.ODBC管理器

安装ODBC驱动程序和注册数据源,注册一个数据源(提供数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系)这样,只要应用程序将数据源名提供给ODBC管理器,ODBC管理就能建立起与相应数据库的连接。

3.驱动程序管理器

 管理ODBC驱动程序,对用户是透明的一个动态连接库ODBCADM。DLL(包含在ODBC32.DLL中),用于连接各种DBS的DBMS驱动程序(如Oracle、Foxpro、Sybase等驱动程序)。ODBCADM.DLL加载(通过WINDOWS系统注册表找到对应关系)符合ODBC接口规范的任何DBMS厂商的驱动程序(DLL)。

4.ODBC驱动程序

本质是一些DLL,查看系统所安装的ODBC驱动程序:“开始”/“设置”/“控制面板”/“管理工具”/“数据源 (ODBC)”/“驱动程序”,如图:

若系统所安装的ODBC数据库驱动程序里没有你想要的ODBC驱动,如Oracle的ODBC驱动,只需要安装ORACLE软件,系统会自动的将ORACLE对应的驱动程序加载到ODBC驱动程序里。

转载于:https://www.cnblogs.com/ximi07/p/11227194.html

相关文章:

  • 石子合并(区间dp典型例题)
  • 石子合并2(环形求最优解 区间dp)
  • 恢复系统管理员密码的五大奇招
  • P1082 同余方程(拓展欧几里德)
  • Mac下eclipse安装SVN插件
  • 程序员真的很懒
  • 【Android应用开发】-(9)应用程序安装卸载原理
  • TCP/IP:网络因此互联
  • 公式输入较好的参考
  • K - Queries for Number of Palindromes(区间dp+容斥)
  • ASP.Net WebForm温故知新学习笔记:二、ViewState与UpdatePanel探秘
  • IDEA等全家桶设置Ctrl+滚轮调整字体大小
  • 怎样卸载外壳扩展的DLL?
  • 具有自动恢复功能的通知栏图标控件
  • Win7编程:在按钮中加入管理员权限运行
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • Babel配置的不完全指南
  • codis proxy处理流程
  • CSS魔法堂:Absolute Positioning就这个样
  • ES6--对象的扩展
  • flask接收请求并推入栈
  • input实现文字超出省略号功能
  • mongodb--安装和初步使用教程
  • opencv python Meanshift 和 Camshift
  • Python利用正则抓取网页内容保存到本地
  • 从PHP迁移至Golang - 基础篇
  • 从零开始在ubuntu上搭建node开发环境
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 关于Java中分层中遇到的一些问题
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 浏览器缓存机制分析
  • 码农张的Bug人生 - 初来乍到
  • 前端之React实战:创建跨平台的项目架构
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 微信小程序填坑清单
  • 为视图添加丝滑的水波纹
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 怎么把视频里的音乐提取出来
  • 走向全栈之MongoDB的使用
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • !!java web学习笔记(一到五)
  • #mysql 8.0 踩坑日记
  • #Z2294. 打印树的直径
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • $.ajax,axios,fetch三种ajax请求的区别
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (转)大道至简,职场上做人做事做管理
  • (转载)CentOS查看系统信息|CentOS查看命令
  • (轉貼) UML中文FAQ (OO) (UML)
  • ****Linux下Mysql的安装和配置