连接到具有链接表的远程Access 2003数据库

时间:2013-11-05 08:54:10

标签: c# ms-access-2003 linked-tables

我有这样的场景:我开发了一个C#应用程序,它通过OleDBConnection(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上的链表? / p>

谢谢

1 个答案:

答案 0 :(得分:0)

我用另一个连接解决了。我的意思是:对于每个mdb文件,我使用不同的OleDBConnection。

OleDbConnection MainConn = new OleDbConnection("\\myserver\mydir\main.mdb");
OleDbConnection LinkedTablesConn = new OleDbConnection("\\myserver\mydir\linked_tables.mdb");

不太优雅,但它有效。如果我必须连接位于不同数据库中的表,我会使用一些通用集合对象来管理它们。