我需要一个用于单用户只读访问的数据存储。我需要多个表,但不相关。我还需要进行双列索引。看起来像Jet是一个不错的选择。前端将是VB或C#。数据不是用户输入的数据,而是有关用户和外部文件的元数据。 Jet -is的部署问题是从xp开始构建到所有Windows操作系统版本中的?我计划在资源文件中包含Access数据库。
答案 0 :(得分:4)
MS Jet 4.0 / DAO 3.6是操作系统的一部分,位于Windows 2000,XP,Vista和Windows 7中。它们由Windows Update更新,并根据需要应用安全补丁。
除了将MDB文件包含在资源文件中之外,如果它不存在,您可以构建它。请参阅我的网站上的TempTables.MDB page,其中说明了如何在您的应用中使用临时MDB。
您还可以使用Compare'Em utility 在升级应用程序时保持数据库文件表,字段,索引和关系的更新。
答案 1 :(得分:2)
请参阅why-should-i-use-sqlite-over-a-jet-database,然后尝试两者。
答案 2 :(得分:0)
Microsoft Access .mdb驱动程序包含在XP及更高版本中。这是MDAC的一部分。
顺便提一下,还有其他一些选择。查看SQL Compact,VistaDB和SQLite。
答案 3 :(得分:0)
请注意,目前操作系统中不包含64位版本的JET引擎!
下一个Office将提供64位引擎。可以下载Beta版from Microsoft Downloads
答案 4 :(得分:-3)
如果您使用Google,则会看到Jet不再是Windows的标准版本,因此已被弃用。现在属于Office 2010的ACE驱动程序确实支持MDB文件,但Microsoft强调它不是Jet的替代品。他们希望您使用SQL Express。
您可以单独下载并安装ACE驱动程序,但请注意,由于没有理由,您无法在同一台计算机上安装32位和64位版本。如果oyu安装了Office 2007 32位并尝试安装64位ACE引擎,它会为您提供一个大对话框,告诉您必须首先卸载Office 2007。
我们切换到了sqlite。没有这样的麻烦。
答案 5 :(得分:-4)
使用CSV ODBC驱动程序时要小心。我发现了一个错误。 如果将MS-Excel文件导出为CSV格式,如果导出的文本字符串包含双引号或嵌入其中的逗号,则会获得双引号文本字符串。例: " Hello World",这是Eric。 出口为 """ Hello World"",这是Eric。" 然而, 如果您将此数据读入启用ODBC的程序,然后将数据导出,则会发生的情况是CSV ODBC驱动程序在文本周围放置双引号,无论文本是否嵌入了双引号和/或逗号。 巨大的问题(唤醒微软公司) 这样就无法在使用CSV驱动程序从启用ODBC的程序中从MS-Excel导出的原始文件和新创建的文件(读入然后输出)中运行FILE COMPARE。 您将始终获得FAILED FILE COMPARE(校验和),因为数据不相等。真的可以提高质量保证/质量控制。 微软公司应该聘请一两位ETL程序员来提供建议。 此外,ODBC管理员中有一个巨大的BUG EXISTS 因此,您无法编辑文本驱动程序识别/支持的文件。 如果您编辑该条目,则中文字符存储在Windows注册表中。疯!!!!但是,这是一个很好的!!!通过ODBC解析CSV数据的方法,而不必编写自己的代码来删除额外的双引号。