我有这样的场景:我开发了一个C#应用程序,它通过OleDConnect(engine=Microsoft.Jet.OLEDB.4.0(连接到一个mdb文件(Access 2003(。这个mdb文件在同一目录中的另一个mdb文件中有一些链接表。在本地环境中一切都很好,即使我只连接主mdb文件,查询也会从链接表中检索数据。一个简化的模式可以是:
我在本地计算机中的应用程序-->C:\mydir\main.mdb-->C:\mydir\linked_tables.mdb
但是这个应用程序应该在本地网络的一些主机上工作。mdb文件存储在共享目录中的服务器中。好吧,当应用程序在主机上运行时,我将路径设置如下:
\\myserver\mydir\main.mdb
连接正常。当我启动一个试图从链接表中获取数据的查询时,就会出现这个问题。它试图在C:\mydir\linked_tables.mdb中查找链接表,但此路径在服务器上,而不是在主机中。
有没有办法告诉他:如果主mdb文件的路径是\\myserver\mydir\main.mdb,你必须(自动(获取\\myserver\mydir\linked_tables.mdb上的链接表?
感谢
我用另一个连接解决了问题。我的意思是:对于每个mdb文件,我使用不同的OleDConnection。
OleDbConnection MainConn = new OleDbConnection("\myservermydirmain.mdb");
OleDbConnection LinkedTablesConn = new OleDbConnection("\myservermydirlinked_tables.mdb");
不那么优雅,但它很管用。如果我必须对位于不同数据库中的表进行一些联接,我会使用一些通用集合对象来管理它们。