【发布时间】:2012-10-06 16:15:44
【问题描述】:
所以我正在编写必须将数千条记录插入 Microsoft Access 的软件。目前我正在使用 JET 的 RBAR(通过痛苦的行)方法。我在 SO 上写了question,然后询问如何加快进程,并被告知使用 DAO 而不是 JET,因为它会更快,并且可以避免 RBAR。
我现在处于准备实施更快解决方案的情况,但是,我还有一些问题。首先是一些简单的事情,有没有人知道 vb.net 中的 DAO 语法的好教程,因为我试图在网上寻找一个但一直在努力。还有人知道要使用的库吗?
其次,避免使用 RBAR 方法将数据插入数据库的最佳方法是什么。我假设这是使用记录集,但我不确定如何实现其中之一,或者一次插入多行所需的 SQL 查询。
最后有人告诉我,ms-access 不是最好的使用方式,它很慢。有没有人对访问的不同替代方案有任何建议?我需要它是一个免费的商业许可证,我知道这是一个延伸。我只使用数据库作为我不需要访问提供的任何用户接口的数据的存储。我在 SO 上找到了一个question 关于这个建议 SQLite、MySQL 或 FireBird。有谁知道这些解决方案与 Access 相比的速度以及它们是否仍可免费用于商业用途。
所以我基本上是在寻找有关如何尽快将大量数据读/写到数据库的建议。任何帮助或建议将不胜感激。
【问题讨论】:
-
对于大多数应用程序来说,MySQL 是一款出色的全面数据库服务器。它支持批量插入没有问题。当您需要基于文件的数据库时,SQLite 非常适合。它类似于没有真正的服务器处理写入磁盘的 Access。
-
如果您习惯使用MS access,并且您的需求很少,您可以使用免费的MS SQL Server Express(注意有大小等限制,但是对于小型数据库,这个可能不是问题)。
-
您要插入的数据的来源是什么?它来自文件吗?不同的数据库?通过将数据作为单个单元操作导入,您可以在没有 RBAR 的情况下将数据导入 Access db 文件。您将使用的具体方法取决于数据源的性质。
-
@Hans,数据通常取自数据库,并在 Visual Basic 前端对其执行操作,然后从数组或列表放回数据库。当数据第一次放入数据库时,它来自excel,可以转换为.csv格式。
标签: sql vb.net visual-studio ms-access bulkinsert