| 发表于:2007-03-23 12:08:084楼 得分:30 |
在sql server中提供了两个函数可以根据各种类型数据库的ole db provider打开并操作这些数据库,这两个函数是opendatasource和openrowset。它们的功能基本上相同,不同之处主要有两点。 (1) 调用方式不同。 opendatasource的参数有两个,分别是ole db provider和连接字符串。使用opendatasource只相当于引用数据库或者是服务(对于sql server、oracle等数据库来说)。要想引用其中的数据表或视图,必须在opendatasource(...)后进行引用。 在sql server中通过opendatasource查询access数据库abc.mdb中的table1表 select * from opendatasource( 'microsoft.jet.oledb.4.0 ', 'provider=microsoft.jet.oledb.4.0;data source=abc.mdb;persist security info=false ')... table1 openrowset相当于一个记录集,可以将直接当成一个表或视图使用。 在sql server中通过openrowsete查询access数据库abc.mdb中的table1表 select * from openrowset( 'microsoft.jet.oledb.4.0 ', 'abc.mdb '; 'admin '; ' ', 'select * from table1 ') (2) 灵活度不同。 opendatasource只能打开相应数据库中的表或视图,如果需要过滤的话,只能在sql server中进行处理。而openrowset可以在打开数据库的同时对其进行过滤,如上面的例子,在openrowset中可以使用select * from table1对abc.mdb中的数据表进行查询,而opendatasource只能引用table1,而无法查询table1。因此,openrowset比较opendatasource更加灵活。 | | |
|