一、只读查询 最快组合(没有之一)
🔥 最快写法(复制直接用)
vbnet
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. 最快打开记录集(只读)
vbnet
rs.Open "select * from [TABLE1]", Conn, 0, 1, 1
三、参数说明(你一看就懂)
表格
| 参数 | 常量 | 意义 | 速度 |
|---|---|---|---|
| 0 | adOpenForwardOnly | 只向前(只读最快) | ⭐⭐⭐⭐⭐ |
| 1 | adOpenKeyset | 键集游标(你现在用) | ⭐⭐⭐ |
| 1 | adLockReadOnly | 只读不加锁 | ⭐⭐⭐⭐⭐ |
只读场景:0,1 永远比 1,1 更快!
四、你要的 "最快只读打开" 完整代码
vb
vbnet
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, 1rs.Open SQL, Conn, 0, 1, 1
✅ 你现在的 1,1 可以直接换成 0,1
速度立刻再提升一截!