我编写了一个通过无线网络运行的小型(8-10 台笔记本电脑)销售点系统,作为从网络共享上的 Access MDB 读取/写入的 HTA。
我需要使用 ADO - GetString 并且用户花名册不适用于 DAO。
我还需要使用 DAO - MDB 无法使用 ADO 进行压缩。

我知道:
1)如果数据库后端不是Access MDB,我应该使用ADO。
2)如果后端是MDB,但我想在某个时候升级到SQL Server,我应该使用ADO。
3) 在 Access 应用程序或任何其他 VBA/VB 应用程序中,我应该使用 DAO,因为 ADO 必须经过 Jet OLE DB Provider 的转换层,而 DAO 更直接。
4) VBScript/JScript 允许我使用 DAO 或 ADO。

两部分问题如下:
1)在这个软件环境(HTA/脚本)中,使用ADO比DAO更好吗?
2) 由于 HTA 通过无线网络进行读/写,ADO 是否具有任何优势?

有帮助吗?

解决方案

  1. 如果您需要 DAO 的唯一原因是压缩数据库,那么您可以使用 DAO 来实现此目的,并使用 ADO 来实现其他目的。您不限于仅使用 ADO 或 DAO。

  2. 使用 ADO 的最大好处是,时机成熟时可以更轻松地迁移到 SQL Server Express。您应该尽早这样做,因为 SQL Server Express 提供了 MSAccess 数据库的所有优点,而没有缺点。SQL Server Express 是免费的,它可以轻松处理您提议的系统大小。

在多用户环境中,访问数据库很容易损坏,尤其是在涉及无线网络时。如果您担心失去在 MSAccess 中工作的好处,您仍然可以使用链接表连接到 SQL Server,并以这种方式使用 SQL Server Express 数据库。

其他提示

您还可以使用JRO来压缩您的MDB文件。这将包含在任何最新版本的MDAC,默认情况下,XP及更高版本的系统上安装。访问的没有安装是必要的。

要回答您的具体问题:

1)我会选择ADO只是因为它是更多的电流,而相同的API可以在其他类型的脚本,如LDAP / ActiveDirectory的接入一起使用,读取文件系统文件夹,读MAPI邮件,并与其他类型的工作的半结构化的文本文件等固定宽度的文本和CSV。这不是专门针对HTA编程环境更好,但它也许是更好地为您的学习更广泛应用的API。我也认为这是一个更简单的API一起工作,但我开始用它,只是后来在一些较旧的DAO项目的工作。

2)ADO提供一个可能的益处是,断开连接的记录,其可以是有优势的,或至少在建议您的无线网络设置一些架构的替代品。您打开一个记录,然后断开,所以你仍然可以与内存中的数据的工作,但没有留下一个数据库连接开放。然后在以后的时间,你可以重新连接并更新数据库。此外,您还可以通过管理表作为本地XML或ADTG文件在完全断开的工作作风。

您可能鞋拔子DAO到从VBScript工作但是这是一个奇怪的配对。 ADO使得在一般最有意义。


ADO的另一个优点是它支持通过DCOM或HTTP RDS。这可以被用来克服许多通过文件共享,使用喷气多边开发银行的局限性,如腐败不可靠的网络和客户端可能会导致。它还减少交通量通过网络,从而提高性能。此外,它还提供了一个中间层中的业务对象可以“活的”,所有这一切都可以通过COM +,其中可介导的适用。

当然,你不必再使用一个简单的P2P网络和文件共享承载数据库的选项。 RDS需要一个服务器来托管进程,运行Jet引擎,它不再需要每个客户端系统上运行。这意味着你可以使用在服务器上运行,卸载多个客户端处理和网络流量的Jet存储过程。虽然没有复杂的T-SQL或其他替代品,这ADO / Jet 4.0的OLE DB提供独家技术提供不能使用DAO可以了实实在在的好处。

RDS可掩盖多使用断开连接的记录,从而简化了客户端代码的过程的。它使用ADTG罩,将其开发和优化的用于这个目的下。

然而,使用RDS需要比简单的文件共享更多的基础设施和专业知识。您不妨看看到SQL Server的低端版本。


在一般我建议使用 Jetcomp.exe在实用程序来压缩和修复,在DAO或JRO。它提供了许多优点。

如果你能负担得起使用与访问,而不是一个更高性能的平台,一个HTA应用程序,我会说你应该为你的最简单的API去。瓶颈永远不会在你的情况下,数据库访问抽象。尽管如此,DAO是真的老了。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top