ADO问题!

zhaochengqing 2005-03-18 05:34:39
是不是用ADO连接的只能添加记录,不能修改记录,如果可以的话要怎么做,请说的详细点我不怎么会用ADO,但是客户又要求一定要ADO来连接,真是的!谢谢啦!
...全文
113 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
li_jun 2005-03-21
  • 打赏
  • 举报
回复
打开 Recordset 之前先设置 LockType 属性,以指定提供者打开它时使用的锁定类型。读取该属性以返回打开的 Recordset 对象中使用的锁定类型。
供者可能不支持所有锁定类型。如果提供者不支持请求的 LockType 设置,则替换为另一种锁定类型。若要确定 Recordset 对象中实际可用的锁定功能,将soppurts 方法与 adUpdate 和 adUpdateBatch 一起使用。
如果 CursorLocation 属性设置为 adUseClient,则不支持 adLockPessimistic 设置。如果设置了不支持的值,将不产生错误,而使用所支持的最相近的 LockType。
LockType 属性在 Recordset 关闭时为读/写,而在 Recordset 打开时为只读。
锁定类型种类(LockType 属性):
1.adLockBatchOptimistic
指示开放式批更新。需要批更新模式。

许多应用程序都一次提取多行,然后需要进行相应的更新,这些更新包括所有需要插入、更新或删除的行的完整集合。使用批游标只需一次往返服务器,因而导致更新性能的提高和网络通信量的降低。使用批游标库可创建静态游标,然后断开到数据源的连接。这时就可以对行进行更改,然后重新连接到数据源并将更改以批的形式发布到数据源。

2.adLockOptimistic
提供者使用开放式锁定,仅在调用 Update 方法时锁定记录。这意味着另一个用户有可能会利用您编辑记录和调用 Update 的时间间隔更改数据,这就会引起冲突。而使用此锁定类型时发生冲突的几率很低,即使发生了冲突也会很快得到解决。

3.adLockPessimistic
指示逐个记录保守式锁定。提供者要确保记录编辑成功,通常在编辑之前立即在数据源锁定记录。当然,这意味着一旦您开始编辑记录,这些记录就会对其他用户不可用,知道您通过调用 Update 释放锁定。如果您的系统不提供对数据的并发更改,例如预定系统,那么可使用此锁定类型。

4.adLockReadOnly
指示只读记录。无法改变数据。只读锁定是速度“最快”的锁定类型,因为它不要求服务器保持对记录的锁定。冲突

5.adLockUnspecified
未指定锁定类型。

faib920 2005-03-21
  • 打赏
  • 举报
回复
conn.execute "update ........."
luhui88 2005-03-21
  • 打赏
  • 举报
回复
yun
zhaochengqing 2005-03-21
  • 打赏
  • 举报
回复
那具体后面的打开方式,以及各自的详细区别说一下谢谢!
daisy8675 2005-03-18
  • 打赏
  • 举报
回复
谁说不能修改记录了?????
Private Rs As New ADODB.Recordset
Private Conn As New ADODB.Connection

Private Sub Form_Load()
Dim strConn As String

' 连接数据库的字符串
' 连接带密码的数据库,直接在连接符后面加上Jet OLEDB:DataBase Password='您的密码'
' 连接Access97数据库需要使用Jet.OLEDB.3.5,Access2K和以上数据库使用Jet.OLEDB.4.0
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\test.mdb;Persist Security Info=False"

' 使用客户端数据游标
Conn.CursorLocation = adUseClient
' 打开Access的连接
Conn.Open strConn

' 如果RecordSet的状态不是关闭状态,则关闭Recordset
If Rs.State <> adStateClosed Then Rs.Close

' Recordser打开表People
Rs.Open "Select * from People", Conn, adOpenKeyset, adLockOptimistic

' 报告出 一共多少笔数据,测试是否存在数据
' MsgBox Rs.RecordCount

' 绑定进DataGrid
Set DataGrid1.DataSource = Rs

End Sub

////
' Recordser打开表People
Rs.Open "Select * from People", Conn, adOpenKeyset, adLockOptimistic
打开记录是否修改只和COnn后面的打开方式有关系,楼主不懂得ADO就学习下去。
ljhdi 2005-03-18
  • 打赏
  • 举报
回复
rs.fields(0)=""
rs.fields(1)=""
……
rs.update
danyuner 2005-03-18
  • 打赏
  • 举报
回复
用ADODC控件就行了
bacaihong 2005-03-18
  • 打赏
  • 举报
回复
都可以的,看看MSDN的例子吧,现成的

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧