第7章数据库访问技术.ppt
《第7章数据库访问技术.ppt》由会员分享,可在线阅读,更多相关《第7章数据库访问技术.ppt(67页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据库原理与设计数据库原理与设计第第7 7章章 数据库访问技术数据库访问技术数据库原理与设计数据库原理与设计第第7 7章章 数据库访问技术数据库访问技术n数据库访问技术概述数据库访问技术概述n使用使用ODBCODBC访问数据库访问数据库n嵌入式嵌入式SQLSQL与动态与动态SQLSQLn使用使用Visual BasicVisual Basic访问数据库访问数据库n使用使用ASPASP访问数据库访问数据库n应应 用用 实实 例例目前信息系统大都采用数据库来存储数据并实现有关业务逻辑,而信息系统开发的首要任务就是要确定如何表示并访问与该系统相关联的业务数据和业务逻辑。数据库原理与设计数据库原理与设
2、计7.1 7.1 数据库访问技术概述数据库访问技术概述n数据库访问技术发展概况数据库访问技术发展概况n数据库访问技术数据库访问技术 数据库原理与设计数据库原理与设计7.1.2 7.1.2 数据库访问技术数据库访问技术 nODBCODBC(开放式数据库连接)(开放式数据库连接)nDAODAO(数据访问对象)(数据访问对象)nRDORDO(远程数据对象)(远程数据对象)nOLE DBOLE DBnADOADO(ActiveXActiveX数据对象)数据对象)nADO.NET ADO.NET nBDE BDE nJDBCJDBC数据库原理与设计数据库原理与设计标准标准ODBCODBC结构结构 数据库
3、原理与设计数据库原理与设计使用使用DAODAO访问数据库访问数据库 数据库原理与设计数据库原理与设计使用使用RDORDO访问数据库访问数据库 数据库原理与设计数据库原理与设计OLE DBOLE DB的组成结构的组成结构 数据库原理与设计数据库原理与设计ADOADO(ActiveXActiveX数据对象)数据对象)数据库原理与设计数据库原理与设计ADO.NET ADO.NET 数据库原理与设计数据库原理与设计BDE BDE 数据库原理与设计数据库原理与设计JDBC JDBC 数据库原理与设计数据库原理与设计7.2 7.2 使用使用ODBCODBC访问数据库访问数据库nODBCODBC层次结构层次
4、结构n配置配置ODBCODBC数据源数据源n通过通过ODBCODBC访问访问SQL SeverSQL Sever数据库数据库n处理处理ODBCODBC错误错误数据库原理与设计数据库原理与设计7.2.1 ODBC7.2.1 ODBC层次结构层次结构n 1 1应用程序(应用程序(ApplicationApplication)n 2 2ODBCODBC驱动程序管理器驱动程序管理器n (Driver ManagerDriver Manager)n 3 3ODBCODBC驱动程序(驱动程序(DriverDriver)n 4 4数据源(数据源(DataSourceDataSource)数据库原理与设计数据
5、库原理与设计7.2.2 7.2.2 配置配置ODBCODBC数据源数据源n1 1ODBCODBC数据源管理器数据源管理器n2 2ODBCODBC数据源名数据源名n3 3配置配置SQL ServerSQL Server数据库数据源数据库数据源数据库原理与设计数据库原理与设计Windows XPWindows XP管理工具文件夹管理工具文件夹数据库原理与设计数据库原理与设计ODBCODBC数据源管理器数据源管理器 驱动程序 数据库原理与设计数据库原理与设计ODBCODBC数据源管理器数据源管理器ODBCODBC数据源管理器有数据源管理器有7 7个选项卡。个选项卡。用户用户DSN DSN 系统系统D
6、SN DSN 文件文件DSN DSN 驱动程序驱动程序 跟踪跟踪 连接池连接池 关于关于数据库原理与设计数据库原理与设计配置配置SQL ServerSQL Server数据库数据源数据库数据源 建立新数据源建立新数据源 在在“创建创建新数据源新数据源”对对话框中选择话框中选择“SQLServer”,单击,单击“完成完成”按钮,打开按钮,打开如图所示的如图所示的“MicrosoftODBCSQLServerDNS配配置置”对话框。对话框。数据库原理与设计数据库原理与设计选择验证登录选择验证登录IDID方式方式 数据库原理与设计数据库原理与设计建立建立SQL ServerSQL Server新数据
7、源新数据源 数据库原理与设计数据库原理与设计SQL Server DNS SQL Server DNS 配置配置 数据库原理与设计数据库原理与设计“ODBC Microsoft SQL ServerODBC Microsoft SQL Server安安装装”对话框对话框 数据库原理与设计数据库原理与设计 测试数据源测试数据源数据库原理与设计数据库原理与设计7.2.3 7.2.3 通过通过ODBCODBC访问访问SQL SeverSQL Sever数数据库据库使用使用ODBCODBC访问数据库的基本步骤:访问数据库的基本步骤:分配环境句柄;分配环境句柄;分配一个连接句柄;分配一个连接句柄;连接到
8、数据库;连接到数据库;为为SQLSQL命令分配一个语句句柄;命令分配一个语句句柄;传送该命令;传送该命令;关闭连接;关闭连接;解除连接和环境句柄。解除连接和环境句柄。数据库原理与设计数据库原理与设计VBVB调用调用ODBC APIODBC API访问访问SQL ServerSQL Server 在在Visual BasicVisual Basic中调用中调用ODBC APIODBC API函数必须函数必须事先声明将要使用的函数、常量和数据结构。事先声明将要使用的函数、常量和数据结构。ODBC APIODBC API函数驻留在函数驻留在ODBCODBC运行动态库运行动态库ODBC.DLLODBC
9、.DLL(1616位)或位)或ODBC32.DLLODBC32.DLL(3232位)中,位)中,该动态库位于该动态库位于WindowsWindows子目录子目录systemsystem中。编程中。编程时可以使用存有所有时可以使用存有所有1616位和位和3232位位ODBC APIODBC API函数、函数、常量和数据结构的声明语句的文本文件常量和数据结构的声明语句的文本文件ODBC16.TXTODBC16.TXT和和ODBC32.TXTODBC32.TXT,从中复制所需的,从中复制所需的声明语句。声明语句。数据库原理与设计数据库原理与设计 申请环境句柄申请环境句柄 SQLAllocEnvSQL
10、AllocEnv Dim rc As Integer rc=SQLAllocEnv(henv)IF rc 0 THEN MSGBOX 无法初始化ODBCSQLAllocEnv的参数的参数henv保存该函数返回保存该函数返回的的OBDC环境的句柄,函数执行成功时返回环境的句柄,函数执行成功时返回0,失败返回值小于失败返回值小于0。数据库原理与设计数据库原理与设计创建数据库连接句柄创建数据库连接句柄 SQLAllocConnectSQLAllocConnectrc=SQLAllocConnect(henv,hdbc)获取连接句柄获取连接句柄Ifrc0ThenMSGBOX无法获得连接句柄无法获得连接
11、句柄rc=SQLFreeEnv(henv)释放环境句柄所占用释放环境句柄所占用资源资源EndIfSQLAllocConnect的第一个参数的第一个参数henv为已取得的为已取得的ODBC数据源环境句柄,第二个参数数据源环境句柄,第二个参数hdbc保存保存ODBC连接句柄。函数执行成功返回连接句柄。函数执行成功返回0,失败返回值,失败返回值小于小于0。数据库原理与设计数据库原理与设计 连接数据源或驱动程序连接数据源或驱动程序ODBCODBC提供提供3 3种连接数据源的函数种连接数据源的函数 :(1)SQLConnect(2)SQLDriverConnect(3)SQLBrowseConnect数
12、据库原理与设计数据库原理与设计 连接数据源或驱动程序连接数据源或驱动程序(2)(2)DimDSNAsString,UIDAsString,PWDAsStringDSN=SMODBC数据源名称数据源名称UID=sa用户账号用户账号PWD=用户口令用户口令rc=SQLConnect(hdbc,DSN,Len(DSN),UID,Len(UID),PWD,Len(PWD)IFrc=SQL_ERRORTHENMSGBOX无法无法建立与建立与ODBC数据源的连接数据源的连接数据源数据源SM为建立的访问为建立的访问SQLServer数据库数据库SM的的ODBC数据源。数据源。数据库原理与设计数据库原理与设计
13、 连接数据源或驱动程序连接数据源或驱动程序(3)(3)DimmyConnAsStringDimmyBuffAsString*256DimmyBufflenAsIntegermyConn=DSN=SM;UID=SM;PWD=;DATABASE=SMrc=SQLDriverConnect(hdbc,Form1.hWnd,myConn,Len(myConn),myBuff,256,myBufflen,SQL_DRIVER_COMPLETE_REQUIED)IFrc=SQL_ERRORTHENMSGBOX无法建立与无法建立与ODBC数据源的连接数据源的连接数据源数据源SM为建立的访问为建立的访问SQL
14、Server数据库数据库SM的的ODBC数据源。数据源。数据库原理与设计数据库原理与设计 存取数据存取数据(1)调用)调用SQLAllocStmt函数获取语句句柄,函数获取语句句柄,用于处理用于处理SQL请求请求(2)执行)执行SQL语句语句使用使用SQLExecute或者或者SQLExecDirect函数发送函数发送SQL语句到连接的数据库中去执行。语句到连接的数据库中去执行。(3)获取结果集)获取结果集应用程序可调用应用程序可调用SQLFetch和和SQLGetData函数获函数获取数据。取数据。数据库原理与设计数据库原理与设计 结束应用程序结束应用程序ODBCODBC应用程序终止时应释放
15、各种应用程序终止时应释放各种ODBCODBC句柄所占用句柄所占用的系统资源。的系统资源。n调用调用SQLFreeStmtSQLFreeStmt函数释放语句句柄及其相关函数释放语句句柄及其相关的系统资源;的系统资源;n调用调用SQLDisconnectSQLDisconnect函数关闭连接;函数关闭连接;n调用调用SQLFreeConnectSQLFreeConnect函数释放连接句柄及其函数释放连接句柄及其相关的系统资源;相关的系统资源;n调用调用SQLFreeEnvSQLFreeEnv函数释放环境句柄及其相关函数释放环境句柄及其相关的系统资源,停止的系统资源,停止ODBCODBC操作。操作。
16、数据库原理与设计数据库原理与设计7.2.4 7.2.4 处理处理ODBCODBC错误错误 所有所有ODBC APIODBC API函数,若在执行期间发生错函数,若在执行期间发生错误,都将返回一个标准错误代码误,都将返回一个标准错误代码SQL_ ERRORSQL_ ERROR。一般来讲,在每次调用一般来讲,在每次调用ODBC APIODBC API函数之后,都函数之后,都应该检查该函数返回值,确定该函数是否成功应该检查该函数返回值,确定该函数是否成功地执行,再决定是否继续下一步操作。而详细地执行,再决定是否继续下一步操作。而详细的错误信息,可以通过调用的错误信息,可以通过调用SQLErrorSQ
17、LError函数获得。函数获得。数据库原理与设计数据库原理与设计7.2.4 7.2.4 处理处理ODBCODBC错误错误(2)(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 rc SQL_SUCCESS THEN rc=SQLError(henv
18、,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 Message=&Left$(sErrorMsg,iLen)Msgbox sMsg,vbInformation,Execute Query Exit Sub End
19、 If数据库原理与设计数据库原理与设计7.3 7.3 嵌入式嵌入式SQLSQL与动态与动态SQLSQL n嵌入式嵌入式SQLSQLn动态动态SQLSQL语句语句数据库原理与设计数据库原理与设计7.3.1 7.3.1 嵌入式嵌入式SQLSQL1 1嵌入式嵌入式SQLSQL概述概述2 2嵌入式嵌入式SQLSQL的一般形式的一般形式 3 3数据库与程序工作单元之间的通信数据库与程序工作单元之间的通信数据库原理与设计数据库原理与设计使用嵌入式使用嵌入式SQLSQL时应注意时应注意 在程序中要正确区分在程序中要正确区分SQLSQL语句和宿主语言的语句,因语句和宿主语言的语句,因为宿主语言的编译器不能识别
20、和接受为宿主语言的编译器不能识别和接受SQLSQL语句。语句。数据库工作单元与程序工作单元之间的通信。数据库工作单元与程序工作单元之间的通信。在宿主语言中对在宿主语言中对SQLSQL语句产生结果集的处理语句产生结果集的处理.SQL SQL的数据模型与宿主语言的数据模型的转换。的数据模型与宿主语言的数据模型的转换。SQLSQL的数据模型与其他语言的数据模型差别一般都很大。的数据模型与其他语言的数据模型差别一般都很大。数据库原理与设计数据库原理与设计嵌入式嵌入式SQLSQL的一般形式的一般形式 EXECSQL;SQL语句的结束标志则随主语言的不同而不同,例如在语句的结束标志则随主语言的不同而不同,
21、例如在PL/1和和C中中以分号(以分号(;)结束,在)结束,在COBOL中以中以END-EXEC结束。结束。嵌入嵌入SQL语句根据其作用的不同,可分为可执行语句和说明性语语句根据其作用的不同,可分为可执行语句和说明性语句两类。可执行语句又分为数据定义、数据控制、数据操作三种。句两类。可执行语句又分为数据定义、数据控制、数据操作三种。在宿主程序中,任何允许出现可执行的高级语言语句的地方,都在宿主程序中,任何允许出现可执行的高级语言语句的地方,都可以写可执行可以写可执行SQL语句;任何允许出现说明性高级语言语句的地语句;任何允许出现说明性高级语言语句的地方,都可以写说明性方,都可以写说明性SQL语
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 访问 技术
限制150内