繁体   English   中英

在32位或64位环境中创建Access数据库

[英]Creating an Access Database in 32-bit or 64-bit Environments

我不认为我的问题有解决方案,但是我想我想问一下,以防万一我遗漏或误解了它的某些方面:

  1. 我有一个C#程序,用于创建和写入Access数据库。 更具体地说,C#库将成为一组应用程序的一部分。
  2. 该库不能专门针对32位或64位,因为这意味着该套件中的所有程序都必须专门针对(如果dll是针对32位构建的,则无法将dll加载到64位操作空间中,反之亦然。 我认为?)。
  3. 我相信“ 2010 Office System驱动程序连接组件”使我可以从64位环境连接并写入Access数据库(.mdb)。 但是,其他要求之一是不要对各种Microsoft Access可再发行版本具有外部依赖性(过去我们在Access应用程序方面遇到问题)。

因此,我真正要寻找的是某种独立于OS(且独立于32/64位)的方法,用于从C#创建和写入Access数据库。 这样的事情是否存在,或者我的选择是否大致如上所述?

一种想法是,我们可以从连接组件中提取依赖的dll,但是我可以确定这些DLL是针对32位或64位环境的,因此当我们尝试在非目标平台上运行时,它将失败。 。 还是它们像针对“任何”的C#程序一样运行,并根据环境进行调整?

在我研究的先前应用程序中,需要将数据导出到Access数据库。 但是,如果未安装Access,则没有直接“创建”空数据库的方法。 由于您无法连接到不存在的数据库,因此我要做的是创建一个空数据库,将文件本身作为应用程序的资源嵌入。 然后,当我需要创建一个新的“访问数据库”时,我将对其进行流式读取,并将空的数据库结构写到需要的位置,并带有所需的任何文件名。 由于该数据库已经在32位环境中创建,因此它随后的连接没有问题...但是在64位计算机变得越来越普遍之前也是如此。

希望这对您有所帮助。

实际上,如果您编写应用程序,则可以只将其强制定位为32位,而不必担心。 在64位环境中启动时-它会“运行”。

如果您正在编写一个dll /程序集,它将被某个应用程序引用,并且您知道该应用程序将被编译为“任何CPU”或“ 64位”,那么您就不走运了,这个答案就很成功了。帮不了你,也许:D

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM