gpt4 book ai didi

VBA ADODB 多行插入不起作用

转载 作者:行者123 更新时间:2023-12-04 21:04:54 27 4
gpt4 key购买 nike

我想弄清楚如何在 VBA excel 中使用 ADODB 进行多行插入。
我的问题似乎是我无法找出用于这个简单任务的正确语法,即使在搜索之后我仍然不知道它为什么不起作用。

使用语句进行单次插入没有问题

INSERT INTO test.dbf ('field1','field3') VALUES ('test1','test11')

但只要我尝试
INSERT INTO test.dbf ('field1','field3') VALUES ('test1','test11'), ('test2','test22')

它给了我以下错误
[Microsoft][ODBC dBase Driver] Missing semicolon (;) at end of SQL statement.

我当然尝试在语句末尾添加分号,但这根本没有帮助,我还尝试在不指定列的情况下运行语句,但都无济于事。

关于我做错了什么的任何建议?我想避免进行 8,000 次单独的插入。

提前致谢

最佳答案

多行插入的 SQL 语法比 ADODB/ODBC 接口(interface)更新,因此它们的 SQL 解析器无法识别它。因此,您的选择是:

  • 使用 VBA 将其指定为传递查询。只要您正在执行的 DBMS 识别新的插入语法,这应该可以工作。但是,如果您的插入内容是基于用户输入的,那么您几乎肯定会将您的数据库暴露在注入(inject)之下。 (注意:这与 pass-thru 无关,而是因为您使用字符串组合来进行插入,而不是使用 ADODB 表对象)。
  • 只需使用 VBA/ADODB 表对象来插入多行。这不会在后台使用较新的多行插入 SQL 语法,但仍然可以正常工作。尝试利用多行语法的唯一原因是如果您遇到性能问题,并且还有许多其他可用的性能选项。
  • 关于VBA ADODB 多行插入不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25488126/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com