sql - 这个 ADO OPEN 方法有什么作用?

标签 sql mysql vba excel

你能用简单的英语向我解释这里发生了什么吗:

rs.Open "batchinfo", oConn, adOpenKeyset, adLockOptimistic, adCmdTable

我需要做的是能够将值插入到名为 batchinfo 的表中。这是进行 OPEN 的最佳方式吗?

我唯一要做的就是插入值。

最佳答案

adCmdTable 的使用通常会导致 ADO 生成一个 select * from thetable 命令,该命令由 OLE DB 提供程序执行。如果您更新生成的记录集,提供程序(或者实际上是其上的 ADO)通常会生成格式为 update table set field = ?, ... WHERE ... 的语句。 WHERE 子句是潜在的问题。如果表上有主键,则 WHERE 子句将包含更新记录的主键,因此执行效率相当高。由于您只是插入值,因此应该会生成简单的 INSERT 语句,并且应该非常高效。

请注意,如果提供程序支持它,则 adCmdTableDirect 将导致直接打开表,并且更新将非常高效。我不知道 MySQL 是否支持该选项;我认为没有多少供应商支持这一点。

关于sql - 这个 ADO OPEN 方法有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2823664/

相关文章:

java - 如何在不使用管理面板的情况下连接 Volusion DB

Mysql全文搜索找不到一个词-为什么?

sql - 组织复杂的 couchdb View (类似 sql 的查询)的最佳方法是什么?

mysql - 对于具有相同数据属性的三个独立对象,一张表还是三张表?

excel - 计算机被锁定时如何发送电子邮件?

vba - 以编程方式在 Excel 中设置 "Select objects"光标

vba - excel:带有 protected 工作表的高级过滤器

mysql - 如果值为空或不为两个新值,则在 SQL 中赋值

c# - 为什么我的 BLOB 字段仍然是 13B - 我做错了什么?

Mysql邻接: get all parents of the leaf