网络数据库讲稿(14)
3/26/2013 SQL Server客户端开发与编程
一、引言
1.编程模式:C/S模式和B/S模式。
2.客户端编程语言:ASP,VB,VC,VFP,PB,Delphi,Acce,ASP,JSP等,都可访问SQL数据库。 3.可访问多种数据库。
二、数据库编程接口
1.ODBC ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。
ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由ODBC驱动程序完成。也就是说,不论是FoxPro、Acce , MYSQL还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。
2.OLE DB OLE DB (Object Linking and Embedding,对象连接与嵌入),简称OLE技术;DB(data base)。
OLE DB(OLEDB)是微软的战略性的通向不同的数据源的低级应用程序接口。OLE DB不仅包括ODBC的结构化查询语言(SQL)能力,还具有面向其他非SQL数据类型的通路。作为微软的组件对象模型(COM)的一种设计,OLE DB是一组读写数据的方法。
3.ADO ADO (ActiveX Data Objects) 是微软公司的一个用于存取数据源的COM组件。它提供了编程语言和统一数据访问方式OLE DB的一个桥梁。允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,而只用关心到数据库的连接。
ADO是一种面向对象的编程接口,是一个能够访问不同数据库的统一接口,它在OLE DB中提供了一种“桥”程序,这种程序能够提供对数据库的连接。 开发人员在使用ADO时,其实就是在使用OLE DB,不过OLE DB更加接近底层。
4.三种接口之间的关系
ODBC是Microsoft引进的一种早期数据库接口技术。它实际上是ADO的前身。早期的数据库连接是非常困难的,每个数据库的格式都不一样,开发者得对他们所开发的每种数据库的底层API有深刻的了解, 因此,能处理各种各样数据库的通用的API就应运而生了,也就是现在的ODBC(Open Database Connectivity)。ODBC是人们在创建通用API的早期产物,有许多种数据库遵从了这种标准,被称为ODBC兼容的数据库。
46
网络数据库讲稿(14)
3/26/2013 OLEDB位于ODBC层与应用程序之间。 在一些应用中,例如ASP、Delphi,ADO是位于OLEDB之上的“应用程序”。ADO调用先被送到OLEDB,然后再交由ODBC处理。
三、常用ADO对象方法和属性
1.Connection对象
P214, P220 2.Command对象
P214, P227 3.Recordset对象
P215, P220
四、用其它语言访问SQL数据库
ASP,VB,VC,VFP,PB,Delphi,Acce,ASP,JSP等,都可访问SQL数据库。
以下仅介绍ASP、VFP、Delphi。 五.ASP访问SQL数据库
1.常用ASP内建对象 Request Response Application Seion Server 2.建立访问环境
可使用OLE DB或ODBC。
(1)建立使用OLE DB的访问环境
需要在“程序/管理工具/Internet服务器管理”中,右击“默认Web站点”,再单击“属性”,然后设置“主目录”和“文档”。(如P218图6.8) (2)建立使用ODBC数据源的环境
需要在“程序/管理工具/数据源(ODBC)”中配置,在DNS配置框中选“使用用户输入登录ID和密码的SQL Server验证”。P213 3.连接到数据源 P214 在ASP中引用ADO对象,要加前缀ADODB。 (1)创建一个ADO Connection对象。 例如:
Set cn=Server.CreateObject(“ADODB.Connection”) (2)连接到数据源
①使用OLE DB接口
首先指定OLD DB提供者 例:
cn.Provider=”sqloledb” 再连接到数据源 例:
cn.Open “Server=zyxy; Database=教学管理; uid=sa; pwd=‟‟”
47
网络数据库讲稿(14)
3/26/2013 ②使用ODBC数据源 例:
cn.Open “dsn=jxgl; uid=sa; pwd=‟‟”
„jxgl是2(2)中建立的数据源
4.执行访问数据源的命令并创建结果集对象
例:
set rs=cn.Execute(“select * from 学生 where 性别=‟男‟”) 5.关闭连接
例: rs.close cn.close 6.应用举例
例6.1
P221 用cn.Excute创建的Recordset对象,在结果集中只能用MoveNext逐步向尾部单方向移动记录指针。还有另一种方法创建Recordset对象:P222L18。用此种方法创建的Recordset对象的Open方法有四个参数。
六、在客户端用VFP访问网络数据库SQL Server上的数据库 (一)在客户端设置ODBC: 在本地机上:
开始/设置/控制面板/管理工具/数据源(ODBC) 在此添加数据源,命名数据源名(假定命名为jxgl),填写服务器名,使用SQL Server验证,更改默认的数据库。
附:可继续完成以下设置: 在客户端VFP环境下打开项目管理器(项目中至少应有一个数据库),展开数据库,选择连接,单击新建按钮,打开连接设计器对话框,填写有关内容(也可以打开一个数据库,用create connection命令打开连接设计器对话框),最后在保存对话框输入连接名(假定为LJ)。该连接还可使用以下命令建立:
CREATE CONNECTION DATASOURCE USERID PASSWORD DATABASE 例:CREATE CONNECTION LJ DATASOURCE “jxgl” USERID “sa” PASSWORD “”
DATABASE “教学管理”
(二)在客户端VFP中使用SPT(SQL Pa Through)技术
1.连接数据源
=SQLConnect(,,) 例如:
dh=SQLCONNECT(“LJ”,”sa”,””) 也可使用
=SQLStringConnect(“dsn=; uid=;
pwd=”) 例如
dh=SQLStringConnect(“dsn=LJ; uid=sa; pwd=”) 如果连接成功,dh返回正整数句柄,失败返回-1。
附:也可以使用命令 =SQLConnect() 例:DH=SQLConnect(“LJ”) 2.执行SQL命令
SQLEXEC(,)
48
网络数据库讲稿(14)
3/26/2013 在查询命令中添加READWRITE关键词,可得到可读写的临时表。 可用SQLCOMMIT(DH)、SQLROLLBACK(DH)提交或回滚事务。 3.断开连接
SQLDISCONNECT(DH)
七、Delphi访问SQL数据库
1.ADO控件
P304 2.使用TADODataSet访问SQL数据库
49