vb中,如果是通过记录集更新数据库的话,在没有写rs.update前。是不会提交到数据库的。
如
Dim cn As New adodb.Connection
Dim rs As New adodb.Recordset
cn.Open "Provider=MSDAORA.1;Password=tiger;User ID=scott;Data Source=orcl;Persist Security Info=True"
rs.CursorLocation = adUseClient
rs.Open "select * from test", cn, adOpenDynamic, adLockOptimistic
rs.AddNew
rs.Fields(0).Value = "zz"
rs.Fields(1).Value = "zz"
rs.Fields(2).Value = 300
rs.Update ==>只有执行了,才会提交到数据库
cn.Close
那么,如果没有写rs.update,就直接关闭连接呢。
...
rs.Fields(0).Value = "zz"
rs.Fields(1).Value = "zz"
rs.Fields(2).Value = 300
cn.Close
此时,就看oracle的设置了,当session关闭时,是缺省提交事务还是回滚。oracle的缺省设置是rollback。
如
Dim cn As New adodb.Connection
Dim rs As New adodb.Recordset
cn.Open "Provider=MSDAORA.1;Password=tiger;User ID=scott;Data Source=orcl;Persist Security Info=True"
rs.CursorLocation = adUseClient
rs.Open "select * from test", cn, adOpenDynamic, adLockOptimistic
rs.AddNew
rs.Fields(0).Value = "zz"
rs.Fields(1).Value = "zz"
rs.Fields(2).Value = 300
rs.Update ==>只有执行了,才会提交到数据库
cn.Close
那么,如果没有写rs.update,就直接关闭连接呢。
...
rs.Fields(0).Value = "zz"
rs.Fields(1).Value = "zz"
rs.Fields(2).Value = 300
cn.Close
此时,就看oracle的设置了,当session关闭时,是缺省提交事务还是回滚。oracle的缺省设置是rollback。
Dim cn As New adodb.Connection
cn.Open "Provider=MSDAORA.1;Password=tiger;User ID=scott;Data Source=orcl;Persist Security Info=True"
cn.Execute "insert into test values('www','wwww',300)"
cn.Close