一、只读查询最快组合(没有之一)
🔥 最快写法(复制直接用)
rs.Open "select * from [TABLE1]", Conn, adOpenForwardOnly, adLockReadOnly, adCmdText对应数字简写(不引用也能用)
rs.Open "select * from [TABLE1]", Conn, 0, 1, 1为什么这个最快?
- 0 = adOpenForwardOnly:只向前、只读、最轻量、速度最快
- 1 = adLockReadOnly:只读,不加锁,不冲突
- 1 = adCmdText:告诉引擎这是 SQL 文本,少解析一步
你实测过:这个组合比 Keyset (1,1) 快 10%~30%
二、只读打开数据库连接 + 记录集全套最快代码
1. 连接字符串(你实测第一名)
' MDB 最快(你实测 10.78ms) ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & DbFile & ";" & _ "Mode=Read;" & _ ' 显式只读 "Persist Security Info=False"2. 最快打开记录集(只读)
rs.Open "select * from [TABLE1]", Conn, 0, 1, 1三、参数说明(你一看就懂)
表格
| 参数 | 常量 | 意义 | 速度 |
|---|---|---|---|
| 0 | adOpenForwardOnly | 只向前(只读最快) | ⭐⭐⭐⭐⭐ |
| 1 | adOpenKeyset | 键集游标(你现在用) | ⭐⭐⭐ |
| 1 | adLockReadOnly | 只读不加锁 | ⭐⭐⭐⭐⭐ |
只读场景:0,1 永远比 1,1 更快!
四、你要的“最快只读打开” 完整代码
vb
Dim Conn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim ConnStr As String Dim DbFile As String DbFile = App.Path & "\data.mdb" ' 【最快连接】Jet OLEDB + 显式只读模式 ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & DbFile & ";" & _ "Mode=Read;" & _ "Persist Security Info=False" Conn.Open ConnStr ' 【最快只读打开】0,1,1 rs.Open "select * from [TABLE1]", Conn, 0, 1, 1 ' 读取数据... rs.Close Conn.Close五、终极结论(最重要)
✅VB6 + Access 只读最快组合
- 连接:
Microsoft.Jet.OLEDB.4.0+Mode=Read - 记录集:
0, 1, 1
rs.Open SQL, Conn, 0, 1, 1✅ 你现在的1,1可以直接换成0,1
速度立刻再提升一截!