我需要一个用于单用户只读访问的数据存储。我需要多个表,但不相关。我还需要做两列索引。看来 Jet 是个不错的选择。前端将是 VB 或 C#。数据不是用户输入的数据,而是关于用户和外部文件的元数据。Jet 的部署问题是什么 - 它是否内置于从 xp 开始的所有 Windows 操作系统版本中?我计划在资源文件中包含 Access 数据库。
6 回答
MS Jet 4.0/DAO 3.6 是操作系统的一部分,适用于 Windows 2000、XP、Vista 和 Windows 7。它们由 Windows Update 进行更新,并根据需要应用安全补丁。
除了在资源文件中包含 MDB 文件之外,如果它不存在,您也可以构建它。请参阅我网站上的TempTables.MDB 页面,该页面说明了如何在您的应用程序中使用临时 MDB。
您还可以使用Compare'Em 实用程序 在升级应用程序时保持数据库文件表、字段、索引和关系的更新。
请注意,目前操作系统中不包含 64 位版本的 JET 引擎!
下一个 Office 将提供 64 位引擎。可以从 Microsoft 下载中下载 Beta
Microsoft Access .mdb 驱动程序包含在 XP 及更高版本中。它是MDAC的一部分。
顺便说一句,还有其他一些选择。查看SQL Compact、VistaDB和SQLite。
如果你谷歌这个,你会发现 Jet 不再是 Windows 的标准部分,并且已被弃用。现在作为 Office 2010 一部分的 ACE 驱动程序确实支持 MDB 文件,尽管 Microsoft 强调它不是 Jet 的替代品。他们希望您改用 SQL Express。
您可以单独下载并安装 ACE 驱动程序,但请注意,您不能在同一台机器上安装 32 位和 64 位版本的驱动程序。如果 oyu 安装了 Office 2007 32 位并且您尝试安装 64 位 ACE 引擎,它会为您提供这个大对话框,告诉您必须先卸载 Office 2007。
我们切换到 sqlite。没有更多这样的麻烦。
使用 CSV ODBC 驱动程序时要小心,我发现了一个错误。
如果将 MS-Excel 文件导出为 CSV 格式,并且导出的文本字符串中包含双引号或逗号,则会得到双引号文本字符串。
例子:
"Hello World", This is Eric.
出口为
"""Hello World"", This is Eric."
但是,如果您将此数据读入启用 ODBC 的程序,然后将数据导出回来,无论文本是否嵌入了双引号和/或逗号,CSV ODBC 驱动程序都会在文本周围加上双引号。
最大的问题是您无法对从 MS-Excel 导出的原始文件以及使用 CSV 驱动程序从启用 ODBC 的程序中新创建的文件(读入然后输出)运行 FILE COMPARE。由于数据不相等,您将始终得到 FAILED FILE COMPARE(校验和)。这真的搞砸了 QA/QC。
此外,ODBC 管理器中存在另一个巨大的错误,您无法编辑文本驱动程序识别/支持的文件。
如果您编辑该条目,中文字符将存储在 Windows 注册表中。但这是一种通过 ODBC 解析 CSV 数据的好方法,而不必编写自己的代码来去除多余的双引号。