WEB开发网
开发学院数据库MSSQL Server UDA综述 阅读

UDA综述

 2007-11-11 04:09:58 来源:WEB开发网   
核心提示: 在RDS2.0中有了新的内容,那就是开发人员可以直接写他们自己的服务器端的商业逻辑,UDA综述(2),同时能够使他们的客户端直接和远程OLE DB提供者相连而不需要通过商业对象层, 这样,目录服务,文档存储等等)2.能够通过URL直接和对象进行绑定 3.增强了和xml(标准化越来越近了)的集成能力,Web服务器

  在RDS2.0中有了新的内容,那就是开发人员可以直接写他们自己的服务器端的商业逻辑,同时能够使他们的客户端直接和远程OLE DB提供者相连而不需要通过商业对象层。 这样,Web服务器管理员能够直接管理从RDS客户端到来的要求和OLE DB数据源联系的请求、并且能够通过定制的句柄(handler)进行商业逻辑检查,所谓商业逻辑检查包括数据有效性检查等等,它们能够通过RDS被加到应用程序上去。服务器管理员可以很容易的编写他们自己的定制的处理逻辑,为了帮助管理员使用这个定制的特征,一个简单的处理句柄(handler)已经被加到了所有基于SQL的OLE DB提供者上。句柄的行为是通过安装在服务器上的.ini文件进行控制的。

  当RDS被用来以客户端应用程序和远程OLE DB提供者之间直接通讯的模式操作的时候,WEB服务器上的一个RDS DataFactroy对象用来处理客户端请求。DataFactory对象实现一个称为Query的方法来打开一个新的记录集,它也能够通过SubmitChanges方法改变记录集。

  在RDS2.0中,DataFactory方法能够通过编写一个客户端对象的方法进行增强,它实现了一个特定的称为IDataFactoryHandler的接口,开发人员可以建立他们自己的定制的对象来实现IDataFactoryHandler接口。然后这些对象能够显式的被DataFactory方法调用来扩展缺省的功能。具体的示例代码如下:

  AdorRs.ActiveConnection =

  "Handler=MyHandler.obj;Provider=MS Remote;Remote Server=http://www.ttmis.com;DSN=TTMIS_CW;"

  AdorRs.Source = "Select * from Products"

  AdorRs.Open

在上面的代码段中,开发人员可以指定在服务器端的缺省句柄对象为MyHandler.obj。当这段代码被执行的时候,服务器缺省的调用DataFactory对象。但是,在DataFactory对象的方法Query打开一个记录集的时候,它通过调用接口IDataFactoryHandler来创建MyHandler.obj对象,在这个接口中,它调用GetRecordset或者是Reconnect方法,传递连接和命令字符串。在句柄的客户代码部分能够打开一个ADO连接或者是记录集并把它传递给对象DataFactory,这样用户就可以使用句柄内部的ADO事件来定制连接或者是记录集对象

  当客户端代码使用RDS的时候,如果没有指定句柄的话,DataFactory执行客户查询,DataFactory使用ADO和OLE DB提供者进行交互。当客户端代码指定了句柄的时候,客户端请求仍然由DataFactory对象执行,然后DataFactory对象轮流使用指定的句柄来处理客户的请求。

  一个RDS服务器的客户端句柄是一个COM自动化对象用来实现IDataFactoryHandler接口,它必须由在注册表中注册的ProgID,注册表的位置如下:

  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DataFactory\HandlerInfo\safehandlerlist

客户端代码在打开一个ADO记录集的时候,必须在连接字符串中包含标签'handler=;'以便能够使用指定的句柄。如果使用RDS.Datacontrol来打开记录集的话,句柄属性必须设置为句柄的ProgID。服务器管理员可以强制RDS服务器使用句柄,当然需要在注册表的如下位置,插入HandlerRequired=1

  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DataFactory\HandlerInfo

当该注册项被插入后,所有不包括'handler=;'的RDS请求都会被拒绝。同时必须指向一个有效的定制的句柄对象,这些对象在注册表的safehandlerlist处进行注册,具体位置和上面一样。

  为了保证数据通讯的安全性,MDAC2.0安装了一个缺省的定制的句柄对象-MSDFMAP.HANDLER。这个句柄的行为是由.ini文件驱动的,称为Msdfmap.ini。该文件被安装在Windows目录下,服务器管理员能够配置该.ini文件,用来定制MSDFMAP.HANDLER的行为。需要注意的是,管理员可以配置多个.ini文件,如果使用一个不同的.ini文件的话,在客户端的连接字符串必须为如下的形式:

  RDSCONTROL.Handler = "MSDFMAP.Handler,myOtherNameSpace.ini"

或者也可以为:

  Rs.open "SQL命令", "Provider=MS Remote;Remote Server=http://MyWebServerSite;

  Handler=MSDFMAP.Handler,myOtherNameSpace.ini;Data Source=CustomerDatabase"

最后需要说明的是,用户可以根据自己的需要定制句柄,句柄包含有两个方法:

  GetRecordset:该方法产生一个新的ADO记录集,该记录集必须用 adLockBatchOptimistic的加锁类型打开,连接和记录集对象必须把游标位置设置为 adUseClientBatch。

  Reconnect:该函数用来产生一个新的ADO连接对象,并且把ADO记录对象attach到它上面去。连接对象的游标位置必须为adUseClientBatch。

  MSDASDK新版本特点介绍

  1 OLE DB和ADO可以被用来支持半结构化的数据,主要包括:

   1.层次结构的数据存储(比如文件系统,邮件系统,目录服务,文档存储等等)

   2.能够通过URL直接和对象进行绑定

   3.增强了和xml(标准化越来越近了)的集成能力,主要包括:

     1.把层次化的记录转换成xml(标准化越来越近了)格式形式保存

     2.能够把记录集保存到一个流(stream)中而不仅仅是磁盘文件中

     3.和ASP的Response和Request对象相集成,保存ADO记录集

  2.增强了ADO错误报告能力

  3. ADO MD用户能够提取通过模式对象而不需要初始化和遍历CubeDe

上一页  1 2 

Tags:UDA 综述

编辑录入:coldstar [复制链接] [打 印]
赞助商链接