揭秘Access数据库过大问题的几种解决方案(2)_Access数据库教程
教程Tag:暂无Tag,欢迎添加,赚取U币!
推荐:access升级到SQLServer如何调整字段类型及函数:JET SQL 和T-SQLANSI SQL BIT数据类型与 the Microsoft Jet SQL BIT 数据类型不对应。而与 BINARY 数据类型对应。ANSI SQL 并没有等效于 Microsoft Jet SQL 的 BIT 的数据类型。 TIMESTAMP不再作为DATETIME的同义字被支持。 NUMERIC 不再作为 FLOAT或 DOUBLE的同义字被支持
可以大概指定一定范围,例如从0到1W使用1号数据库。
1W到2W使用2号数据库。
如何使用?。。
con和rs定义多个。。
con1是一号数据库的,con2是二号数据库的。。
rs1是一号数据库的,rs2是二号数据库的。。
添加:
当数据达到XW条时使用新的conX和rsX。。
修改:
查询要修改的ID号。。去指定是数据库执行操作。
删除:
同修改。
用这个有一个不是很好解决的地方。比如我要查询用户排行,查询积分最大的10个用户。
由于用的多个数据库,而且用的多个rs。。
找到了两种方法,各位依照喜好使用。
第一种:
Private Function UnionRs(rsA As Recordset, rsB As Recordset) As Recordset
Dim rs As New Recordset, i%
For i = 0 To rsA.Fields.Count - 1
'设置记录集标题列
rs.Fields.Append rsA.Fields(i).Name, rsA.Fields(i).Type, adFldMayBeNull + adFldIsNullable + adFldUpdatable
Next
'添加rsA到rs
If Not rsA.EOF Then
rsA.MoveFirst
If rs.State = adStateClosed Then rs.Open
While Not rsA.EOF
rs.AddNew
For i = 0 To rs.Fields.Count - 1
rs(i) = rsA(i)
Next
rsA.MoveNext
Wend
rs.UpdateBatch
End If
'添加rsB到rs
If Not rsB.EOF Then
rsB.MoveFirst
If rs.State = adStateClosed Then rs.Open
While Not rsB.EOF
rs.AddNew
For i = 0 To rs.Fields.Count - 1
rs(i) = rsB(i)
Dim rs As New Recordset, i%
For i = 0 To rsA.Fields.Count - 1
'设置记录集标题列
rs.Fields.Append rsA.Fields(i).Name, rsA.Fields(i).Type, adFldMayBeNull + adFldIsNullable + adFldUpdatable
Next
'添加rsA到rs
If Not rsA.EOF Then
rsA.MoveFirst
If rs.State = adStateClosed Then rs.Open
While Not rsA.EOF
rs.AddNew
For i = 0 To rs.Fields.Count - 1
rs(i) = rsA(i)
Next
rsA.MoveNext
Wend
rs.UpdateBatch
End If
'添加rsB到rs
If Not rsB.EOF Then
rsB.MoveFirst
If rs.State = adStateClosed Then rs.Open
While Not rsB.EOF
rs.AddNew
For i = 0 To rs.Fields.Count - 1
rs(i) = rsB(i)
分享:解读ACCESS的参数化查询最近因项目需要用ACCESS做数据库开发WEB项目,看论坛上还许多人问及ACCESS被注入的安全问题,许多人解决的方法仍然是用Replace替换特殊字符,然而这样做也并没有起到太大做用,今天我就把我用ACCESS参数化查询的一些方法和经验和大家分享,希望对大家有所启
相关Access数据库教程:
- 相关链接:
- 教程说明:
Access数据库教程-揭秘Access数据库过大问题的几种解决方案(2)。