数据库与开发工具的协同.ppt
第十四章 数据库与开发工具的协同,常用的数据库的连接方法 ODBC OLE DB ADO 在DELPHI 中的数据库开发 在Visual Basic中的数据库开发 在ASP中的数据库开发,第十四章 数据库与开发工具的协同,概述 一个完整的数据库应用系统在逻辑上包括用户界面和数据库访问链路,SQL Server在C/S或B/S双层结构中位于服务器端,构成整个数据库应用系统的后端数据库,满足客户端连接数据库和存储数据的需要,它并不具备图形用户界面的设计功能。在C/S结构中,图形用户界面的设计工作通常使用可视化开发工具Visual Basic和Delphi等,在B/S结构中,常使用动态服务器页面(ASP)、JSP等来实现。本章主要介绍在C/S和B/S结构中数据库与开发工具协同使用开发数据库应用系统的方法。,第十四章 数据库与开发工具的协同,常用的数据库的连接方法1、ODBC 开放式数据库互联ODBC(Opened Database Connectivity)是一种用于访问数据库的统一界面标准,它应用数据通信方法、数据传输协议、DBMS等多种技术定义了一个标准的接口协议,允许应用程序以SQL作为数据存取标准,来存取不同的DBMS管理的数据。ODBC为数据库应用程序访问异构型数据库提供了统一的数据存取接口API,应用程序不必重新编译、连接就可以与不同的DBMS相连。目前支持ODBC的有SQL Server、Oracle等10多种流行的DBMS。ODBC是一个分层体系结构,由四部分构成:ODBC数据库应用程序(Application)驱动程序管理器(Driver Manager)DBMS驱动程序(DBMS Driver)数据源(Data Source),第十四章 数据库与开发工具的协同,常用的数据库的连接方法1)应用程序 应用程序的主要功能是:调用ODBC函数,递交SQL语句给DBMS,检索出结果,并进行处理。应用程序要完成ODBC外部接口的所有工作。应用程序的操作包括:1、连接数据库,向数据源发送SQL语句;2、为SQL语句执行结果分配存储空间,定义所读取的数据格式;3、读取结果;4、处理错误;5、向用户提交处理结果;6、请求事务的提交和回退操作;7、断开与数据源的连接。应用层提供图形用户界面(GUI)和事务逻辑,它是使用诸如Java、VisualBasic及C+这样的语言编写的程序。应用程序利用ODBC接口中的ODBC功能与数据库进行操作。,第十四章 数据库与开发工具的协同,常用的数据库的连接方法2)驱动程序管理器 驱动程序管理器是一个动态连接库(DLL),用于连接各种DBS的DBMS驱动程序(如SQL Server、Oracle、Sybase等驱动程序),主要管理应用程序和DBMS驱动程序之间的交互作用。驱动程序管理器的主要功能如下:1、为应用程序加载DBMS驱动程序。2、检查ODBC调用参数的合法性和记录ODBC函数的调用。3、为不同驱动程序的ODBC函数提供单一的入口。4、调用正确的DBMS驱动程序。5、提供驱动程序信息。当一个应用程序与多个数据库连接时,驱动程序管理器能够保证应用程序正确地调用这些DBS的DBMS,实现数据访问,并把来自数据源的数据传送给应用程序。,第十四章 数据库与开发工具的协同,常用的数据库的连接方法3)DBMS驱动程序 应用程序不能直接存取数据库,其各种操作请求要通过ODBC的驱动程序管理器提交给DBMS驱动程序,通过驱动程序实现对数据源的各种操作,数据库的操作结果也通过驱动程序返回给应用程序。应用程序通过调用驱动程序所支持的函数来操纵数据库。驱动程序也是一个动态连接库(DLL).当应用程序调用函数进行连接时,驱动程序管理器加载驱动程序.根据应用程序的要求,驱动程序完成以下任务:1、建立应用程序与数据源的连接。2、向数据源提交用户请求执行的SQL语句。3、根据应用程序的要求,将发送给数据源的数据或是从数据源返回的数据进行数据格式和类型转换。4、把处理结果返回给应用程序。5、将执行过程中DBS返回的错误转换成ODBC定义的标准错误代码,并返回给应用程序。6、根据需要定义和使用光标。,第十四章 数据库与开发工具的协同,常用的数据库的连接方法4)ODBC的数据源管理 数据源(Data Source Name,简称DSN)是驱动程序与DBS连接的桥梁,数据源不是DBS,而是用于表达一个ODBC驱动程序和DBMS特殊连接的命名。数据源分为以下三类:用户数据源:用户创建的数据源,称为“用户数据源”。此时只有创建者才能使用,并且只能在所定义的机器上运行。任何用户都不能使用其他用户创建的用户数据源。系统数据源:所有用户和在Windows NT下以服务方式运行的应用程序均可使用系统数据源。文件数据源:文件数据源是ODBC 3.0以上版本增加的一种数据源,可用于企业用户,ODBC驱动程序也安装在用户的计算机上。创建数据源最简单的方法是使用ODBC驱动程序管理器。在连接中,用数据源名来代表用户名、服务器名、所连接的数据库名等,可以将数据源名看成是与一个具体数据库建立的连接。,第十四章 数据库与开发工具的协同,常用的数据库的连接方法 关系图:,Windos接口,第十四章 数据库与开发工具的协同,常用的数据库的连接方法2、OLE DB OLE DB是一组“组件对象模型”(COM)接口,是一种数据访问的技术标准,封装了ODBC的功能,目的是提供统一的数据访问接口。OLE DB将传统的数据库系统划分为多个逻辑部件,部件间相对独立又相互通讯。1)消费者(Consumers):消费者是使用OLE DB对存储在数据提供者中的数据进行控制的应用程序。2)提供者(Providers):提供者是暴露OLE DB的软组件。提供者大致分两类,即数据提供者(Data Providers)和服务提供者(Service Providers)。数据提供者是提供数据存储的软组件,服务提供者位于数据提供者之上,它是从过去的DBMS中分离出来且能独立运行的功能组件这些组件使得数据提供者提供的数据能以表格形式向外表示,并实现数据的查询和修改功能。3)业务组件(Business Component):业务组件是利用数据服务提供者专门完成某种特定业务信息处理的、可重用的功能组件。,第十四章 数据库与开发工具的协同,常用的数据库的连接方法 3、ADO 1)ADO对象模型 ADO(ActiveX Data Objects,ActiveX数据对象)技术则是一种良好的解决方案,它构建于OLE DB API之上,提供一种面向对象的、与语言无关的应用程序编程接口。ADO的应用场合非常广泛,而且支持多种程序设计语言,不仅兼容所有的数据库系统,从桌面数据库到网络数据库等,ADO提供相同的处理方法。,ADO对象模型,第十四章 数据库与开发工具的协同,常用的数据库的连接方法2)ADO功能 ADO支持开发C/S和B/S应用程序的关键功能包括:1、独立创建对象。使用ADO不再需要浏览整个层次结构来创建对象,因为大多数的ADO对象可以独立创建。这个功能允许用户只创建和跟踪需要的对象,这样,ADO对象的数目较少,所以工作集也更小。2、成批更新。通过本地缓存对数据的更改,然后在一次更新中把它们全部写到服务器。3、支持带参数和返回值的存储过程。4、不同的游标类型。包括对SQL Server和Oracle这样的数据库后端特定的游标的支持。5、可以限制返回行的数目和其它的查询目标来进一步调整性能。6、支持从存储过程或批处理语句返回的多个记录集。,第十四章 数据库与开发工具的协同,在DELPHI 中的数据库开发 1、Delphi提供的SQL Server访问机制 Delphi对SQL Server提供了很强的数据库访问能力,也提供了多种方式访问SQL Server。在利用SQL Server和Delphi开发数据库应用系统时,通常将数据访问组件放在数据模块中,将用户界面组件放在窗体中,它的模型如下图所示:访问MS SQL Server的方法有以下几种:BDE/IDAPI ODBC ADO,第十四章 数据库与开发工具的协同,在DELPHI 中的数据库开发 BDE/IDAPI Delphi通过BDE/IDAPI来访问数据库。BDE是Delphi采用的一个中间件,它一方面连接Delphi中的各种数据库操作对象,比如Tqueue;另一方面连接了数据库的驱动程序。采用这种方法连接SQL Server需要以下几步:1)从Delphi程序组中打开BDE Administrator。2)在左边的树形浏览器中的Database项上点右键,选择New命令。出现下面的对话框。选择MSSQL选项。3)单击“OK”按钮,然后弹出对话框。4)修改MSSQL1名称为用户自定义的数据库别名,然后在右边的Definition页中设置一些参数。5)保存别名定义。单击鼠标右键,在弹出菜单中选择Apply命令,即保存了别名的定义。6)双击该别名,或者在右键快捷菜单中选择Open命令。如果需要输入密码,输入用户名和密码,这样Delphi就同SQL Server上的数据库建立起了连接,此时别名旁的小图标将加上绿色框表示已经打开。,第十四章 数据库与开发工具的协同,在DELPHI 中的数据库开发 ODBC是微软一直以来推荐的数据库连接方式,已成为了一种工业标准。采用这种方法连接SQL Server需要以下几步:1)假设在SQL Server下创建了一个用户数据库,名称为Books_ management,应用程序从本数据库中存取数据,创建数据源DSN。2)启动ODBC数据源设置程序:首先从用户计算机控制面板启动“数据源ODBC”程序如图14.7所示数据源文件有三种类型,其中“用户DSN”和“系统DSN”是我们常用的两种数据源。“用户DSN和“系统DSN”的区别是前者用于本地数据库的连接,后者是多用户和远程数据库的连接方式。3)创建新数据源:在图中点击“添加”按钮,系统弹出创建数据源对话框,以“用户DSN”为例加以说明,在此因为现在要设置的数据库类型为SQL Server,选择相对应的数据库驱动程序SQL Server。,第十四章 数据库与开发工具的协同,在DELPHI 中的数据库开发 4)创建新的数据源到SQL Server:在上一步选择了连接数据源的类型,点击“完成”按钮,系统会提示创建新数据源的位置。在名称框中输入数据源名称Books,说明框中输入对数据源的说明:图书馆理数据库。选择数据库服务器名称,如果SQL Server系统安装如果有问题,在此将无法找到数据库服务器。在此选择本机命名的数据库服务器ServerServer。5)创建新的数据源到SQL Server 登录方式有两种,选择第二种方式“使用用户输入登录ID和密码的SQL Server验证”方式。输入数据库的用户名称和密码。按下“下一步”按钮,以及登录名称和密码。6)建立新的数据源到SQL Server 在图中点击“下一步”按钮,系统显示图,选择“更改默认的数据库为”列表框,找到Books_ management 用户建立的数据库,点击下一步。7)完成数据源的创建 选择SQL Server数据库支持的语言,以及其他一些选项。点击完成。8)在创建完成数据源之后,进行数据源选项的测试。,第十四章 数据库与开发工具的协同,在DELPHI 中的数据库开发 ADO Delphi提供了ADO组件编程。利用这些组件,用户可以与ADO数据库相联系,读取数据库中的数据并执行相应的操作,在此过程中完全不需要使用BDE。Delphi 6.0中的ADO组件页如下图所示。TADOConnection:用于建立与数据库的ADO连接,其他组件都可以通过它来操作数据库,从而避免了每个组件都要建立自己的连接字符串。TADOCommand:专门用来创建和执行命令的,它适合于执行不返回结果的SQL命令TADODataSet:可以操纵数据表、执行SQL查询和存储过程并且能通过TADOConnection组件或直接与一个数据存储建立连接。TADOTable:用于检索和操作由一个数据表生成的数据集。TADOQuery:用于检索和操作由一个合法的SQL语句生成的数据集。TADOStoredProc:用于执行存储过程,无论它是否返回结果值。TRDSConnection:主要实现RDS Dataspace对象的功能,以便建立多层客户机/服务器应用程序。,第十四章 数据库与开发工具的协同,在DELPHI 中的数据库开发 ADO使用属性编辑器可以方便地为ConnectionString属性设定值,操作步骤如下:1)单击Object Inspector中ConnectionString属性项右边的省略号按钮,弹出对话框如图14.15所示。有两种方式设置:第一种为Use Data Link File:使用已有的数据连接文件(.UDL)。第二种为Use Connection String:直接输入数据连接参数 2)单击Build按钮,打开数据库连接属性编辑框,如图14.16所示。在该编辑框中,由于要连接SQL Server数据库,这里选择“Microsoft OLE DB Provider for SQL Server”项。3)单击“下一步”按钮,出现如图14.17所示的对话框。在该对话框中选择SQL Server服务器名,选择数据库的认证模式,以及数据库名。4)单击测试连接按钮,进行测试。,第十四章 数据库与开发工具的协同,在VB 中的数据库开发 1、使用数据控件 数据控件是Visual Basic的标准控件之一。在应用程序中,可以使用数据控件和各种数据绑定控件来显示和更新数据库中的信息。使用数据控件时,不用编写代码就能够创建简单的数据库应用程序。如果将数据控件与Visual Basic代码结合起来,则可以为数据处理提供高级的编程控件,从而设计出功能完备的数据库应用程序。在Visual Basic中,使用数据控件能够将窗体与数据库连接起来,只需要编写少量代码甚至不用编写代码就能够完成下列任务:1)与本地数据库或远程数据库连接。2)基于SQL查询打开指定的数据库表或定义记录集。3)将数据字段传送到各种绑定控件,并在这些控件中显示或更新字段值。4)根据绑定控件中显示的数据变化来添加新记录或更新数据库。5)捕获访问数据时出现的错误。6)关闭数据库。,第十四章 数据库与开发工具的协同,在VB 中的数据库开发 3、使用ADO数据控件 ADO数据控件使用ActiveX数据对象(ADO)来快速建立数据绑定控件与数据源之间的连接,其中,数据绑定控件可以是任何具有 DataSource属性的控件,数据提供者可以是任何符合OLE DB 规格的源。使用该控件可以快速创建记录集并通过数据绑定控件将数据提供给用户。,第十四章 数据库与开发工具的协同,在ASP中的数据库开发_ OLE DB用Connection数据对象连接数据源的步骤:1、打开打开SQL创建一个数据库表。2、创建连接对象的一个实例。方法:set 实例1=server.createobject(“ADODB.Connection”)3、用对象实例的open方法来打开与一个数据源的连接。方法:实例1.opendriver=“SQL server;database=pubs;server=”&服务器名&“;uid=”&用户名&“;pwd=”&密码 4、创建一个Command对象实例并和数据库连接,并操作数据库方法:set 实例2=server.createobject(“ADODB.command”)set 实例2.activeconnection=实例1,