Winforms 应用程序中的 SQL CE 与 Jet

Posted

技术标签:

【中文标题】Winforms 应用程序中的 SQL CE 与 Jet【英文标题】:SQL CE vs Jet in winforms application 【发布时间】:2010-10-12 18:30:07 【问题描述】:

我有一个将 JET 用于数据库的旧式桌面应用程序。应用程序需要能够从网络驱动器访问数据库文件。我应该将数据访问迁移到 SQL CE(或 SQL Lite),还是留在 JET 中? 最大表格行大小约为 50000。

【问题讨论】:

【参考方案1】:

在这种情况下,您绝对不应该使用 SQL CE。它不允许来自网络共享的多个连接。有关详细信息以及避免损坏的方法,请参阅this page。

SQLite 可以在这种情况下工作。否则,您始终可以将其保留为当前形式,并使用Office 2010 Database Engine。另一种选择是使用 SQL Server Express。

【讨论】:

我会继续使用 Jet 4.0/DAO 3.6,因为它随操作系统一起提供。 Office 2007/2010 数据库引擎是另一种依赖项和要安装的项目。 @Tony:除非你需要 64 位兼容性,否则 Jet 就不是那么好...... 64 位 Windows 如何管理 Active Directory?如果它没有 64 位版本的 Jet,它用什么?还是 64 位 Windows 上的 AD 是 32 位? @David-W-Fenton:不知道他们在用什么——虽然我怀疑他们可能只是把它作为一个 32 位应用程序...... 嗯,64 位 Access 2010 显然适用于 Jet MDB,因此必须有某种方法通过 64 位使用 Jet 4 文件。我并不完全清楚 A2007/A2010 是否真的使用 ACE 来访问 MDB,或者它们是否切换并使用旧版 Jet 4(我对此怀疑的原因是在 A2007/A2010 中创建的 MDB 仍然使用 DAO 3.6 参考-- 是的,这与 db 引擎版本无关,但让我想知道...),但我最初认为 ACE 正在处理与 Jet 4 文件的交互,现在想知道它。【参考方案2】:

50K 记录对于 Jet 来说是相当容易的,只要正确索引排序和标准字段。此外,Access 世界中的一条规则是,如果多个用户正在使用数据库文件,则始终保持连接打开以提高性能。我会假设这条规则在其他环境中也适用。

如果您有超过 15-25 个用户更新数据,那么我建议您使用 SQL Server Express 等产品。当然,如果您继续使用 Jet 4.0/DAO 3.6,它自 Windows 2000 起就内置于 Windows 操作系统中,因此不需要任何依赖项。 SQL Server Express 需要在某处的 PC 上安装。

【讨论】:

以上是关于Winforms 应用程序中的 SQL CE 与 Jet的主要内容,如果未能解决你的问题,请参考以下文章

具有类型化数据集和 Sql Server CE 的事务

如何解释此 SQL Server CE 行为 - 不更新

保存选择查询中的值,然后在更新查询 SQL Server CE 中使用它们

通过 Web 服务将 SQL Server CE 与 SQL Server 2005 同步

安装后无法访问 SQL Server CE DB

SQL Server CE 3.5 SP1 存储过程