VB中可以事务编程吗?

comrade_hj 2004-08-11 08:00:56
VB中可以事务编程吗?它的语句是怎么样的?谢谢!!!
...全文
141 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
comrade_hj 2004-08-16
  • 打赏
  • 举报
回复
关于存储过程编程,楼上的朋友可以举些例子吗?
abcd_net 2004-08-11
  • 打赏
  • 举报
回复
关注!
cdbqss1 2004-08-11
  • 打赏
  • 举报
回复
ADO的事务可以嵌套吗?如果是,那么ADO中没有可以测试事务嵌套层次的属性、方法或函数?也就是说想知道当前的事务是第一级还是第二级第三级。
Andy__Huang 2004-08-11
  • 打赏
  • 举报
回复
用存儲過程吧,存儲過程的好用是得到世人的公認的
cheng0733 2004-08-11
  • 打赏
  • 举报
回复
Dim con as adodb.connection

con.BeginTrans '开始事务处理
con.CommitTrans '提交事务处理
con.RollbackTrans '回退事务
csdnchenxu 2004-08-11
  • 打赏
  • 举报
回复
Dim con as adodb.connection

con.BeginTrans '开始事务处理
con.CommitTrans '提交事务处理
con.RollbackTrans '回退事务

就知道这些了
libingao 2004-08-11
  • 打赏
  • 举报
回复
用 ADO 访问数据库时支持事务,不过不是很好;最好用 COM+ 来实现!
Private Sub Command1_Click()
On Error GoTo errorHandler

Dim adoCnn As New ADODB.Connection
Dim adoRst As New ADODB.Recordset
Dim BeginTransBol As Boolean '是否已开始一个 ado 事务
Dim CnnStr As String
Dim cSql As String

BeginTransBol = False
CnnStr = "Provider=SQLOLEDB.1;Persist Security Info=True; Initial Catalog=[数据库名];Data Source=[服务器名]; User ID=sa;Password=;" '基于 用户名和密码的访问
'CnnStr = "Provider=SQLOLEDB.1;Persist Security Info=False;Initial Catalog=[数据库名];Data Source=[服务器名]; Integrated Security=SSPI;" '基于 windows 集成的安全访问
'CnnStr = "provider=Microsoft.Jet.OLEDB.4.0;Data source =" + [Access97、Access2000 数据库路径及名称] + " ;Persist Security Info=False;Jet OLEDB:Database Password=" + [数据库密码] '访问 Access 数据库
With adoCnn
If .State = adStateOpen Then .Close
.ConnectionString = CnnStr
.Open
If .State = adStateOpen Then
' 数据库打开成功
' 开始一个事物,设置事务的隔离层为 adXactReadCommitted

.IsolationLevel = adXactReadUncommitted ' adXactReadCommitted
.BeginTrans '开始一个事务
BeginTransBol = True

cSql = "DELETE * FROM report_head1"
.Execute cSql, , adCmdText + adExecuteNoRecords '参数 adExecuteNoRecords 表示不返回任何记录集,可提高执行速度

cSql = "SELECT * FROM report_head1 WHERE 编号 = " + Text1.Text
With adoRst
If .State = adStateOpen Then .Close
.ActiveConnection = adoCnn
.CursorLocation = adUseClient
.LockType = adLockBatchOptimistic
.CursorType = adOpenStatic
' 当查询为多个表的联合查询同时更新只对其中的一个表进行时,可用下面的语句显式指定要更新的表名
.Properties("Unique Table") = "report_head1"
.Source = cSql
.Open
' Disconnect the recordset 切断记录集
Set .ActiveConnection = Nothing

If .RecordCount <> 0 Then
MsgBox "编号已经存在,请重新输入!", vbInformation, "录入重复. . ."
Text1.SetFocus
Else
.AddNew
'开始添加记录
.Fields("编号").Value = Text1.Text

'...

' Reconnect and update Access or SQL Server
.ActiveConnection = adoCnn
.UpdateBatch
End If
End With
.CommitTrans '提交当前事务
BeginTransBol = False
Else
' 数据库打开失败
' ...
End If

End With
Exit Sub
errorHandler:
If adoCnn.State = adStateOpen And BeginTransBol Then adoCnn.RollbackTrans '有错误发生,回滚当前事务
MsgBox Err.Description + "(错误号:" + CStr(Err.Number) + ")", vbCritical, "出错拉 . . ."

End Sub


gamemx 2004-08-11
  • 打赏
  • 举报
回复
up

1,216

社区成员

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

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