《《数据库编程接口》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《数据库编程接口》PPT课件.ppt(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第十四章第十四章 数据库编程接口数据库编程接口开放式数据库连接(开放式数据库连接(ODBCODBC)ODBC(Open Database Connectivity)是由Microsoft 开发和定义的一种访问数据库的应用程序接口,是一组用于访问不同构造的数据库的驱动程序,在数据库应用程序中,不需要考虑各类数据库的系统的构造细节,只要使用ODBC提供的驱动程序,通过将SQL语句发送到目标数据库中,就可以存取各类数据库中的数据。开放式数据库连接(开放式数据库连接(ODBC)1.ODBC组件 ODBC使用的分层体系结构包括:ODBC应用程序、驱动程序管理器、ODBC驱动程序和数据源。其结构课本所示。
2、2.配置ODBC数据源 在使用ODBC之前,必须安装一个ODBC驱动程序,然后再配置一个数据源。数据库驱动程序使用Data Source Name(DSN)来定位特定的ODBC兼容数据库,将信息从应用程序传递给数据库。典型情况下,DSN通常包含数据库配置、用户安全性和定位信息,并且可以获取Windows NT注册表项中或文本文件的表格。(1)ODBC数据源名 数据源名是为所要访问数据库指定的名字。通常情况下,如果要连接到一个数据库上,则必须发送一组参数来获得该连接。在每次要连接一个数据库时,反复地发送这些信息很麻烦,因为这些信息是永远不改变的。开放式数据库连接(开放式数据库连接(ODBC)(2
3、)SQL Server数据库系统DSN的配置方法下面通过一个实例,具体说明DSN的配置方法。【例14-1】建立一个名称为studentDBS的数据源,通过该数据源名称引用student_ms数据库。(1)在计算机中,通过“开始”“控制面板”“管理工具”“数据源(ODBC)”命令,打开ODBC数据源管理器。在该数据源管理器中选择“系统DSN”标签页,如图所示。开放式数据库连接(开放式数据库连接(ODBC)(2)单击“添加”按钮,打开“创建新数据源”对话框,在“选择您想为其安装数据源的驱动程序”的列表框中,显示系统中全部ODBC驱动程序,选择“SQL Server,如图所示。开放式数据库连接(开放
4、式数据库连接(ODBC)(3)单击“完成”按钮,系统自动弹出如下图所示的“创建到SQL Server的新数据源”设置界面,在数据源名称文本栏中输入内容:开放式数据库连接(开放式数据库连接(ODBC)(4)单击“下一步”按钮,SQL Server将确定应该如何验证登录ID的真伪。选择“使用网络登录ID的Windows NT验证”这种验证方式。如图所示,可以根据需要选择不同的选项。开放式数据库连接(开放式数据库连接(ODBC)(5)单击“下一步”按钮,SQL Server将确定默认的数据库等,如图所示。在该对话框中,可根据需要更改默认数据库的名称,这里输入“student _ms”,也可以添加“附
5、加数据库文件名”等。开放式数据库连接(开放式数据库连接(ODBC)(6)单击“下一步”按钮,出现对新数据源进行简单设置的对话框,如图所示。开放式数据库连接(开放式数据库连接(ODBC)(7)单击“完成”按钮,系统将会显示新创建的ODBC数据源的配置情况的描述,如图所示。开放式数据库连接(开放式数据库连接(ODBC)(8)单击“测试数据源”按钮,如果DSN创建成功,则“SQL Server ODBC 数据源测试”对话框将会显示测试成功的消息,如图所示。开放式数据库连接(开放式数据库连接(ODBC)(9)单击“确定”按钮,完成配置SQL Serve:数据源的操作。返回到“系统DSN”标签页中,则会
6、看到刚刚建立好的数据源。注意:在配置ODBC数据源以前,请确定数据库已建立完成,如果是配置SQL Server数据源,还得确定SQL Server处于运行状态。14.2使用使用ADO操作数据库中的数据操作数据库中的数据14.2.1 ActiveX14.2.1 ActiveX数据对象数据对象(ADO)(ADO)ADO包括Command,Connection等七个对象和一个动态的Properties集合,绝大部分的数据库访问任务都可以通过它们的组合来完成。ADO具体的七个对象为:Command:定义对数据源进行操作的命令;Connection:建立一个数据源的连接;Error:提供数据访问错误的细
7、节;Field:表示一般数据类型的字段;Parameter:表示Command对象的参数;Property:表示由数据源定义ADO对象的动态特性;Recordset:数据库命令结果集对象。14.2使用使用ADO操作数据库中的数据操作数据库中的数据通过ADO访问数据库通常经过下列步骤。创建数据库源名,即创建和配置ODBC数据源。创建数据库链接 如果要访问数据,必须首先创建与数据库的链接,其语法如下:Set Conn=Server CreateObject(ADOBD.CONNECTION)这条语句创建了链接对象Conn,然后打开该连接,其语法格式为:Conn.Open dsn_name,user
8、name,password 其中该连接的DSN名为“dsn_ name,”username”、“password”分别表示访问数据库的用户名和口令,为可选参数。在这里我们主要介绍Connection对象、Command对象和Recordset对象。14.2使用使用ADO操作数据库中的数据操作数据库中的数据14.2.2 Connection14.2.2 Connection对象对象 Connection Connection 对象表示数据源的唯一会话。在使用客户端/服务器数据库系统的情况下,该对象可以等价于到服务器的实际网络连接。ConnectionConnection 对象的某些集合、方法或属
9、性可能无效,这取决于提供者支持的功能。使用ConnectionConnection对象的集合、方法和属性可以执行下列操作:(1)在打开连接前使用ConnectionStringConnectionString,ConnectionTimeoutConnectionTimeout和ModeMode属性对连接进行配置。(2)使用DefaultDatabaseDefaultDatabase属性设置连接的默认数据库。(3)使用IsolationLevelIsolationLevel属性为在连接上打开的事务设置隔离级别。(4)使用ProviderProvider属性指定OLE DBOLE DB提供者。(
10、5)OpenOpen方法建立到数据源的物理连接。使用CloseClose方法将其切断。14.2使用使用ADO操作数据库中的数据操作数据库中的数据(6)ExecuteExecute方法执行对连接的命令,并使用CommandTimeoutCommandTimeout属性对执行进行配置。(7)可使用BeginTransBeginTrans,CommitTransCommitTrans和RollbackTransRollbackTrans方法以及AttributesAttributes属性管理打开的连接上的事务(如果提供者支持则包括嵌套的事务)。(8)使用ErrorsErrors集合检查数据源返回的错
11、误。(9)通过VersionVersion属性读取所使用的ADOADO执行版本。(10)使用OpenSchemaOpenSchema方法获取数据库纲要信息。ADO ADO连接数据库的两种方式。(1)通过数据源名称(DSNDSN)建立连接 先设置好DSNDSN后,通过ADOADO的ConnectionConnection对象实现数据库的连接。其语法格式如下:ConnectionString=DSNDSN=数据源名称;UIDUID=用户名;PWDPWD=口令”14.2使用使用ADO操作数据库中的数据操作数据库中的数据(2)直接使用数据库文件名称或数据源名称建立连接 直接使用数据库的文件名(比如Ac
12、cessAccess,ParadoxParadox或FoxProFoxPro的数据库文件)或者SQLServerSQLServer的数据库,也可建立数据库的连接。其语法格式如下:Connectionstring=“Provide=提供者名称;DSN=数据源名称;DRIVER=驱动程序名称;SERVER=服务器名称;DATABASE=数据库名称;UID=用户名;PWD=口令”1 1ConnectionConnection对象的属性对象的属性ConnectionConnection对象的属性如下:(1)Connection String属性 该属性是一个字符串。包含用来建立到数据源的连接的信息。A
13、DO支持的4个参数如下:Providr:指定连接所用的供应器的名称。14.2使用使用ADO操作数据库中的数据操作数据库中的数据 File Name:指定包含预设连接信息的特定供应器的文件名。Remote Provider:指定打开客户端连接(只适用于远程数据服务)时使用的供应器的名称。Remote Serve:指定打开客户端连接(只适用于远程数据服务)时使用的服务器的路径名。(2)CommandTimeout属性 该属性是一个Long型数据值。指示在终止尝试和产生错误之前执行命令期间需等待的秒数。默认值为30秒。14.2使用使用ADO操作数据库中的数据操作数据库中的数据(3)Attribute
14、s 属性 该属性是一个Long型数据值。设置或返回Connection对象的特性。并非所有的数据提供者都支持这种属性。它可取两个值:AdXactCommitRetaining:执行保留的提交,即通过自动调用CommitTrans启动新事务。并非所有的数据提供者都支持这种属性。AdXactCommitRetaining:执行保留的终止,即通过自动调用RollbackTrans启动新事务。并非所有的数据提供者都支持这种属性。(4)DefaultDatabaseDefaultDatabase属性该属性是一个字符串。包含ConnectionConnection对象的默认数据库名称。14.2使用使用AD
15、O操作数据库中的数据操作数据库中的数据(5)CursorLocation属性 该属性是一个Long型数据值。包含光标服务程序的默认位置。这个值将由使用该Connection对象的Recordset对象自动继承。(6)ConnectionTimeout属性 该属性是一个Long型数据值。指示在终止尝试和产生错误前建立连接期间所等待的秒数。默认值为30秒。(7)ModeMode属性 该属性是一个LongLong型数据值。指示可以获得的数据修改权限。(8)ProviderProvider属性 指示Connection对象提供者的名称。(9)StateState属性 该属性是一个Long型数据值。说明
16、Connection对象的当前状态。(10)VersionVersion属性 该属性是一个字符串。包含ADO目前的版本号。14.2使用使用ADO操作数据库中的数据操作数据库中的数据2 2 Connection Connection 对象的方法对象的方法(1)BeginTrans,CommitTrans,RollbackTrans方法 BeginTrans方法启动新事物,即表示一个操作的开始。CommitTrans方法保存所有更改并结束当前事务。RollbackTrans方法取消当前事务中所做的任何更改并结束事务。其语法格式如下:level=Connection对象.BeginTrans()Co
17、nnection对象.BeginTrans Connection对象.CommitTrans Connection对象.RollbackTrans (2)Cancel方法 该方法终止一项由Execute或Open方法启动的异步任务。14.2使用使用ADO操作数据库中的数据操作数据库中的数据 (3)Close方法 该方法用于关闭与数据提供者之间的连接。也可用于关闭任何处于打开状态的Recordset对象,并可以把任意一个Command对象的ActiveConnection属性设置成Nothing。(4)Execute方法 该方法执行指定的命令。返回一个Recordset对象。其语法格式如下:对于
18、不按行返回的命令字符串:Connection对象.Execute CommandText,RecordsAffected,Options 对于按行返回的命令字符串:Set Recordset=Connection对象.Execute(CommandText,RecordsAffected,Options)(5)Open方法 该方法打开到数据源的连接。其语法格式如下:Connection对象.Open ConnectionString,UserID,Password,Options14.2使用使用ADO操作数据库中的数据操作数据库中的数据 (6)OpenSchema方法 该方法从数据提供者处返回
19、数据库信息。其语法格式如下:Set Recordset=Connection对象.OpenSchema(QueryType,Criteria,SchemaID)3 3ConnectionConnection对象的事件对象的事件Connection对象的事件如下。(1)BeginTransComplete事件该事件在BeginTrans方法已经以异步方式运行完成时被触发执行。(2)CommitTransComplete事件该事件在CommitTrans方法己经以异步方式运行完成时被触发执行。(3)ConnectComplete事件该事件在连接开始后被触发执行。(4)Disconnect事件该事件
20、在连接结束后被触发执行。(5)ExecuteComplete事件该事件在Execute方法已经以异步方式运行完成时被触发执行。(6)InfoMessage事件该事件在当前连接收到警告信息时被触发执行。(7)RollbackTransComplete事件该事件在RollbackTrans方法己经以异步方式运行完成时被触发执行。(8)Wi1lConnect事件该事件在连接启动前被触发执行。(9)Wi1lExecute事件该事件在命令被执行前被触发执行。14.2.3 Command14.2.3 Command对象对象 Command对象用于向已建立的连接发出一条命令,通常是SQL语句,或者是数据库存
21、储过程。虽然Connection对象己经有Execute方法可以用于运行SQL语句,但是Command对象提供了更专门的运行方式和参数传递。14.2使用使用ADO操作数据库中的数据操作数据库中的数据 14.2使用使用ADO操作数据库中的数据操作数据库中的数据 1 1CommandCommand对象的属性对象的属性Command对象的属性如下。(1)ActiveConnection属性该属性是一个指示指定的Command对象当前所属的Connection对象。(2)CommandText属性该属性是一个String型值。包含SQL语句、存储过程或其他将被执行的提供者命令。(3)CommandTi
22、meout属性该属性是一个Long型数值。指示在终止尝试和产生错误之前执行命令期间需等待的时间(单位为秒)。默认值为30秒。(4)CommandType属性该属性是一个枚举型数值,(5)Name属性 该属性是一个String型数据,指出对象的名称。(6)Parameters属性 该属性是Parameters集合的一个应用对象。包含要传递给一个存储过程或一个参数化查询的参数。(7)Prepared属性 该属性是一个布尔型数值。当取True时,表示命令执行之前将被优化。(8)Properties属性 该属性是Properties集合的一个引用对象,包含关于Command对象的附加信息。(9)Sta
23、te属性 该属性是一个Long型数值。指出Command对象的当前状态。14.2使用使用ADO操作数据库中的数据操作数据库中的数据 2 2CommandCommand对象的方法对象的方法 Command对象的方法如下。(1)Cancel方法 (2)CreateParameter方法 (3)Execute方法3 3ParametersParameters集合和集合和ParameterParameter对象对象 (1 1)ParametersParameters集合集合 Parameters集合用在Command对象中,其作用是传递执行CommandText命令所需要的参数。其主要属性如下。Cou
24、nt属性 Item属性 Append方法 Delete方法 Refresh方法14.2使用使用ADO操作数据库中的数据操作数据库中的数据(2 2)Parameter Parameter对象对象一个Parameter对象是Parameters集合中的一个成员,其常用的属性如下:Name属性 Type属性 Direction属性 Size属性 Value属性14.2.4 Recordset 对象 在ADO的所有对象中,Recordset对象是使用最多的,它包含某个SQL查询返回的数据库记录集,以及记录集中的游标(Cursor),Recordset对象是一个跟数据库中的表相对应的结构,也可以理解成具
25、有字段(Fields)和字段值(Value)的对象,在这些记录中可以向前一条或向后一条移动。14.2使用使用ADO操作数据库中的数据操作数据库中的数据 1 1RecordsetRecordset对象的属性对象的属性 (1)AbsolutePageAbsolutePage属性 (2)AbsolutePosition AbsolutePosition属性 (3)ActiveCommand ActiveCommand属性 (4)ActiveConnectionActiveConnection属性 (5)BOFBOF和EOFEOF属性 2 2RecordsetRecordset对象的方法对象的方法Re
26、cordset对象的方法如下。(1)AddNew方法(2)Cancel方法(3)CancelBatch方法(4)CancelUpdate方法(5)Clone方法 14.2使用使用ADO操作数据库中的数据操作数据库中的数据 3Recordset对象的事件 (1)EndOfRecordset事件 (2)FetchComplete事件 (3)FetchProgress事件 (4)FieldChangeComplete事件 (5)MoveComplete事件 14.2使用使用ADO操作数据库中的数据操作数据库中的数据 ADO.NET由Microsoft ActiveX Data Objects(ADO
27、)改进而来,它提供平台互用和可收缩的数据访问功能。它虽然始于ADO,是一个改进了的ADO的新版本,但ADO.NET最终演变成了一个和ADO非常不同的技术。ADO.NET的应用重点是Internet和基于Web的应用程序。可以将ADO.NET对象模型划分为两个组件:DataSet和数据提供程序。DataSet是一个特殊的对象,它包含有一个或者多个表。数据提供程序则是由Connection、Command、DataReader和DataAdapter组合而成的。数据对象如下:(1)Command对象 用于定义要在DBMS上执行的操作,如添加、删除或者更新一条记录。在通常情况下,并不需要使用ADO.
28、NET创建一个Command对象,除非需要完成特殊的工作。在DataAdapter对象中,已经包含了查询、删除、插入和编辑记录所需的Command对象。(2)Connection对象 在DBMS和DataAdapter对象之间直接创建物理连接。Connection对象是数据提供程序的具体体现。它也包含有用于优化分布式应用程序环境下的连接的逻辑。(3)DataAdapter对象 将DBMS中的原始数据转换为DataSet可以接受的形式。DataAdapter完成所有的查询,将数据从一种格式转换为另外一种格式,它甚至可以完成表的映射。一个DataAdapter可以管理一个数据库关系。它的结果集可以
29、具有任意级别的复杂性,但必须是单个的结果集。DataAdapter也负责发送要求建立新连接的请求,并在获取数据之后终止连接。(4)DataReader对象提供到数据库的活动连接。但是,它只提供了读取数据库的方法。此外,DataReader的游标只能向前移动。如果你需要对本地表进行快速地检索,而不需要完成任何的更新操作,那么就应当使用这个对象。DataReader会阻塞DataAdapter,以及相关的连接对象,所以,在用完DataReade:对象之后立即将其关闭是非常重要的。(5)DataSet对象该对象是的核心,可以认为它是位于内存的数据库,它包含检索自一个或者多个DataAdapter的数据的本地备份。由于DataSet使用数据的本地备份,所以它到数据库的连接不是活动的。用户对数据库的本地备份进行所有的修改,然后应用程序会发出一个更新请求(可以以批处理模式进行更新,或者也可以按照一次一条记录的方式进行更新)。DataSet会同时保留有关每个修改过的行的原始数据和当前状态的信息。如果它所保留的行的原始数据与数据库中该行的数据相匹配,DataAdapter就会按照要求进行更新。否则,DataAdapter就会返回一个错误,应用程序必须对这个错误进行处理。
限制150内