min10

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
第一个参数:sql 即SQL语句

第二个数:conn 即数据库的连接

第三个参数:
0 创建只能向前滚动的只读记录集
1 游标允许你添加,删除和修改记录,但是看不到当你的记录集打开是其他用户所做的修改
2 游标允许你添加,删除和修改记录,并且可以看到其他用户所做的修改
3 创建一个具有所有定位功能的只读记录集,即:可以向前,向后,并且可以标记书签

第四个:
1 记录是只读的,并且不能改变
2 记录在你可以对其进行编辑时是被锁定的
3 在你调用Update方法提交你所做的改变时记录是被锁定的
4 如果你在对一系列记录进行批量更新,在需要它

 

记录集rs.open 参数说明RS.OPEN SQL,CONN,A,B


A: 

ADOPENFORWARDONLY(=0) 
只读,且当前数据记录只能向下移动

ADOPENKEYSET(=1) 
只读,当前数据记录可自由移动

ADOPENDYNAMIC(=2) 
可读写,当前数据记录可自由移动

ADOPENSTATIC(=3) 
可读写,当前数据记录可自由移动,可看到新增记录

B:

ADLOCKREADONLY(=1) 
缺省锁定类型,记录集是只读的,不能修改记录

ADLOCKPESSIMISTIC(=2) 
悲观锁定,当修改记录时,数据提供者将尝试锁定记录以确保成功地编辑记录。只要编辑一开始,则立即锁住记录。

ADLOCKOPTIMISTIC(=3) 
乐观锁定 ,直到用Update方法提交更新记录时才锁定记录。

ADLOCKBATCHOPTIMISTIC(=4) 
批量乐观锁定,允许修改多个记录,只有调用UpdateBatch方法后才锁定记录。

当不需要改动任何记录时,应该使用只读的记录集,这样提供者不用做任何检测。
对于一般的使用,乐观的锁定可能是最好的选择,因为记录只被锁定一小段时间,
数据在这段时间被更新。这减少了资源的使用。

DISTINCT 参数用来选取一列中所有的不同的值。例如:表中城区记录中有3000条数据,但是城区只有5个,

从中提取出城区的名称: SELECT DISTINCT 城区 FROM Table。

对于类似城区,街道从数据库中数据进行关联,可以使用以下语句:

Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim strSQL As String

Private Sub DataCombo1_Change()
Set rs = New ADODB.Recordset
strSQL = "SELECT DISTINCT 街道 FROM shuju WHERE 城区='" & DataCombo1.Text & "'"
rs.Open strSQL, cnn, adOpenKeyset, adLockReadOnly
    Set DataCombo2.DataSource = rs
    Set DataCombo2.RowSource = rs
    DataCombo2.ListField = rs.Fields("街道").Name
End Sub

Private Sub Form_Load()  'load 城区 to DataCombo1
Set cnn = New ADODB.Connection
    cnn.Provider = "Microsoft.Jet.OLEDB.4.0"
    cnn.ConnectionString = "Data Source=" & App.Path & "\data.mdb;Persist Security Info=False"
    cnn.Open
Set rs = New ADODB.Recordset
strSQL = "SELECT DISTINCT 城区 FROM shuju"
rs.Open strSQL, cnn, adOpenKeyset, adLockReadOnly
    Set DataCombo1.DataSource = rs
    Set DataCombo1.RowSource = rs
    DataCombo1.ListField = rs.Fields("城区").Name
End Sub

posted on 2009-03-26 13:38  min10  阅读(4054)  评论(0编辑  收藏  举报