ODBC开放式数据库互联
ODBC开放式数据库互联PPT教学课件
2020/12/11
8
ODBC API(4)
ODBC应用程序流程
初始化阶段
分配环境句柄 分配连接句柄
• 在分配连接句柄前,最好先设置环境句柄所用的ODBC参数
建立连接 分配语句句柄
程序主体
结束部分
释放语句句柄
断开数据源连接
释放连接句柄
2020/12/11
9
释放环境句柄
ODBC API(4)—什么是句柄
2020/12/11
3
ODBC开放数据库互连
开放数据库互连(Open Database Connectivity,ODBC)是微软公司开放服 务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部
分,它建立了一组规范,并提供了一组对 数据库访问的标准API(应用程序编程接 口)。这些API利用SQL来完成其大部分任 务。ODBC本身也提供了对SQL语言的支持, 用户可以直接将SQL语句送给ODBC。
2020/12/11
6
ODBC API(1)
理论上,为了互操作,所有DBMS提供的ODBC 调用函数和SQL语句应该完全一致?不可能
驱动程序的一致性级别((Conformance Levels)
API一致性:核心级、扩展1级、扩展2级 语法一致性:最低限度SQL语法级、核心SQL语法级、
扩展SQL语法级
户所需要的各种数据管理的方式。数据库
有很多种类型,从最简单的存储有各种数
据的表格到能够进行海量数据存储的大型
数据库系统都在各个方面得到了广泛的应
用。 2020/12/11
2
严格地说,数据库是“按照数据结构来 组织、存储和管理数据的仓库”。在经济 管理的日常工作中,常常需要把某些相关 的数据放进这样的“仓库”,并根据管理 的需要进行相应的处理。例如,企业或事 业单位的人事部门常常要把本单位职工的 基本情况(职工号、姓名、年龄、性别、籍 贯、工资、简历等)存放在表中,这张表就 可以看成是一个数据库。有了这个"数据仓 库"我们就可以根据需要随时查询某职工的 基本情况,也可以查询工资在某个范围内 的职工人数等等。
第12章 开放数据库互连(ODBC)要点
Database Principles 9
三、数据库驱动程序
❖ ODBC通过驱动程序来提供应用系统与数据库平台的独立性 ❖ ODBC应用程序不能直接存取数据库
▪ 其各种操作请求由驱动程序管理器提交给某个RDBMS的 ODBC驱动程序
▪ 通过调用驱动程序所支持的函数来存取数据库。 ▪ 数据库的操作结果也通过驱动程序返回给应用程序。 ▪ 如果应用程序要操纵不同的数据库,就要动态地链接到不同
▪ 当要访问每一个数据库时,只要与PERSON和EDU连接即
可,不需要记住使用的驱动程序、服务器名称、数据库名
2020/9/28
Database Principles 13
第十二章 开放数据库互连(ODBC)
12.1 数据库互连概述 12.2 ODBC工作原理概述 12.3 ODBC API 基础 12.4 ODBC的工作流程 12.5 小结
2020/9/28
Database Principles 8
二、驱动程序管理器
❖ 驱动程序管理器:用来管理各种驱动程序
– 包含在ODBC32.DLL中 – 管理应用程序和驱动程序之间的通信
▪ 建立、配置或删除数据源并查看系统当前所安装的数据库ODBC
驱动程序
– 主要功能: ➢ 装载ODBC驱动程序 ➢ 选择和连接正确的驱动程序 ➢ 管理数据源 ➢ 检查ODBC调用参数的合法性 ➢ 记录ODBC函数的调用等
ODBC API 基础(续)
一、 函数概述 二、 句柄及其属性 三、 数据类型
2020/9/28
Database Principles 16
一、 函数概述
❖ ODBC 3.0 标准提供了76个函数接口:
ODBC(开放式数据库连接)是一种使用SQL的程序设计接
ODBC(开放式数据库连接)是一种使用SQL的程序设计接口,使用ODBC使数据库应用程序的编写者避免了与数据源相连接的复杂性。
利用ODBC技术使得程序员从具体的DBMS中解脱出来,从而可以减少软件开发的工作量,缩短开发周期,并提高效率和软件的可靠性。
这项技术目前已经得到了大多数DBMS厂商的广泛支持。
Microsoft Developer Studio为大多数标准的数据库格式提供了32位ODBC驱动器。
这些标准数据格式包括有:SQL Server、Access、Paradox、dBase、FoxPro、Excel、Oracle以及Microsoft Text。
如果用户希望使用其他数据格式,则需要安装相应的ODBC驱动器及DBMS。
用户使用自己的DBMS数据库管理功能生成新的数据库模式后,就可以使用ODBC来登录数据源。
对用户的应用程序来说,只要安装有驱动程序,就能注册很多不同的数据库。
登录数据库的具体操作参见有关ODBC的联机帮助。
一、MFC提供的ODBC数据库类Visual C++的MFC基类库定义了几个数据库类。
在利用ODBC编程时,经常要使用到CDatabase(数据库类)、CRecordSet(记录集类)和CRecordView(可视记录集类)。
CDatabase类对象提供了对数据源的连接,通过它可以对数据源进行操作。
CRecordSet类对象提供了从数据源中提取出的记录集。
CRecordSet对象通常用于两种形式:动态行集(dynasets)和快照集(snapshots)。
动态行集能与其他用户所做的更改保持同步,快照集则是数据的一个静态视图。
每种形式在记录集被打开时都提供一组记录,所不同的是,当在一个动态行集里滚动到一条记录时,由其他用户或应用程序中的其他记录集对该记录所做的更改会相应地显示出来。
CRecordView类对象能以控件的形式显示数据库记录,这个视图是直接连到一个CRecordSet对象的表视图。
开放数据库互连(ODBC)
❖ 句柄是32位整数值,代表一个指针 ❖ODBC 3.0中句柄分类:
数据库原理
Database Principles
第十二章 开放数据库互连(ODBC)
21.10.2020
h
1
第十二章 开放数据库互连(ODBC)
12.1 数据库互连概述 12.2 ODBC工作原理概述 12.3 ODBC API 基础 12.4 ODBC的工作流程 12.5 小结
21.10.2020
▪ 在连接中,用数据源名来代表用户名、服务器名、所连接的数据库名等 ▪ 最终用户无需知道DBMS或其他数据管理软件、网络以及有关ODBC驱动程序的细节
21.10.2020
h
11
ODBC数据源管理(续)
例如,假设某个学校在MS SQL Server和KingbaseES上创建了两个数据库:学 校人事数据库和教学科研数据库。
▪ 语法一致性
➢语法一致性级别有最低限度SQL语法级、核心SQL语法级、扩展SQL语法级
21.10.2020
h
14
ODBC API 基础(续)
一、 函数概述 二、 句柄及其属性 三、 数据类型
21.10.2020
h
15
一、 函数概述
❖ ODBC 3.0 标准提供了76个函数接口:
▪ 分配和释放环境句柄、连接句柄、语句句柄; ▪ 连接函数(SQLDriverconnect等); ▪ 与信息相关的函数(如获取描述信息函数SQLGetinfo、SQLGetFuction); ▪ 事务处理函数(如SQLEndTran); ▪ 执行相关函数(SQLExecdirect、SQLExecute等); ▪ 编目函数,ODBC 3.0提供了11个编目函数如SQLTables、SQLColumn等,应用程
ODBC和ADO区别
统中必须有DBMS,但不需要驱动程序,不需要注册数据源,所以具有很好的可移植性。
VC++6中这两种技术所涉及到的MFC类:
MFC ODBC类包括CDatabase类 CRecordSet类 CRecoreView类 CFieldExchange类 CDBException类,具体说明请详见任何一本讲述数据库编程技术的参考书。
这么说吧,我们操作ADO,ADO则访问OLEDB(当然可以访问其他的,只要符合ADO接口),OLEDB查询ODBC(也可以不用找他)得到数据接口操作数据.
ODBC?ADO?OLEDB三者区别?
起初,出现的是odbc提供c的函数调用接口,定义了一组通用的数据库API,但速度比较慢,?
ole?db是微软的第三代组件结构,速度较odbc快,而ado是oledb的一个子集,是com组件,更快,更高效。?
注 ODBC 和ADO 具有相似的特征,如记录集和数据库对象,尽管MFC 利用这些对象的方式完全不同。
============================================================================
有一个地方绝对不能使用ADO。如果要访问16 位数据,就不能用ADO。不管你怎么想,都必须用ODBC。然而,几乎没有人还在使用16 位数据库了。大多数的新工程都会使用32 位接口,这意味着会有一个选择。老的工程已经有了嵌入代码的数据访问方法,所以你也实在没有必要在这里做决定。ODBC 的一点不足是,不能像以前使用ADO 那样跟踪事务。以Microsoft Jet引擎使用ADO 时,应该得到事务的工作区级的支持。ODBC 只提供数据库级的事务支持,这就是说,可以从几个不同的工作区跟踪事务(这使得调试非常困难,还可能导致其它类型的问题)。
odbc用途
odbc用途ODBC(Open Database Connectivity)是一种用于数据库访问的标准接口。
它允许应用程序通过统一的方式访问不同的数据库管理系统(DBMS),而无需关心具体的数据库实现细节。
ODBC在数据库应用中具有广泛的用途,本文将从不同的角度介绍ODBC的应用。
ODBC可以用于实现数据库的连接和访问。
通过ODBC,应用程序可以与各种不同类型的数据库进行通信,包括关系型数据库(如Oracle、MySQL、SQL Server等)和非关系型数据库(如MongoDB、Redis等)。
ODBC提供了一套标准的API,使得应用程序可以通过统一的方式进行数据库连接、执行SQL语句、获取查询结果等操作。
这大大简化了应用程序的开发过程,提高了开发效率。
ODBC还可以用于实现数据的导入和导出。
很多时候,我们需要将数据从一个数据库导入到另一个数据库,或者将数据导出到文件中进行备份或分析。
通过ODBC,我们可以使用相同的接口和方法,轻松地实现数据的导入和导出。
无论是从一个数据库到另一个数据库,还是从数据库到Excel表格,ODBC都可以提供简单且高效的解决方案。
ODBC还可以用于实现数据库的远程访问。
在分布式系统中,数据库通常分布在不同的物理服务器上,而应用程序需要通过网络进行访问。
通过ODBC,应用程序可以使用统一的接口,通过网络远程访问数据库。
ODBC提供了一套标准的网络协议,使得数据传输更加安全可靠。
这使得应用程序能够方便地访问远程数据库,实现数据的共享和协作。
ODBC还可以用于实现数据库的跨平台移植。
不同的数据库管理系统通常有不同的API和语法,因此需要针对不同的数据库进行适配和修改。
而通过ODBC,我们可以将应用程序与特定的数据库解耦,使得应用程序可以在不同的操作系统和平台上运行,而无需修改源代码。
这样一来,我们可以更加灵活地选择数据库,降低了应用程序的维护成本。
ODBC还可以用于实现数据库的事务控制和并发处理。
数据库连接与操作方法详解
数据库连接与操作方法详解数据库是一种用于存储和管理大量结构化数据的软件系统,通过数据库连接和操作方法,我们可以进行对数据库中数据的增删改查等操作。
本文将详细介绍数据库连接和常见的数据库操作方法,以帮助读者更好地理解和应用数据库。
1. 数据库连接数据库连接是指应用程序通过合适的接口连接到数据库系统,以便能够进行对数据库的操作。
常见的数据库连接方式有以下几种:1.1. ODBC 连接ODBC(Open Database Connectivity)是一种为应用程序提供与数据库连接和操作的标准接口。
通过ODBC连接,应用程序可以连接多种类型的数据库,而不必关心具体数据库的实现细节。
1.2. JDBC 连接JDBC(Java Database Connectivity)是在Java平台上连接和操作数据库的标准接口。
通过JDBC连接,Java应用程序可以方便地访问各种关系型数据库,如MySQL、Oracle、SQL Server等。
1.3. PHP 数据库连接PHP是一种常用的服务器端脚本语言,它可以与多种数据库进行连接和操作。
通过PHP的数据库扩展模块,如MySQLi、PDO等,可以实现与MySQL、Oracle、SQLite 等各种类型数据库的连接与操作。
1.4. Python 数据库连接Python是一种简洁而强大的编程语言,也提供了多种数据库连接和操作的API。
通过Python的数据库模块,如PyODBC、MySQLdb、psycopg2等,可以实现与不同类型数据库的连接与操作。
2. 数据库操作方法一旦成功建立数据库连接,我们可以使用各种操作方法对数据库进行增删改查操作。
2.1. 插入数据插入数据是指将一条或多条新数据添加到数据库的操作。
插入数据的常用方式有以下几种:- 使用INSERT语句:INSERT INTO table_name (column1, column2, …) VALUES (value1, value2, …)- 使用LOAD DATA INFILE语句:LOAD DATA INFILE 'file.txt' INTO TABLE table_name2.2. 查询数据查询数据是指根据特定条件在数据库中获取满足条件的记录。
odbc连接数据库步骤
连接数据库使用ODBC(Open Database Connectivity)需要以下步骤:
1. 安装数据库驱动程序:首先需要安装数据库的ODBC驱动程序,这通常是由数据库供应商提供的。
安装驱动程序后,系统就可以识别和连接到相应的数据库。
2. 打开ODBC数据源管理器:在Windows操作系统中,可以通过控制面板-> 管理工具-> 数据源(ODBC)来打开ODBC数据源管理器。
3. 添加数据源:在ODBC数据源管理器中,选择“系统DSN”或“用户DSN”,然后点击“添加”按钮。
接下来选择安装的数据库驱动程序,然后点击“完成”。
4. 配置数据源:在添加数据源后,需要配置数据源的连接信息,包括数据库的名称、服务器地址、用户名和密码等。
根据数据库供应商提供的信息进行相应的配置。
5. 测试连接:配置完成后,可以点击“测试连接”按钮来测试是否成功连接到数据库。
如果连接成功,会显示连接成功的提示信息。
6. 使用连接:配置成功后,就可以在应用程序中使用ODBC连接数据库了。
可以通过ODBC 接口来执行SQL查询、插入、更新和删除等操作。
这些是连接数据库使用ODBC的基本步骤,具体的操作可能会因数据库类型和版本而有所不同。
什么是ODBC
什么是ODBC开放数据库互连(ODBC)是Microsoft引进的一种早期数据库接口技术。
它实际上是我们要在本章后面加以讨论的ADO的前身。
Microsoft引进这种技术的一个主要原因是,以非语言专用的方式,提供给程序员一种访问数据库内容的简单方法。
换句话说,访问DBF文件或Access Basic以得到MDB文件中的数据时,无需懂得Xbase 程序设计语言。
事实上,Visual C++就是这样一个程序设计平台,即Microsoft最初是以ODBC为目标的。
你会发现,ODBC工作起来和Windows一样棗它用包含在DLL内的驱动程序完成任务。
其实,ODBC提供一套两个驱动程序:一个是数据库管理器的语言,另一个为程序设计语言提供公用接口。
允许Visual C++用标准的函数调用经公用接口访问数据库的内容,是这两个驱动程序的汇合点。
当然,还有其它和ODBC有关的实用程序类型的DLL。
例如,一个这样的DLL允许你管理ODBC数据源。
ODBC的实际管理接口出现在SYSTEM文件夹中的某个CPL(控制面板)文件中棗我们在后面要谈到这方面的问题。
ODBC的确能履行承诺,提供对数据库内容的访问,并且没有太多的问题。
它没有提供数据库管理器和C之间尽可能最好的数据转换,这种情况是有的,但它多半能像广告所说的那样去工作。
唯一影响ODBC前程的是,它的速度极低棗至少较早版本的产品是这样。
ODBC最初面世时,一些开发者曾说,因为速度问题,ODBC永远也不会在数据库领域产生太大的影响。
然而,以Microsoft的市场影响力,ODBC毫无疑问是成功了。
今天,只要有两种ODBC驱动程序的一种,那么几乎每一个数据库管理器的表现都会很卓越。
使用ODBC在可以用ODBC做任何事之前,必须有一个数据库棗至少在脑子里。
在一个像Access这样的应用程序中创建数据库框架通常会更容易一些,因为Access可以非常轻松地提供完成任务所需的各种功能。
ODBC简介
ODBC简介ODBC(Open Database Connectivity) 是"开放数据库互连"的简称,是一种使用SQL的应用程序接口(API),是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。
这些API利用SQL来完成其大部分任务。
ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。
一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。
也就是说,不论是FoxPro、Access还是Oracle数据库,均可用ODBC API进行访问。
由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库,用它生成的程序与数据库或数据库引擎是无关的。
ODBC可使程序员方便地编写访问各DBMS厂商的数据库的应用程序,而不需了解其产品的细节。
一个完整的ODBC由下列几个部件组成:应用程序(Application)。
ODBC管理器(Administrator)。
该程序位于Windows 95控制面板(Control Panel)的32位ODBC内,其主要任务是管理安装的ODBC驱动程序和管理数据源。
驱动程序管理器(Driver Manager)。
驱动程序管理器包含在ODBC32.DLL中,对用户是透明的。
其任务是管理ODBC驱动程序,是ODBC中最重要的部件。
ODBC API。
ODBC 驱动程序。
是一些DLL,提供了ODBC和数据库之间的接口。
数据源。
数据源包含了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。
各部件之间的关系如图下图所示:应用程序要访问一个数据库,首先必须用ODBC管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。
ODBC
ODBC优势
一个基于ODBC的应用程序对数据库的操作 不依赖任何DBMS,不直接与DBMS打交道, 所有的数据库操作由对应的DBMS的ODBC 驱动程序完成。也就是说,不论是FoxPro、 Access还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点 是能以统一的方式处理所有的数据库。
CDatabase类
virtual BOOL Open( LPCTSTR lpszDSN, BOOL bExclusive = FALSE, BOOL bReadOnly = FALSE, LPCTSTR lpszConnect = “ODBC;”, BOOL bUseCursorLib = TRUE ); throw( CDBException, CMemoryException ); 第一个参数 指定数据源的名称。
CRecordset 类
void GetFieldValue( short nIndex, CDBVariant& varValue, short nFieldType = DEFAULT_FIELD_TYPE ); throw( CDBException, CMemoryException );
SQL server 与 ODBC
什么是ODBC
开放数据库互连(Open Database Connectivity,ODBC)是微软公司开放服务 结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分, 它建立了一组规范,并提供了一组对数据库 访问的标准API(应用程序编程接口)。这些 API利用SQL来完成其大部分任务。ODBC本 身也提供了对SQL语言的支持,用户可以直 接将SQL语句送给ODBC。
OLE、DDE、OPC、ODBC、SCADA几个概念简单介绍
1 OLE及DDE操作系统流行以来,“剪贴板”(Clipboard)首先解决了不同程序间的通信问题(由剪贴板作为数据交换中心,进行复制、粘贴的操作),但是剪贴板传递的都是“死”数据,应用程序开发者得自行编写、解析数据格式的代码,于是动态数据交换(Dynamic Data Exchange,DDE)的通信协定应运而生,它可以让应用程序之间自动获取彼此的最新数据,但是,解决彼此之间的“数据格式”转换仍然是程序员沉重的负担。
对象的链接与嵌入(Object Linking and Embedded,OLE)的诞生把原来应用程序的数据交换提高到“对象交换”,这样程序间不但获得数据也同样获得彼此的应用程序对象,并且可以直接使用彼此的数据内容,其实OLE 是Microsoft的复合文档技术,它的最初版本只是瞄准复合文档,但在后续版本OLE2中,导入了COM。
2 OPCOPC(OLE for Process Control)是一个软件标准,它可以使自动化应用程序方便地读取工业企业的工厂级数据。
OPC是基于Microsoft的组件对象建模(COM)技术定义一个标准接口,允许自动化和控制应用程序、控制设备、以及商业和办公应用软件之间相互操作。
OPC is open connectivity via open standards. They fill a need in automation like printer drivers did for Windows. See the summary of current and emerging OPC Specifications and OPC Certification.OPC is open connectivity in industrial automation and the enterprise systems that support industry. Interoperability is assured through the creation and maintenance of open standards specifications. There are currently seven standards specifications completed or in development.Based on fundamental standards and technology of the general computing market, the OPC Foundation adapts and creates specifications that fill industry-specific needs. OPC will continue to create new standards as needs arise and to adapt existing standards to utilize new technology.3 ODBC开放式数据库连接(ODBC) 技术为访问不同种类的SQL 数据库提供了通用接口。
ODBC介绍
ODBC介绍一、什么是ODBCODBC(Open Database Connectivity)是“开放式数据库互连”的简称,由微软提出,是一种使用SQL的应用程序接口(API),用户可以添加数据库驱动程序,将您的应用程序链接到自己的数据库管理系统。
ODBC的最大优点是能以统一的方式处理所有的数据库,用它生成的程序与数据库无关。
二、ODBC驱动1.查看系统所安装的ODBC驱动程序:“开始”/“设置”/“控制面板”/“管理工具”/“数据源 (ODBC)”/“驱动程序”。
2.若系统所安装的ODBC驱动程序里没有你想要的ODBC驱动,如Oracle的ODBC驱动,只需正常的安装ORACLE软件,系统会自动的将ORACLE对应的驱动程序加载到ODBC驱动程序里面。
三、数据源1.创建数据源“开始”/“设置”/“控制面板”/“管理工具”/“数据源 (ODBC)”/“添加”数据源添加完成后,名称项下的所有项都为已创建好的数据源。
2. 配置数据源(修改数据源名、说明及所指数据库)“开始”/“设置”/“控制面板”/“管理工具”/“数据源 (ODBC)”/“配置”根据选择的数据源,单击“配置”会打开数据源所对应的配置窗口(如下图)。
3. 删除数据源“开始”/“设置”/“控制面板”/“管理工具”/“数据源 (ODBC)”/“删除”选择将要删除的数据源,单击“删除”,出现删除确认窗口,选择“是”则成功删除所选择的数据源。
实例1:为SQL数据库(FXBBDATA.MDB)创建ODBC数据源。
1、“开始”/“设置”/“控制面板”/“管理工具”/“数据源 (ODBC)”,出现“ODBC数据源管理器”窗口2、单击“添加”按钮,选择SQL驱动程序,单击“完成”3、出现“创建到SQL Server 的新数据源”窗口,输入数据源名称、描述、选择要连接到的SQL Server服务器,单击“下一步”4、出现“创建到SQL Server的新数据源”窗口,设置完后单击“下一步”注意:若在此处选择“使用用户输入登录ID和密码的SQL Server 验证”。
开放型数据库互库ODBC
开放型数据库互库ODBC
李佐卿
【期刊名称】《计算机应用研究》
【年(卷),期】1995(012)002
【摘要】美国微软公司提出的开放型数据库互连ODBC是近期关于异构型数据库访问的最重要进展之一。
本文分析了异构型数据库间不能互操作的原因,介绍了ODBC的产生与发展,体系结构与特性、以及一致性级别。
【总页数】3页(P1-3)
【作者】李佐卿
【作者单位】无
【正文语种】中文
【中图分类】TP311.13
【相关文献】
1.基于VC++和ODBC数据库访问的自动测试系统软件开发 [J], 严浩;章国宝
2.基于MFC ODBC的光伏发电数据库系统的实现 [J], 袁茂荣
3.ASP中数据库连接技术ODBC的研究 [J], 仇学敏
4.基于ODBC技术实现iFix组态软件与关系数据库通讯接口 [J], 龚伟平
5.基于VC++和ODBC数据库的元器件二级库管理设计 [J], 孙秋丽
因版权原因,仅展示原文概要,查看原文内容请购买。
《ODBCROUTER说明》word版
ODBCRouter说明一、ODBC说明开放式数据库互连(Open Database Connectivity,ODBC)是微软提供的各种关系数据库互联的标准接口规范,力控软件遵循ODBC标准规范,定制了ODBCRouter组件程序。
这样力控实时数据库平台就可以通过标准接口与商用关系数据库进行数据共享。
将数据按照某种格式直接写入关系数据库中。
二、力控ODBCRouter介绍ODBCRouter是力控数据库与关系数据库的衔接组件,是力控数据库软件对外接口的一个拓展组件。
此组件极大的拓展了力控数据库在现场应用中的使用,方便了现场实时数据与管理数据的交互。
应用模型如图1所示;图1三、工作过程介绍ODBCRouter主要作用是:通过配置实现第一;将力控数据库中的数据(实时数据、历史数据)按照设定的格式转储到关系数据库;第二;将将关系数据库中的有关的实时、历史数据转储到力控数据库中。
例如:四、配置方法力控提供了ODBCRouter3.0扩展组件,来方便客户进行力控数据库和关系数据库之间的数据转储,当前的ODBCRouter3.0组件支持的关系数据库有ACCESS, SQL2000, SQL2005, Oracle, MySQL 以及Excel表格。
力控ODBCRouter3.0组件提供了实时单纪录,实时唯一单纪录,实时多纪录,实时唯一单纪录,历史单纪录,历史多纪录一共六种转储类型,导入和导出两种转储方式。
同时组件还提供了固定时间触发,周期触发,变化率触发三种不同形式的触发条件。
力控可以通过后台组件来调用ODBCRouter3.0组件,同时可以修改任务的转储参数,支持用户在后台组件下动态修改存储的数据库表名。
配置方式如下:1、安装力控时要安装扩展组件,安装完成后,从“开始”/“所有程序”/“力控6.0”/“扩展组件”/“ODBCRouter3.0”,打开组件图1如上图所示组件分为菜单栏,工具栏,导航栏,属性栏和状态栏2、菜单栏有文件,向导,操作和帮助(1)文件菜单图2文件菜单中包括新建、打开、保存、另存为、信息配置和退出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQLExecdirect SQLBindCol SQLFetch
预处理-执行方式
SQLPrepare SQLBindParameter SQLExecute
预处理-执行方式适用于SQL语句中含有参数的情况, 或大批量多次执行的情况
ODBC API(9)-SQLExedirect
ODBC API(7)
连接数据库:
SQLRETURN SQLConnect( SQLHDBC ConnectionHandle, SQLCHAR * ServerName, SQLSMALLINT NameLength1, SQLCHAR * UserName, SQLSMALLINT NameLength2, SQLCHAR * Authentication, SQLSMALLINT NameLength3);
添加数据源(2)
系统DSN和用户DSN区别 不同DBMS驱动程序的设置并不相同, 由DBMS自身提供 ODBC数据源配置过程.doc SQLServer的用户名和密码问题
SQLServer连接问题.txt
ODBC API(1)
理论上,为了互操作,所有DBMS提供的ODBC 调用函数和SQL语句应该完全一致?不可能
UserName:数据库用户名。 NameLength2:指明参数UserName数据的长度。 Authentication:数据库用户密码。 NameLength3:指明参数Authentication数据的长度。 关于ServerName,UserName,Authentication参数长度可以直接 指定也可以指定为SQL_NTS表明参数是以NULL字符结尾,由系统 自动计算。
பைடு நூலகம்
严格地说,数据库是“按照数据结构来 组织、存储和管理数据的仓库”。在经济 管理的日常工作中,常常需要把某些相关 的数据放进这样的“仓库”,并根据管理 的需要进行相应的处理。例如,企业或事 业单位的人事部门常常要把本单位职工的 基本情况(职工号、姓名、年龄、性别、籍 贯、工资、简历等)存放在表中,这张表就 可以看成是一个数据库。有了这个"数据仓 库"我们就可以根据需要随时查询某职工的 基本情况,也可以查询工资在某个范围内 的职工人数等等。
指向一段数据结构的指针(地址) 为什么要用句柄
ODBC应 用 程序 1 1
ODBC应用程序有自己的运行环境,通过通过环 环境句柄 境句柄获得 1 一个环境句柄下可以建立多个连接句柄,一个连 n 接句柄对应着一个数据源连接 连接句柄 一个连接中可以建立多个语句句柄
1 1 1 n 1 n
数据源
FetchOrientation 的值:SQL_FETCH_NEXT, SQL_FETCH_PRIOR, SQL_FETCH_FIRST,SQL_FETCH_LAST, SQL_FETCH_ABSOLUTE, SQL_FETCH_RELATIVE
ODBC API(9)-直接执行方式举例
直接执行方式举例
在 Windows XP Professional 中打开 ODBC 数据源管理器
在“开始”菜单中,单击“控制面板”. 在“控制面板”(“分类视图”)中,单击“性能和维 护”,再单击“管理工具”,或者在“控制面板” (“经典视图”)中,单击“管理工具”. 在“管理工具”中,单击“数据源(ODBC)”
ConnectionHanlde:为DBC句柄,即 SQLAllocHandle(SQL_HANDLE_DBC,hDBC,&hDBC);申请 的句柄。 ServerName:为ODBC的DSN名称。 NameLength1:指明参数ServerName数据的长度。
ODBC API(8)
如果函数执行成功,你将会得到一个结果集,否 则将返回错误信息
ODBC API(9)-SQLBindCol
利用列绑定的方式在从结果集中读取字段值 SQLRETURN SQLBindCol( SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType, SQLPOINTER TargetValuePtr, SQLINTEGER BufferLength, SQLLEN * StrLen_or_Ind);
ODBC API(9)- SQLPrepare
预编译带有参数的SQL语句 SQLRETURN SQLPrepare(SQLHSTMT StatementHandle,SQLCHAR * StatementText,SQLINTEGER TextLength);
开放数据库互联(ODBC) Open DataBase Connectivity
数据库
数据库(Database)是按照数据结构来组 织、存储和管理数据的仓库,它产生于距 今五十年前,随着信息技术和市场的发展, 特别是二十世纪九十年代以后,数据管理 不再仅仅是存储和管理数据,而转变成用 户所需要的各种数据管理的方式。数据库 有很多种类型,从最简单的存储有各种数 据的表格到能够进行海量数据存储的大型 数据库系统都在各个方面得到了广泛的应 用。
ODBC API(6)-SQLAllocHandle
retcode=SQLAllocHandle(SQL_HANDLE_ENV,NULL,&hEnv); SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION,(SQLPOINTER) SQL_OV_ODBC3, SQL_IS_INTEGER); //将ODBC设置成为版本3,否则某些ODBC API 函不能被支持。 retcode= SQLAllocHandle(SQL_HANDLE_DBC,hEnv,&hDBC); retcode= SQLAllocHandle(SQL_HANDLE_STMT,hDBC,&hSTMT);
ODBC API(9)-SQLBindCol
StatementHandle:STMT句柄。 ColumnNumber:列的位置,从1开始计算。 ValueType:指明用于和参数绑定的C语言数据类型。 ParameterType:指明在存储过程中ODBC数据类型。 BufferLength:指明参数指针所指向的缓冲区的字节数 大小。对于字符串和结构需要指明大小,而对于普通的变 量如SQLINTEGER,SQLFLOAT等设置为0就可以了。 StrLen_or_IndPtr:返回拷贝的缓冲区的数据的字节数, 数值型数据为0,字符型数据为SQL_NTS。
例如:retcode = SQLConnect(hdbc, (SQLCHAR*) "odbc_demo", SQL_NTS,(SQLCHAR*) "user", SQL_NTS, (SQLCHAR*) "password", SQL_NTS);
ODBC API(9)
执行SQL命令的两种方式
后者在fetch后不必再次执行,而前者要在循环中多次执行
ODBC API(9)-SQLFetch
推进指向结果集的指针移动
SQLRETURN SQLFetch(SQLHSTMT StatementHandle);
光标前后移动
SQLRETURN SQLFetchScroll( SQLHSTMT StatementHandle, SQLSMALLINT FetchOrientation, SQLINTEGER FetchOffset);
语句句柄
描述
ODBC API(5)
申请句柄:
SQLRETURN SQLAllocHandle(HandleType, InputHandle,OutputHandlePtr);
HandleType 是一个常数,定义了希望分配的句柄 类型.可能值如下:
SQL_HANDLE_ENV 环境句柄(Environment handle) SQL_HANDLE_DBC 连接句柄(Connection handle) SQL_HANDLE_STMT 语句句柄(Statement handle) SQL_HANDLE_DESC 描述符句柄(Descriptor handle)
驱动程序的一致性级别((Conformance Levels)
API一致性:核心级、扩展1级、扩展2级 语法一致性:最低限度SQL语法级、核心SQL语法级、 扩展SQL语法级
ODBC API(3)
ODBC标准数据类型
以“SQL_”开头,大写 SQL_CHAR、 SQL_DECIMAL 、 SQL_INTEGER 、 SQL_FLOAT 、 SQL_VARCHAR 、 SQL_BIT等 由DBMS的驱动程序完成自身数据类型 和ODBC标准数据类型的映射
• 描述符是一个数据集合描述了SQL语句参数或结果集列的元数 据集合
ODBC API(6)
InputHandle 是指向父“文本”的句柄.环境 句柄的是SQL_NULL_HANDLE或NULL。
OutputHandlePtr 如果调用成功,将指向一个双字, 其中包含了被分配的句柄. 返回值如下: SQL_SUCCESS 函数成功完成. SQL_SUCCESS_WITH_INFO 函数成功完成,但 带回非致命错误或警告. SQL_ERROR 函数调用失败. SQL_INVALID_HANDLE 传送给函数的句柄非法.
ODBC API(4)
ODBC应用程序流程 初始化阶段
分配环境句柄 分配连接句柄
• 在分配连接句柄前,最好先设置环境句柄所用的ODBC参数
建立连接 分配语句句柄
程序主体 结束部分
释放语句句柄 断开数据源连接 释放连接句柄 释放环境句柄
ODBC API(4)—什么是句柄
添加数据源(1)
如何打开 ODBC 数据源管理器 在 Windows Server 2003 中打开 ODBC 数据源管理器