您的位置:程序门 -> ms-sql server -> 基础类



sql中 打开access数据库出错当(opendatasource)


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


sql中 打开access数据库出错当(opendatasource)[已结贴,结贴人:qscandwh]
发表于:2007-03-22 14:38:26 楼主
在sql中打开access数据库当数据文件小时没问题,当access文件大时出错
发表于:2007-03-22 14:41:291楼 得分:20

在sql   server中,可以使用openrowset或   opendatasource访问access。

所以,如果允许,楼主可以连接到sql   server,然后,用openrowset或   opendatasource关联access的表。


示例:


select   a.*
from   openrowset( 'microsoft.jet.oledb.4.0 ', 'd:\test.mdb '; 'admin '; '密码 ',   表名)     as   a
发表于:2007-03-22 14:44:422楼 得分:20
楼上说得没错,可以用opendatasource函数、openrowset   函数来访问
发表于:2007-03-23 12:01:343楼 得分:0
opendatasource
openrowset  
用法差不多吧,
那个效率高呀
发表于: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更加灵活。  
发表于:2007-03-26 14:03:365楼 得分:0
我用的是opendatasource   在查询分析器中没问题,放到程序里面就,超时,我改连接的时间也没用?


快速检索

最新资讯
热门点击