关于openrowset,opendatasource导入局域网客户端Access数据库的问题
跋涉者 2003-10-16 10:03:27 大家好:我现在遇到以下一个问题:
现有一sql服务器,假设其名称为AA,现在需要写一个客户端程序,将客户端的Access数据库批量导入该AA中.这看起来不是一个什么难的问题.最开始我的思路是:
用VB编写,建立两个Adodb.Conn ,一个连接Access,另外一个连接Sql,然后用RecordSet把数据先从Access读出来,然后逐条写到Sql中去,这样导入一个表需要几分钟表时间,但由于该ACCESS数据量过大,且客户有速度上的要求.所以,这个办法被踢开,我开始找其它的办法.
然后考虑用OpenDataSource,OpenDataRow来实现,当时在我的计算机上调试的,程序写好了,运行正常.导入速度也很快.其中用到的导入语句大致如下:
mysql = "INSERT INTO TMP_TB(ca, cb, cc, cd, ce, cf, cg, ch, ci,cq ) (SELECT , cb, cc, cd, ce, cf, cg, ch, ci,cq FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','" & Trim(rsImport!pathname) & "'; 'admin'; ''," & Trim(rsImport("CurrentTableName")) & "))"
' 其中Trim(rsImport!pathname) 和 Trim(rsImport("CurrentTableName")) 分别代表旧表的路径和新表名称
但是这当中有个问题,就是如果所有的Access数据库都放在服务器上,并且在服务器上执行程序,就没有问题.可是,现在要求是要在客户端,比如另外一台计算机BB上,这个时候,Access数据库放在BB上,程序在BB上运行,可是上面的语句在执行的时候却是在服务器上去查找路径,当然查找不到了,服务器端又没有权限访问客户端硬盘上数据的权限,这可怎么办呢?
请大家帮忙,今晚在线等,多谢,讨论有分..............