ImageVerifierCode 换一换
格式:DOCX , 页数:55 ,大小:47.35KB ,
资源ID:22571955      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22571955.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(用Visual C2B2B开发数据库应用程序Word格式文档下载.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

用Visual C2B2B开发数据库应用程序Word格式文档下载.docx

1、4. OLE DB(Object Link and Embedding DataBase) 5. ADO(ActiveX Data Object) 这些技术各有自己的特点,总结如下:1. ODBC ODBC是客户应用程序访问关系数据库时提供的一个统一的接口,对于不同的数据库,ODBC提供了一套统一的API,使应用程序可以应用所提供的API来访问任何提供了ODBC驱动程序的数据库。而且,ODBC已经成为一种标准,所以,目前所有的关系数据库都提供了ODBC驱动程序,这使ODBC的应用非常广泛,基本上可用于所有的关系数据库。但由于ODBC只能用于关系数据库,使得利用ODBC很难访问对象数据库及其它非

2、关系数据库。由于ODBC是一种底层的访问技术,因些,ODBC API可以使客户应用程序能够从底层设置和控制数据库,完成一些高层数据库技术无法完成的功能。2. MFC ODBC 由于直接使用ODBC API编写应用程序要编制大量代码,在Visual C+中提供了MFC ODBC类,封装了ODBC API,这使得利用MFC来创建ODBC的应用程序非常简便。3. DAO DAO提供了一种通过程序代码创建和操纵数据库的机制。多个DAO构成一个体系结构,在这个结构中,各个DAO对象协同工作。MFC DAO是微软提供的用于访问Microsoft Jet数据库文件(*.mdb)的强有力的数据库开发工具,它通

3、过DAO的封装,向程序员提供了DAO丰富的操作数据库手段。4. OLE DB OLE DB是Visual C+开发数据库应用中提供的新技术,它基于COM接口。因此,OLE DB对所有的文件系统包括关系数据库和非关系数据库都提供了统一的接口。这些特性使得OLE DB技术比传统的数据库访问技术更加优越。与ODBC技术相似,OLE DB属于数据库访问技术中的底层接口。直接使用OLE DB来设计数据库应用程序需要大量的代码。在VC中提供了ATL模板,用于设计OLE DB数据应用程序和数据提供程序。5. ADO ADO技术是基于OLE DB的访问接口,它继承了OLE DB技术的优点,并且,ADO对OLE

4、 DB的接口作了封装,定义了ADO对象,使程序开发得到简化,ADO技术属于数据库访问的高层接口。2、 使用ODBC APIMicrosoft 开放数据库互连(ODBC,Open DataBase Connectivity)是Microsoft Windows 开放服务体系(WOSA)的一部分,是一个数据库访问的标准接口。使用这一标准接口,我们可以不关心具体的数据库管理系统(DBMS)的细节,而只要有相应类型数据库的ODBC驱动程序,就可以实现对数据库的访问。ODBC编程接口为我们提供了极大的灵活性,我们可以通过这一个接口访问不同种类的数据库。而且,通过相应的ODBC驱动程序,我们可以方便地实现

5、不同数据类型之间的转换。21 ODBC API 概述ODBC是一个应用广泛的数据库访问应用编程接口(API),使用标准的SQL(结构化查询语言)作为其数据库访问语言。211体系结构ODBC的结构是建立在客户机服务器体系结构之上,它包含如下四个部分:应用程序(Application ):应用程序即用户的应用,它负责用户与用户接口之间的交互操作,以及调用ODBC函数以给出SQL请求并提取结果以及进行错误处理。ODBC驱动程序管理器(Driver Manager):ODBC驱动程序管理器为应用程序加载和调用驱动程序,它可以同时管理多个应用程序和多个驱动程序。它的功能是通过间接调用函数和使用动态链接库

6、(DLL)来实现的,因此它一般包含在扩展名为”DLL”的文件中。ODBC驱动程序(Driver)ODBC 驱动程序执行ODBC函数调用,呈送 SQL 请求给指定的数据源,并将结果返回给应用程序。驱动程序也负责与任何访问数据源的必要软件层进行交互作用,这种层包括与底层网络或文件系统接口的软件。数据源数据源由数据集和与其相关联的环境组成,包括操作系统、DBMS 和网络(如果存在的话)。ODBC 通过引入“数据源”的概念解决了网络拓扑结构和主机的大范围差异问题,这样,用户看到的是数据源的名称而不必关心其它东西。212数据类型ODBC使用两类数据类型:SQL数据类型和C数据类型。SQL数据类型用于数据

7、源,C数据类型用于应用程序代码中。213句柄ODBC API 实现数据库操作的手段是语句,这是一个强有力的手段。ODBC语句除了能执行SQL语句和完成查询操作之外,还能实现大多数数据库操作。在ODBC中,使用不同的句柄(HANDLE)来标志环境(ENVIRONMENT)、连接(CONNECTION)、语句(STATEMENT)、描述器(DESCRIPTOR)等。句柄就是一个应用程序变量,系统用它来存储关于应用程序的上下文信息和应用程序所用到的一些对象。它和 Windows 编程中的概念类似,不过ODBC 更加完善了句柄的作用。1、 环境句柄是 ODBC 中整个上下文的句柄,使用 ODBC 的每

8、个程序从创建环境句柄开始,以释放环境句柄结束。所有其它的句柄(这一应用程序所有的联接句柄和语句句柄)都由环境句柄中的上下文来管理。环境句柄在每个应用程序中只能创建一个。2、联接句柄管理有关联接的所有信息。联接句柄可以分配多个,这不仅合法而且很有用;但不要生成不必要的句柄以免资源的浪费。但是,不同的驱动程序支持的联接情况有所不同,有的驱动程序在一个应用程序中仅支持一个联接句柄,有的驱动程序仅支持一个语句句柄。在应用程序中,可以在任何适当的时候联接或脱离数据源,但不要轻易地建立或脱离联接。3、语句句柄是 ODBC API 真正发挥重要作用的,它被用来处理 SQL 语句及目录函数,每个语句句柄只与一

9、个联接有关。当驱动程序接收一个来自应用程序的函数调用指令而该指令包含一个语句句柄时,驱动程序管理器将使用存储在语句句柄中的联接句柄来将这一函数调用发送给合适的驱动程序。4、描述器句柄是元数据的集合,这些元数据描述了SQL语句的参数、记录集的列等信息。当有语句被分配内存之后,描述器自动生成,称为自动分配描述器。在程序中,应用程序也可调用SQLAllocHandle分配描述器。当应用程序调用API函数SQLAllocHandle时,驱动管理器或者ODBC驱动程序将为所声明的句柄类型分配内部结构,返回句柄值。214异常处理为了在程序开发过程中调试程序,发现程序错误,ODBC API通过两种方式返回有

10、关ODBC API函数执行的的信息:返回码和诊断记录。返回码返回函数执行的返回值,说明函数执行成功与否。诊断记录说明函数执行的详细信息。1. 返回码(Return Code) 每一个ODBC API函数都返回一个代码返回码,指示函数执行的成功与否。如果函数调用成功,返回码为SQL_SUCCESS或SQL_SUCCESS_WITH_INFO。SQL_SUCCESS指示可通过诊断记录获取有关操作的详细信息,SQL_SUCCESS_WITH_INFO指示应用程序执行结果带有警告信息,可通过诊断记录获取详细的信息。如果函数调用失败,返回码为SQL_ERROR。下面的一段代码根据函数SQLFetch()

11、执行的返回码,判断函数执行的成功与否,从而据此进行相应的处理。SQLRETURN rtcode;SQLHSTMT hstmt;While(rtcode=SQLFetch(hstmt)!=SQL_NO_DATA)if(rtcode=SQL_SUCCESS_WITH_INFO)/显示警告信息else/显示出错信息break;/函数调用成功,进行处理如果程序执行错误,返回码为SQL_INVALID_HANDLE,程序无法执行,而其它的返回码都带有程序执行的信息。2. 诊断记录(Diagnostic Records) 每个ODBC API函数都能够产生一系列的反映操作信息的诊断记录。这些诊断记录放在相

12、关连的ODBC句柄中,直到下一个使用同一个句柄的函数调用,该诊断记录一直存在。诊断记录的大小没有限制。诊断记录有两类:头记录(Head Record)和状态记录(Status Record)。头记录是第一版权法记录(Record 0),后面的记录为状态记录。诊断记录有许多的域组成,这些域在头记录和状态记录中是不同的。可以用SQLGetDiagField函数获取诊断记录中的特定的域,另外,可以使用SQLGetDiagRec()获取诊断记录中一些常用的域,如SQLSTATE、原始错误号等。1. 头记录 头记录的各个域中包含了一个函数执行的通用信息,无论函数执行成功与否,只要不返回SQL_INVAL

13、ID_HANDLE,都会生成头记录。2. 状态记录 状态记录中的每个域包含了驱动管理器、ODBC驱动程序或数据源返回的特定的错误或警告信息,包括SQLSTATE、原始错误码、诊断信息、列号和行号等。只有函数执行返回SQL_ERROR,SQL_STILL_EXEUTING、SQL_SUCCESS_WITH_INFO、SQL_NEED_DATA或SQL_NO_DATA时,才会生成诊断记录。3. 使用SQLGetDiagRec和SQLGetDiagField 应用程序可以调用函数SQLGetDiagRec或SQLGetDiagField获取诊断信息。对于给定的句柄,这两个函数返回最近使用该句柄的函数

14、的诊断信息。当有使用该句柄的函数执行时,句柄记录所记录的原有的诊断信息被覆盖。如果函数执行后产生多个状态记录,程序必须多次调用这两个函数以获取信息。22 应用ODBC API建立应用程序虽然直接应用ODBC API编制应用程序相对来说较为繁琐,但是,由于直接使用ODBC API编写的程序相对要简洁、高效。所以,我们有必要学习直接使用ODBC API编程。一般地,编写ODBC程序主要有以下几个步骤:1. 分配ODBC环境 2. 分配连接句柄 3. 连接数据源 4. 构造和执行SQL语句 5. 取得执行结果 6. 断开同数据源的连接 7. 释放ODBC环境 221 分配ODBC环境对于任何ODBC

15、应用程序来说,第一步的工作是装载驱动程序管理器,然后初始化ODBC环境,分配环境句柄。首先,程序中声明一个SQLHENV类型的变量,然后调用函数SQLAllocHandle,向其中传递分配的上述SQLHENV类型的变量地址和SQL_HANDLE_ENV选项。如下代码所示:SQLHENV henv;SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv);执行该调用语句后,驱动程序分配一个结构,该结构中存放环境信息,然后返回对应于该环境的环境句柄。222分配连接句柄分配环境句柄后,在建立至数据源的连接之前,我们必须分配一个连接句柄,每一个到数据源的

16、连接对应于一个连接句柄。首先,程序定义了一个SQLHDBC类型的变量,用于存放连接句柄,然后调用SQLAllocHandle函数分配句柄。SQLHDBC hdbc;SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);henv为环境句柄。223 连接数据源当连接句柄分配完成后,我们可以设置连接属性,所有的连接属性都有缺省值,但是我们可以通过调用函数SQLSetConnectAttr()来设置连接属性。用函数SQLGetConnectAttr()获取这些连接属性。函数格式如下:SQLRETURN SQLSetConnectAttr(SQLHDBC Connectio

17、nHandle,SQLINTEGER Attribute,SQLPOINTER ValuePtr,SQLINTEGER StringLength);SQLRETURN SQLGetConnectAttr(SQLHDBC ConnectionHandle,SQLINTEGER Attribute,SQLPOINTER ValuePtr,SQLINTEGER StringLength);应用程序可以根据自己的需要设置不同的连接属性。完成对连接属性的设置之后,就可以建立到数据源的连接了。对于不同的程序和用户接口,可以用不同的函数建立连接:SQLConnect、SQLDriverConnect、SQL

18、BrowseConnect。SQLConnect该函数提供了最为直接的程序控制方式,我们只要提供数据源名称、用户ID和口令,就可以进行连接了。函数格式:SQLRETURN SQLConnect(SQLHDBC ConnectionHandle,SQLCHAR ServerName,SQLSMALLINT NameLength1,SQLCHAR UserName,SQLSMALLINT NameLength2,SQLCHAR *Authentication,SQLSMALLINT NameLength3);参数:ConnectionHandle 连接句柄ServerName 数据源名称NameL

19、ength1 数据源名称长度UserName 用户IDNameLength2 用户ID长度Authentication 用户口令NameLength3 用户口令长度返回值:SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR, or SQL_INVALID_HANDLE.成功返回SQL_SUCCESS,如果返回值为SQL_ERROR或SQL_SUCCESS_WITH_INFO,可以用函数SQLGetDiagRec获取相应SQLSTATE的值。下面的代码演示了如何使用ODBC API的SQLConnect函数建立同数据源SQLServer的连接。#inclu

20、de “sqlext.h”;SQLRETURN retcode;/*Allocate environment handle */retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, & if (retcode = SQL_SUCCESS | retcode = SQL_SUCCESS_WITH_INFO) /* Set the ODBC version environment attribute */retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_

21、ODBC3, 0);/* Allocate connection handle */retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &/* Set login timeout to 5 seconds. */SQLSetConnectAttr(hdbc, (void*)SQL_LOGIN_TIMEOUT, 5, 0);/* Connect to data source */retcode = SQLConnect(hdbc, (SQLCHAR*) Sales, SQL_NTS,(SQLCHAR*) JohnSSesame, SQL_NTS);if

22、(retcode = SQL_SUCCESS | retcode = SQL_SUCCESS_WITH_INFO)/* Allocate statement handle */retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);/* Process data */;SQLFreeHandle(SQL_HANDLE_STMT, hstmt);SQLDisconnect(hdbc);SQLFreeHandle(SQL_HANDLE_DBC, hdbc); SQLFreeHandle(SQL_HANDLE_ENV, henv);SQLDri

23、veConnect函数SQLDriveConnect用一个连接字符串建立至数据源的连接。它可以提供比SQLConnect函数的三个参数更多的信息,可以让用户输入必要的连接信息。如果连接建立,该函数返回完整的字符串,应用程序可使用该连接字符串建立另外的连接。SQLRETURN SQLDriverConnect(SQLHDBC ConnectionHandle,SQLHWND WindowHandle,SQLCHAR InConnectionString,SQLSMALLINT StringLength1,SQLCHAR OutConnetionString,SQLSMALLINT BufferL

24、ength,SQLSMALLINT *StringLength2Ptr,SQLSMALLINT DriverCompletion);参数:WindowHandle 窗口句柄,应用程序可以用父窗口的句柄,或用NULL指针InConnectionString 连接字符串长度OutConnectionString 一个指向连接字符中的指针BufferLength 存放连接字符串的缓冲区的长度StringLength2Ptr 返回的连接字符串中的字符数DriverCompletion 额外连接信息,可能取值有:SQL_DRIVER_PROMPT,SQL_DRIVER_COMPLETE, SQL_DRI

25、VER_COMPLETE_REQUIRED, orSQL_DRIVER_NOPROMPT.SQLBrowseConnect函数SQLBrowseConnect支持以一种迭代的方式获取到数据源的连接,直到最后建立连接。它是基于客房机/服务器的体系结构,因此,本地数据库不支持该函数。一般,我们提供部分连接信息,如果足以建立到数据源的连接,则成功建立连接,否则返回SQL_NEED_DATA,并在OutConnectionString参数中返回所需要的信息。SQLRETURN SQLBrowseConnect(SQLHDBC ConnectionHandle,SQLCHAR* InConnection

26、String,SQLSAMLLINT StringLength1,SQLCHAR* OutConnectionString,SQLSMALLINT BufferLength,SQLSMALLINT *StringLength2Ptr);InConnectionString 指向输出字符串的指针StringLength1 输出字符串的指针长度OutConnectionString 指向输出字符串的指针BufferLength 用于存放输出字符串的缓冲区的长度StringLength2Ptr 实际返回的字符串的长度下面的代码讲述了如何使用ODBC API的SQLBrowseConnect函数建立同数据源的连接。#define BRWS_LEN 100SQLHENV henv;SQLCHAR szConnStrInBRW

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1