在VC6中,使用ODBC的SQL语句 *** 作数据库时,如何提交和回滚事务

在VC6中,使用ODBC的SQL语句 *** 作数据库时,如何提交和回滚事务,第1张

BEGIN TRAN 为开始事务

COMMIT TRAN 为提交事务

ROLLBACK TRAN 为回滚事务

BeginTrans 启动新的事务,之后任何改变不会立即提交

CommitTrans 保存所有更改并结束当前事务。它也可以启动新事务。

RollbackTrans 取消当前事务中所做的任何更改并结束事务。它也可以启动新事务。

$sql2 没发现错误 执行功 段验证 直接 print_r($r2) 看否真SQL错误 另外 !$r1 种写否判断错误 $r2 输错误 否 $r2 === false 许其 用 var_dump 查看

简单的来说,我给你举两个例子:

1、对数据库做了ddl的 *** 作,但是没有进行提交 *** 作,此时就会提示受影响行数,如果最后没有进行提交 *** 作,数据就会回滚。

2、对数据进行 *** 作时,如果数据报错,如批量插入数据,其中有一条无法插入,那么此次的 *** 作就会被视为无效,数据库就会回滚,以保证数据的完整性。

3、在程序开发时,是以事务为原子性 *** 作的,此时可能因为一个业务 *** 作会对数据库的多个表进行增删改,如果中间出现问题,那么对已 *** 作部分的数据怎么办呢? 数据库的回滚就可以解决。

只能手动删除

升级时添加的字段吧

表结构升级时应该会有执行脚本

然后根据脚本再整理出删除语句

批量执行

ALTER

TABLE

table_NAME

DROP

COLUMN

CREATE PROC [dbo][notice_Delete] --- 同时删除该通知书和对应的节点

@tbl VARCHAR(30),

@pid INT

AS

BEGIN

DECLARE @tblname VARCHAR(30) ;

DECLARE @sql VARCHAR(1000) ;

SET @tblname = @tbl

SET @sql = 'delete ' + @tblname + ' where id ='

+ CONVERT(VARCHAR(10), @pid)

BEGIN TRAN --开始事务

EXEC ( @sql

)

IF ( @@rowcount = 0 ) --执行结果影响行数为0

BEGIN

ROLLBACK TRAN --回滚

END

ELSE

BEGIN

DELETE FROM tbl_treenotice

WHERE purposeid = @pid

IF ( @@rowcount = 0 ) --执行结果影响行数为0

BEGIN

ROLLBACK TRAN --回滚

END

ELSE

BEGIN

COMMIT TRAN --提交事务

END

END

END

以上就是关于在VC6中,使用ODBC的SQL语句 *** 作数据库时,如何提交和回滚事务全部的内容,包括:在VC6中,使用ODBC的SQL语句 *** 作数据库时,如何提交和回滚事务、关于数据库事务回滚的问题、数据库 为何使用 回滚等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10072582.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存