写一个往数据库里添加数据的程序,因为该程序要求要么不更新,要么全更新,所以想用rollback,可是试了一下,好像不行,我是用ado访问的,是不是不能rollback阿?那怎么办?还有就是添加完后希望更新一下数据库,该怎么办
On Error GoTo err
Call openconn
begintrans
sqlstr = "SELECT * FROM test_report"
Call adors(sqlstr)rs.AddNew
rs.Fields("report_number") = no.Text
rs.Fields("supplier_name") = supplier_nam.Text
rs.Update
CommitTrans
MsgBox "test report saved successfully", vbInformation
err:
Rollback
MsgBox err.Description
On Error GoTo err
Call openconn
begintrans
sqlstr = "SELECT * FROM test_report"
Call adors(sqlstr)rs.AddNew
rs.Fields("report_number") = no.Text
rs.Fields("supplier_name") = supplier_nam.Text
rs.Update
CommitTrans
MsgBox "test report saved successfully", vbInformation
err:
Rollback
MsgBox err.Description
解决方案 »
- 往exe里添加代码...
- 求助
- 采集图像问题,请高手指点.
- 救命呀。ado连接的sql server数据库,我想实现查询的功能,完整步骤------在先等待
- 实时错误'91'!!!头痛啊~~~~
- 遇到一个比较奇怪的问题,一个ado的连接的数据库,执行rs.fields(2).value = 2 ; rs.update 不能执行。
- 怎样修改一个文本文件的每一行的部分字符串?
- 在网页中agent能否使用自己的声音文件,怎样使用?
- 如何在WebBrowser里面实现自动滚屏?
- help me : 关于动态生成文本文件以及执行shell的问题
- 自定义控件属性框问题?
- [求救]未找到方法或数据源.怎么回事啊这段代码?
conn.committrans
conn.rollback
我只是我的看法,可能不对。呵。
例如 rs.open "update Table set col1='TEST'" ,conn,3组装的SQL语句容易受SQL注入攻击,而RS!Col1='TEST' ; RS.Update 这种方式可以避免了注入攻击。
你单单写个begintrans、CommitTrans、Rollback,
除非这也是你的函数,否则难得你的程序不会报错么?其次在err:前面应该加上exit sub(或者function)
dim Conn as Adodb.Connection
set Conn=new Adodb.Connection
conn.open "连接字符串"
conn.begintrans
conn.execute "Update test_report set report_number=" & no.text & ",supplier_name='" & supplier_nam.Text & "', , adCmdText
conn.committrans
exit sub
errcl:conn.rollback