ms-access:双链表

Posted

技术标签:

【中文标题】ms-access:双链表【英文标题】:ms-access: double linked table 【发布时间】:2010-09-22 21:24:25 【问题描述】:

我有一个 ms-access 后端

我有一群用户使用他们自己的个人前端连接到后端

我正在将后端更改为 sql server,并且不想重新分发前端。我是否可以只设置它以便 ms-access 后端指向 sql-server?

请注意,我只需要一张桌子。它将是 access-frontend-->ms-access backend-->sql server table

【问题讨论】:

我认为不可能链接到链接。为什么不使用 Tony Toews 的 Auto FE Updater 将更新的 FE 分发给您的用户? 您可以导入链接。也就是说,您可以删除现有链接并从另一个数据库中导入 ODBC 链接。 如果您“不想重新分配前端”并且您现有的前端还没有内置代码来更改/重新创建链接表,那么您没有追索权 - 您可以不要做什么你做什么。这里没有什么神奇之处。 【参考方案1】:

我创建了一个数据库 BE.mdb,其中包含一个表 Books。

接下来我创建了另一个数据库 FE.mdb,其中包含指向 BE.mdb 中 Books 表的链接

然后,我打开 BE.mdb 并将 Books 替换为 PostGreSQL 数据库中表的 ODBC 链接。

该描述是否符合您想要完成的任务?

如果是这样,我看不出它是如何工作的,因为当我再次打开 FE.mdb 并尝试打开 Books 链接表时,Access 会抱怨“Microsoft Jet 数据库引擎找不到输入表或查询'Books' ”。

我认为 Access 的数据库引擎正在寻找一个名为 Books 的本机 Jet 表(或查询)......这是创建链接时存在的。但是,Books 链接目标已从 Jet 表更改为 ODBC 链接,因此 Jet 数据库引擎无法找到它要查找的内容。

我能找到使其工作的唯一方法是更改​​ FE.mdb 中的链接定义......但我认为这是你想要避免的。

【讨论】:

只要名称相同(链接到 SQL Server 表会添加 dbo,)访问应该没问题,但您必须更新链接以指向新的源位置.【参考方案2】:

是的。创建与 SQL Server 的 ODBC 连接的链接表。 然后,您的每个客户端都需要将相同的 ODBC 连接添加到他们的 PC。

【讨论】:

@beth:请重新阅读问题。问题是访问后端可以有 ODBC 是的,Access mdb 可以包含通过 ODBC 链接到 SQL Server 数据库上的表的表。如果需要,您可以在批处理中使用连接的 SQL Server 表中的数据填充现有的 Access 表,而不必向客户端添加 ODBC 连接。 @jenny,我读过它,但不像你那样理解它。请添加更多解释性信息,包括您认为我们正在回答的问题以及您的问题有何不同。 @beth 我认为 jenny 有一个 FE.mdb,其中包含指向 BE.mdb 中 Jet 表的链接。然后 jenny 想用指向 SQL Server 的链接替换 ​​BE.mdb 表......并让 FE.mdb 链接在不修改 FE.mdb 的情况下可用。你是说这可能吗? @jenny,它看起来和我最近几次读的一样。你编辑过吗?我怎么可能对您的问题有更多的了解?您的问题太不清楚,我无法以有用的方式回答,而且现在,我没有兴趣帮助您。你不值得。【参考方案3】:

有可能,我自己做了,但出于不同的原因。这是一个权宜之计,一个组中一半的应用程序已迁移,一半的应用程序在几个月内保持访问状态,但我们仍然需要运行跨越两个应用程序的报告。

我会说使用这种方法会显着影响性能,我会赞同使用优秀的 access auto FE updater 来缓解未来此类问题的建议

当然,HansUp,这可能有点极端,但这是我的情况。

我有一组应用程序的许多后端 MDB 文件,我需要将所有这些信息保存在一个数据库中,这样我就可以使用需要在一个“连接”下的所有表的业务对象进行报告(在在这种情况下,连接是到这个 MDB,它只是将表链接到真正的后端)。

其中一些应用程序先于其他应用程序迁移到 SQL Server,包括一些常见的共享表。在某些情况下,链会转到前端 -> 后端 -> SQL 服务器。它确实对性能造成了影响,现在迁移已完全完成,我很高兴。

哦,我不使用 DSN 链接我使用无 DSN 设置和一些代码将表重新指向不同的服务以进行测试/生产

【讨论】:

你能描述一下你用于“双重链接”的方法吗?谢谢。 谢谢,凯文,但我仍然缺少一些东西。当我打开 FE.mdb 以尝试创建指向 BE.mdb 对象的链接时,Access 提供的唯一选择是本机 Jet 表。 BE.mdb 中存在的链接均不可用。 我也尝试了 Transferdatabase 方法,但找不到代表现有链接的“数据库类型”选项。所以我想问一下您使用什么方法来创建指向另一个数据库中的链接表的链接。

以上是关于ms-access:双链表的主要内容,如果未能解决你的问题,请参考以下文章

数据结构之双链表

双链表和循环链表

双链表的结构和插入节点

算法开启小码农双链表血脉

数据结构-编程实现一个双链表的建立,双链表的打印,双链表的测长

Ocaml双链表:从双链表中删除满足条件的节点