首先需要引用:
ado
VB ADODB中的RecordSet.Open打开记录的两个参数adOpenKeyset、adLockBatchOptimistic的详细说明:
这两个参数当时弄明白,过后又忘记了,做了笔记,但为了方便,还是在Blog中也做上这个笔记。
缺省值1 adLockReadOnly RecordSet对象以只读方式启动,无法运行增、删、改等操作
2 adLockPRSSimistic 当数据源正在更新时,系统会锁定其他用户的动作,以保数据一致性。
3 adLockOptimistic 当数据源正在更新时,系统不会锁定其他用户的动作,其他用户可以对数据进行增、删、改操作。
4 adLockBatchOptimistic 当数据源正在更新时,其他用户必须将CursorLocation改为adUdeClientBatch才能对数据进行增、删、改的操作。
默认值0 adOpenForwardOnly 使用仅向前游标。除了在记录中只能向前滚动外,与静态游标相同。当只需要在 Recordset 中进行一个传递时,用它可提高性能。
1 adOpenKeyset 使用键集游标。尽管从您的 Recordset 不能访问其他用户删除的记录,但除无法查看其他用户添加的记录外,它和动态游标相似。其他用户所做的数据更改依然可见。
2 adOpenDynamic 使用动态游标。其他用户所做的添加、更改或删除均可见,而且允许 Recordset 中的所有移动类型(如果提供者不支持书签,则书签除外)。
3 adOpenStatic 使用静态游标。一组记录的静态副本,可用于查找数据或生成报告。其他用户所做的添加、更改或删除不可见。
-1 adOpenUnspecified 不指定游标类型
-----------------------------------------------------------------------------------------------------
Private conn As New ADODB.Connection
Dim rc As New ADODB.Recordset
Dim Query As New System.Text.StringBuilder
'データ登録
'rc.Open("select * from tablename",conn,1,3) 等同于一下参数
rc.Open("select * from tablename",ADODB.CursorTypeEnum.adOpenKeyset,ADODB.LockTypeEnum.adLockOptimistic)
With rc
.AddNew()
.Fields("f1").Value = "a"
.Fields("f2").Value = "b"
.Fields("f3").Value = "c"
.Update()
End With
rc.Close()
'データ検索
Dim select_rc As New ADODB.Recordset
'Rs.Open sqlstr,Conn,3,2
select_rc.Open("select * from tablename",conn)
'データ数量の判断
If Not Rec.EOF Then
'データない
With select_rc
'TODO...
End With
Else
'データある
Set FrmIndex.DataGrid1.DataSource = Rs '绑定frmindex.datagrid1控件 'Rs.Close 关键所在,'执行完过程不能直接关了数据库否则不会有数据显示在Datagrid1中的 'Set Rs = Nothing End If 'データ更新 Dim sex Dim score sex = Val(sextext.Text) score = Val(scoretext.Text) rs(0).Value = xuehaotext.Text rs(1).Value = nametext.Text rs(2).Value = sex rs(3).Value = score rs.Update() 'データ削除 rs.Delete()
原文链接:https://www.f2er.com/vb/257405.html