我用ADO操作ACCESS数据库时,碰到一个问题,大家来看看

darkread 非公司 安全工程师  2004-10-10 04:12:25
adocn.Open cDecCNStr
adors.Open "select * from MedCate", adocn, adOpenDynamic, adLockPessimistic
For i = 0 To adors.RecordCount - 1
adors.Delete
adors.MoveNext
Next
这样的语句,我发现不用adors.Update,MedCate表中的数据已经全部删除的
有没有什么办法,不用Update就不会自动写入数据库?
...全文
185 点赞 收藏 14
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
饮水需思源 2004-10-13
'如果是删除数据库中数据可用:adocn.execute "delete from medcate"
回复
unknow_123 2004-10-13
那你就在数据库里面建一个标志,删除的时候现将标志置为有效,如果要update则再次进行删除,否则还原标志
回复
QWERT520 2004-10-11
有创新意识
回复
vbman2003 2004-10-10
不简单的问题
回复
hsx306 2004-10-10
你用完adors.Delete后再用adors.MoveNext,此时adors.MoveNext动作是就已经包括了adors.Update操作了.
回复
daisy8675 2004-10-10
不建议用事务
回复
daisy8675 2004-10-10
Option Explicit

Public Rs As New ADODB.Recordset
Public Conn As New ADODB.Connection

Public Sub Make_Connection()
Dim strConn As String

strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\daisy8675\Data\People.mdb;Persist Security Info=False"

Conn.CursorLocation = adUseClient
Conn.Open strConn

End Sub

Private Sub cmdAddNew_Click()
On Error Resume Next
Rs.AddNew

End Sub

Private Sub cmdCancel_Click()
Unload Me
End Sub

Private Sub cmdDel_Click()
On Error Resume Next
Rs.Delete

End Sub

Private Sub cmdOK_Click()
Rs.UpdateBatch
End Sub

Private Sub Form_Load()
On Error Resume Next

Call Make_Connection

If Rs.State <> adStateClosed Then Rs.Close
Rs.Open "Select * from Man", Conn, adOpenStatic, adLockBatchOptimistic '--请注意这里的打开方式即可

If Rs.RecordCount <> 0 Then
Set Me.DataGrid1.DataSource = Rs
End If
End Sub
回复
tztz520 2004-10-10
adocn.Open cDecCNStr
adors.Open "select * from MedCate", adocn, adOpenDynamic, adLockPessimistic
For i = 0 To adors.RecordCount - 1
adocn.BeginTrans'
adors.Delete
if i=2 then'只有当I=2时才能删除成功
adocn.CommitTrans'
else
adocn.RollbackTrans'
end if
adors.MoveNext
Next
回复
GGL123 2004-10-10
将adLockPessimistic换成adLockBatchOptimistic就行了
回复
darkread 2004-10-10
那Update只能用在修改数据的时候?
回复
darkread 2004-10-10
我的意思是即使不用adors.Update
只要有adors.Delete

数据库中的记录就已经被删除了,


我希望能实现
adors.Delete后,如果我不用adors.Updata,则数据库中的记录仍然存在,只是adors这个RecordSet中的该记录被删除了,
回复
mirageTF 2004-10-10
delete当然不需要update
回复
tztz520 2004-10-10
那就用事务处理吧.
adocn.BeginTrans'开始事务
'写你的数据库代码

adocn.CommitTrans'提交事务

adocn.RollbackTrans'回滚事务
回复
zyg0 2004-10-10
adors.delete不跟着
adirs,update就不删除
我没看明白你写的什么意思,你就说你想实现什么吧
回复
发动态
发帖子

1180

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
社区公告
暂无公告