数据库原理与设计 教学课件 ppt 作者 杨海霞 第7章数据库访问技术

上传人:E**** 文档编号:89408741 上传时间:2019-05-24 格式:PPT 页数:67 大小:964KB
返回 下载 相关 举报
数据库原理与设计 教学课件 ppt 作者  杨海霞 第7章数据库访问技术_第1页
第1页 / 共67页
数据库原理与设计 教学课件 ppt 作者  杨海霞 第7章数据库访问技术_第2页
第2页 / 共67页
数据库原理与设计 教学课件 ppt 作者  杨海霞 第7章数据库访问技术_第3页
第3页 / 共67页
数据库原理与设计 教学课件 ppt 作者  杨海霞 第7章数据库访问技术_第4页
第4页 / 共67页
数据库原理与设计 教学课件 ppt 作者  杨海霞 第7章数据库访问技术_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《数据库原理与设计 教学课件 ppt 作者 杨海霞 第7章数据库访问技术》由会员分享,可在线阅读,更多相关《数据库原理与设计 教学课件 ppt 作者 杨海霞 第7章数据库访问技术(67页珍藏版)》请在金锄头文库上搜索。

1、数据库原理与设计,数据库原理与设计,第7章 数据库访问技术,数据库原理与设计,第7章 数据库访问技术,数据库访问技术概述 使用ODBC访问数据库 嵌入式SQL与动态SQL 使用Visual Basic访问数据库 使用ASP访问数据库 应 用 实 例,目前信息系统大都采用数据库来存储数据并实现有关业务逻辑,而信息系统开发的首要任务就是要确定如何表示并访问与该系统相关联的业务数据和业务逻辑。,数据库原理与设计,7.1 数据库访问技术概述,数据库访问技术发展概况 数据库访问技术,数据库原理与设计,7.1.2 数据库访问技术,ODBC(开放式数据库连接) DAO(数据访问对象) RDO(远程数据对象)

2、 OLE DB ADO(ActiveX数据对象) ADO.NET BDE JDBC,数据库原理与设计,标准ODBC结构,数据库原理与设计,使用DAO访问数据库,数据库原理与设计,使用RDO访问数据库,数据库原理与设计,OLE DB的组成结构,数据库原理与设计,ADO(ActiveX数据对象),数据库原理与设计,ADO.NET,数据库原理与设计,BDE,数据库原理与设计,JDBC,数据库原理与设计,7.2 使用ODBC访问数据库,ODBC层次结构 配置ODBC数据源 通过ODBC访问SQL Sever数据库 处理ODBC错误,数据库原理与设计,7.2.1 ODBC层次结构,1应用程序(Appli

3、cation) 2ODBC驱动程序管理器 (Driver Manager) 3ODBC驱动程序(Driver) 4数据源(DataSource),数据库原理与设计,7.2.2 配置ODBC数据源,1ODBC数据源管理器 2ODBC数据源名 3配置SQL Server数据库数据源,数据库原理与设计,Windows XP管理工具文件夹,数据库原理与设计,ODBC数据源管理器, 驱动程序,数据库原理与设计,ODBC数据源管理器,ODBC数据源管理器有7个选项卡。 用户DSN 系统DSN 文件DSN 驱动程序 跟踪 连接池 关于,数据库原理与设计,配置SQL Server数据库数据源 建立新数据源,在

4、“创建新数据源”对话框中选择“SQL Server”,单击“完成”按钮,打开如图所示的“Microsoft ODBC SQL Server DNS配置”对话框。,数据库原理与设计,选择验证登录ID方式,数据库原理与设计,建立SQL Server新数据源,数据库原理与设计,SQL Server DNS 配置,数据库原理与设计,“ODBC Microsoft SQL Server安装”对话框,数据库原理与设计,测试数据源,数据库原理与设计,7.2.3 通过ODBC访问SQL Sever数据库,使用ODBC访问数据库的基本步骤: 分配环境句柄; 分配一个连接句柄; 连接到数据库; 为SQL命令分配一

5、个语句句柄; 传送该命令; 关闭连接; 解除连接和环境句柄。,数据库原理与设计,VB调用ODBC API访问SQL Server,在Visual Basic中调用ODBC API函数必须事先声明将要使用的函数、常量和数据结构。ODBC API函数驻留在ODBC运行动态库ODBC.DLL(16位)或ODBC32. DLL(32位)中,该动态库位于Windows子目录system中。编程时可以使用存有所有16位和32位ODBC API函数、常量和数据结构的声明语句的文本文件ODBC16.TXT和ODBC32. TXT,从中复制所需的声明语句。,数据库原理与设计, 申请环境句柄 SQLAllocEn

6、v,Dim rc As Integer rc = SQLAllocEnv(henv) IF rc 0 THEN MSGBOX “无法初始化ODBC“ SQLAllocEnv的参数henv保存该函数返回的OBDC环境的句柄,函数执行成功时返回0,失败返回值小于0。,数据库原理与设计,创建数据库连接句柄 SQLAllocConnect,rc = SQLAllocConnect(henv, hdbc) 获取连接句柄 If rc 0 Then MSGBOX “无法获得连接句柄“ rc = SQLFreeEnv(henv) 释放环境句柄所占用资源 End If SQLAllocConnect的第一个参数

7、henv为已取得的ODBC数据源环境句柄,第二个参数hdbc 保存ODBC连接句柄。函数执行成功返回0,失败返回值小于0。,数据库原理与设计, 连接数据源或驱动程序,ODBC提供3种连接数据源的函数 : (1)SQLConnect (2)SQLDriverConnect (3)SQLBrowseConnect,数据库原理与设计, 连接数据源或驱动程序(2),Dim DSN As String, UID As String, PWD As String DSN = “SM “ ODBC数据源名称 UID = “sa“ 用户账号 PWD = “ 用户口令 rc = SQLConnect(hdbc,

8、 DSN, Len(DSN), UID, Len(UID), PWD, Len(PWD) IF rc = SQL_ERROR THEN MSGBOX “无法建立与ODBC数据源的连接“,数据源SM为建立的访问SQL Server数据库SM的ODBC数据源。,数据库原理与设计, 连接数据源或驱动程序(3),Dim myConn As String Dim myBuff As String * 256 Dim myBufflen As Integer myConn = “DSN=SM;UID=SM;PWD=;DATABASE=SM “ rc = SQLDriverConnect(hdbc, For

9、m1.hWnd, myConn, Len(myConn), myBuff, 256, myBufflen, SQL_DRIVER_COMPLETE_REQUIED) IF rc = SQL_ERROR THEN MSGBOX “无法建立与ODBC数据源的连接“,数据源SM为建立的访问SQL Server数据库SM的ODBC数据源。,数据库原理与设计, 存取数据,(1)调用SQLAllocStmt函数获取语句句柄, 用于处理SQL请求 (2)执行SQL语句 使用SQLExecute或者SQLExecDirect函数发送SQL语句到连接的数据库中去执行。 (3)获取结果集 应用程序可调用SQLFe

10、tch和SQLGetData函数获取数据。,数据库原理与设计, 结束应用程序,ODBC应用程序终止时应释放各种ODBC句柄所占用的系统资源。 调用SQLFreeStmt函数释放语句句柄及其相关的系统资源; 调用SQLDisconnect函数关闭连接; 调用SQLFreeConnect函数释放连接句柄及其相关的系统资源; 调用SQLFreeEnv函数释放环境句柄及其相关的系统资源,停止ODBC操作。,数据库原理与设计,7.2.4 处理ODBC错误,所有ODBC API函数,若在执行期间发生错误,都将返回一个标准错误代码SQL_ ERROR。一般来讲,在每次调用ODBC API函数之后,都应该检查

11、该函数返回值,确定该函数是否成功地执行,再决定是否继续下一步操作。而详细的错误信息,可以通过调用SQLError函数获得。,数据库原理与设计,7.2.4 处理ODBC错误(2),Dim lErrNo As Long Dim iLen As Integer Dim sSQLState As String * 255 Dim sErrorMsg As String * 255 Dim sMsg As String SQLstmt = “SELECT SNo,SName FROM Student“ rc = SQLExecDirect(hstmt, SQLstmt, Len(SQLstmt) IF

12、rc SQL_SUCCESS THEN rc = SQLError(henv, hdbc, hstmt, sSQLState, lErrNo, sErrorMsg, 255, iLen) sMsg = “Error Executing SQL Statement“ & Chr$(13) & Chr$(10) sMsg = sMsg & “ODBC State = “ sMsg = sMsg & Trim$(Left$(sSQLState, InStr(sSQLState, Chr$(0) - 1) & Chr$(13) & Chr$(10) sMsg = sMsg & “ODBC Error

13、Message = “ & Left$(sErrorMsg, iLen) Msgbox sMsg, vbInformation, “Execute Query“ Exit Sub End If,数据库原理与设计,7.3 嵌入式SQL与动态SQL,嵌入式SQL 动态SQL语句,数据库原理与设计,7.3.1 嵌入式SQL,1嵌入式SQL概述 2嵌入式SQL的一般形式 3数据库与程序工作单元之间的通信,数据库原理与设计,使用嵌入式SQL时应注意, 在程序中要正确区分SQL语句和宿主语言的语句,因为宿主语言的编译器不能识别和接受SQL语句。 数据库工作单元与程序工作单元之间的通信。 在宿主语言中对SQ

14、L语句产生结果集的处理. SQL的数据模型与宿主语言的数据模型的转换。SQL的数据模型与其他语言的数据模型差别一般都很大。,数据库原理与设计,嵌入式SQL的一般形式,EXEC SQL ; SQL语句的结束标志则随主语言的不同而不同,例如在PL/1和C中以分号(;)结束,在COBOL中以END-EXEC结束。 嵌入SQL语句根据其作用的不同,可分为可执行语句和说明性语句两类。可执行语句又分为数据定义、数据控制、数据操作三种。 在宿主程序中,任何允许出现可执行的高级语言语句的地方,都可以写可执行SQL语句;任何允许出现说明性高级语言语句的地方,都可以写说明性SQL语句。,数据库原理与设计,数据库与

15、程序工作单元之间的通信,在嵌入式SQL编程时,SQL语句负责操作数据库,高级语言语句负责控制程序流程。它们的之间的通信主要包括: 用SQL通信区(SQL Communication Area,SQLCA)向主语言传递SQL语句的执行状态信息,使主语言能够据此控制程序流程。 在程序运行过程中,主语言向SQL语句提供参数,使用主变量(host variable)输入数据;程序把SQL语句查询数据库的结果交主语言进一步处理,其中使用主变量和游标(cursor)向主语言输出数据,从而实现了SQL的过程化工作。,数据库原理与设计,7.3.2 动态SQL语句,1动态SQL预备语句 EXEC SQL PRE

16、PARE FROM 2动态SQL执行语句 EXEC SQL EXECUTE EXEC SQL EXECUTE IMMEDIATE EXEC SQL EXECUTE USING 3动态SQL语句的执行流程 (1)先准备相应的SQL语句。 (2)需要时执行SQL语句,数据库原理与设计,7.4 使用Visual Basic访问数据库,数据访问对象 使用RDO模型访问SQL Sever数据库 使用ADO模型访问SQL Sever数据库 使用数据环境设计器访问SQL Server,数据库原理与设计,7.4.1 数据访问对象,1DAO的引用 2DAO的层次结构 3DAO操作数据库的方法和步骤 4DAO的对象与方法,数据库原理与设计,DAO操作数据库的方法和步骤, 打开数据库。首先要引入数据引擎,然后创建Database对象,使用该对象的方法可以打开数据库。 操作数据库数据。在数据库打开之后,创建

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号