在ASP中使用事务控制

嵌入式下载故障排查:ST-LINK与GD32 Programmer典型问题解决 嵌入式固件烧录是MCU开发的关键环节,其本质依赖于调试器(如ST-LINK、GD-Link)与目标芯片间的协议通信、驱动加载及硬件接口协同。原理上,SWD/JTAG协议需在正确时序、电平与供电条件下完成设备枚举、ID读取与Flash编程;技术价值在于保障量产烧录稳定性与调试可重复性;典型应用场景涵盖STM32/GD32教学开发、工业控制板量产调试及Windows 11新系统适配。本文聚焦ST-LINK-V2在Keil MDK中的下载失败和GD32 All In One Programmer的DLL加载异常两 阅读详情

作者系2月份微软社区之星Microsoft China Community Star

 

    在编程中,经常需要使用事务。所谓事务,就是一系列必须都成功的操作,只要有一步操作失败,所有其他的步骤也必须撤销。比如用ASP开发一个网络硬盘系统,其用户注册部分要做的事有:

  1. 将用户信息记入数据库
  2. 为用户开个文件夹用于存储
  3. 初始化用户操作日志


这三步必须使用事务,否则万一磁盘操作失败,而没有撤销数据库操作,就会造成只能登陆而不能操作的“死用户”现象。
    由于数据库系统特殊的发展历史,小至Access,大到DB2,无不带有事务支持。因此上述步骤可以如下表示:
On Error Resume Next
第一步:
在事务环境下把用户信息记入数据库
If Err Then
    关闭连接
    退出
Else
    第二步:创建文件夹
    If Err Then
        回滚第一步数据库操作,退出
    Else
        第三步:在事务环境下操作日志数据库
        If Err Then
            回滚第一步操作,删除第二步建立的文件夹
            退出
        End If
    End If
End If
提交第一步数据库操作的事务
提交第二步数据库操作的事务
End


    每一步都需要进行判断,如果失败,还需要手工回滚前面多步操作,使程序变得复杂、难懂。如果今后更新了程序,增加其他步骤,还需要嵌套更多层的If...Else...End If,使程序流程更加复杂。

    正确的解决办法是使用ASP的事务控制功能。IIS通过和MTS服务联系,可以控制多种支持事务的系统,当程序发出“失败”的信号时,所有支持事务的系统均将自动回滚,即使操作已经正式完成;对不支持事务的操作也提供了方便的手工回滚方式。上面的例子用ASP事务控制功能重写如下:

<%@ TRANSACTION = Required %>
On Error Resume Next

Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open ....
Conn.Execute "INSERT...."
Conn.Close
Set Conn=Nothing

Set Conn2=Server.CreateObject("ADODB.Connection")
Conn2.Open ....
Conn2.Execute "INSERT...."
Conn2.Close
Set Conn2=Nothing

Set FSO=Server.CreateObject("Scripting.FilesystemObject")
FSO.CreateFolder "...."

If Err Then
    ObjectContext.SetAbort  '通知所有支持事务的组件回滚,并运行手工回滚代码
Else
    ObjectContext.SetComplete
End If
Set FSO=Nothing

Sub OnTransactionAbort
Response.Write "错误"
FSO.DeleteFile Server.Mappath("a.txt") 'FSO的手工回滚——删除文件夹
End Sub
Sub OnTransactionCommit
Response.Write "胜利完成任务"
End Sub
%>

    第一行的<%@ TRANSACTION = Required %>表示这一页ASP文件需要MTS的事务支持。中间的各个操作都按普通顺序书写,而不用考虑回滚问题。在程序最后判断是否有错误。如果有,调用ObjectContext的SetAbort方法,IIS会通过MTS服务通知所有支持事务的组件回滚(主要是数据库),并且运行Sub OnTransactionAbort对不支持事务的操作手工回滚;如果没有发生错误,调用ObjectContext的SetComplete方法,则会运行Sub OnTransactionCommit来显示成功的消息。
    整个ASP程序不需要为判断错误和回滚操作书写多余的代码,只须在最后进行判断,即使今后增加了多步操作,也只需要在Sub OnTransactionAbort中进行控制即可,非常方便,程序员可以专注于过程编写而不是书写纠错代码。
    其实ASP还提供了许多更有用的功能,等着我们使用,千万不要以为ASP使用脚本语言,功能就一定弱。

pytorch中dataloader的num_workers参数 结论速递 在Windows系统中,num_workers参数建议设为0,在Linux系统则不需担心。 1 问题描述 在之前的任务超大图上的节点表征学习中,使用PyG库用于数据加载的DataLoader,ClusterLoader等类时,会涉及到参数num_workers。在不同系统环境试验该参数的设定值时,会出现不同的结果 colab(Linux),设为12 有warning message,提示num_workers参数设置不合理,不影响继续运行 /usr/local/lib/python3.7/di 阅读详情

相关推荐

Windows 本地 PostgreSQL 忘记 postgres 密码后,如何重置密码并给 root 用户最高权限

<think>我们只需要根据内容生成摘要,不超过150字。摘要应该简明扼要概括主要问题和解决步骤。注意是中文摘要。</think>在Windows本地开发中,因root数据库账号无CREATEDB权限且忘记postgres超级管理员密码,通过临时修改pg_hba.conf为trust认证重置密码,并重启PostgreSQL服务进行登录,最后授予root用户SUPERUSER等权限,完成数据库创建。

MZH 25

利用ASP实现事务处理的方法

在开发Web应用时,无一例外地需要访问数据库,以完成对数据的查询、插入、更新、删除等操作。受应用逻辑的影响,有时需要将多条数据库操作指令组成一个工作单元(事务)。在数据库中,所谓事务是指一组逻辑操作单元,它使数据从一种状态变换到另一种状态。为确保数据库中数据的一致性,应当用离散的成组的逻辑单元操作数据:当它全部完成时,数据的一致性可以保持;而当单元中的一部分操作失败时,整个事务会被全部忽略,所有从

1302

ITU-T G.8032 V5.0:Ethernet ring protection switching_202003.pdf

ITU-T G.8032 V5.0:Ethernet ring protection switching_202003.pdf

ASP事务控制的方法

如果使用事务处理机制:现在在ASP平台下,有三种可以使用的事务处理机制,哪个性能优越?1、基于asp中dbo.Connection的事务处理2、基于DTC的事务控制(COM+)3、基于存储过程的事务处理机制一般来讲,在 ASP 页中编写过多的业务逻辑并不是一个好办法。因为必须使用简单的语言,例如 Microsoft Visual Basic? Script (VBScrip

吃草的老虎 873

ASP实现数据库事务处理的方法

在开发Web应用时,无一例外地需要访问数据库,以完成对数据的查询、插入、更新、删除等操作。受应用逻辑的影响,有 时需要将多条数据库操作指令组成一个工作单元(事务)。在数据库中,所谓事务是指一组逻辑操作单元,它使数据从一 种状态变换到另一种状态。为确保数据库中数据的一致性,应当用离散的成组的逻辑单元操作数据:当它全部完成时,数 据的一致性可以保持;而当单元中的一部分操作失败时,整个事务会被全部忽略,

quanmang79的专栏 1470

ASP使用事务控制

ASP事务控制功能。IIS通过和MTS服务联系,可以控制多种支持事务的系统,当程序发出“失败”的信号时,所有支持事务的系统均将自动回滚,即使操作已经正式完成;对不支持事务的操作也提供了方便的手工回滚方式: <%@ TRANSACTION = Required %> On Error Resume Next Set Conn=Server.CreateObject("ADODB.Connectio...

weixin_34178244的博客 84

ASP使用事务控制 (转)

ASP使用事务控制 (转)[@more@]作者系2月份微软社区之星microsoft China Community Star 在编程中,经常需要使用事务。所谓事务,就是一系列必须都成功的操作,只要有一步操作失败...

cuiji1279的博客 92

asp使用事务控制

asp使用事务控制,BeginTrans ,CommitTrans ,RollbackTrans BeginTrans - 开始新事务。 CommitTrans - 保存任何更改并结束当前事务。它也可能启动新事务。飞!飞Asp技术乐园 RollbackTrans - 取消当前事务中所作的任何更改并结束事务。它也可能启动新事务。飞飞Asp技术乐园 ‘asp事务处理。‘测试数据库为s...

weixin_34352449的博客 175

asp.net mysql 事务_asp.net教程之在ASP程序中实现数据库事务控制

在编程中,经常需要使用事务。所谓事务,就是一系列必须都成功的操作,只要有一步操作失败,所有其他的步骤也必须撤销。比如用ASP开发一个网络硬盘系统,其用户注册部分要做的事有:将用户信息记入数据库为用户开个文件夹用于存储初始化用户操作日志这三步必须使用事务,否则万一磁盘操作失败,而没有撤销数据库操作,就会造成只能登陆而不能操作的“死用户”现象。由于数据库系统特殊的发展历史,小至Access,大到DB2...

weixin_33916124的博客 172

ASP.Net Core的Filter

ASP.Net Core的Filter

xt13476578035的博客 463

数据库迁移不翻车:golang-migrate 实战,143 个 DDL 有序执行(第97篇-E83)

上一篇 讲了 Agent 怎么测试。但还有一个更基础的问题:数据库 schema 怎么变? 手动跑 SQL 总有人忘了加列、忘了写 down、忘了更新 CI。版本号撞车。dirty 状态没人管。DeepFlux 的答案是:golang-migrate + embed.FS + CI 链守卫 + 哨兵探针。这篇拆解 143 个迁移(000001~000143)是怎么做到不翻车的。

leeyisoft的专栏 188

cpp选手秋招学习笔记 day18

幂等是指一次或多次执行同一个操作,得到的业务结果是相同的,比如对于扣费,客户端因为网络问题重新发出请求,服务端不会进行多次处理,解决方法是可以客户端携带一个独特的唯一的id,然后服务端执行完之后存储这个id,之后新的请求到来比对id。主要是由cpu的内存管理逻辑维护,然后运行时动态的传递给CUDA的kernel,使用的时候传递这个block table,放置在GPU的显存。移动是指把资源的所有者权限转移,原有的变量有效但是状态不确定,赋值是拷贝复制对象,原对象不变。1.什么是幂等,如何保证。

m0_57222081的博客 264

商超智能运营如何落地?从系统架构到实战避坑的完整技术路径

3. **多端交互展示层**:需覆盖顾客使用的**小程序、APP及H5公众号**,以及员工使用的管理后台。答:在应用层引入**适配器模式**。在项目启动时,应强制要求供应商或自研团队产出**部署文档**(含环境变量清单)和**二次开发文档**(含核心流程时序图),确保后续维护不受限于个人。- **多租户插件**:MyBatis Plus的`TenantLineInnerInterceptor`可实现SQL层面的自动拼接`store_id`条件,防止开发者因SQL编写疏漏导致的数据越权。

weixin_56812938的博客 380

基于Python的爱奇艺视频数据可视化分析系统

长视频平台剧集、评分、热度与评论数据体量大、维度多,手工汇总难以快速把握类型结构、口碑分布与主演导演影响力。系统采用 B/S 架构,后端入口为app.py,运行端口8060;数据库使用 MySQL(库名iqiyi),经 PyMySQL 访问。前台基于 Bootstrap 5、本地中的 ECharts 5 与 echarts-wordcloud,配合主题。业务表包括usersdramascommentsfavorites。数据可通过导入,或经/ 相关脚本补充样本。分析层在。

qq_35928134的博客 226

windows版本oracle19c安装教程-新手教程

windows版本oracle19c安装教程-新手教程、oracle19c新手教程 、oracle19c新手安装教程、oracle19c安装教程 windows版本

qq_27076243的博客 173

Oracle迁移到PostgreSQL数据库-FGOracle2PG工具

FGOracle2PG 是一款高性能、高可靠的 Oracle 数据库到 PostgreSQL 数据库迁移工具。它由风哥基于多年数据库运维与迁移实战经验开发。工具采用纯 Python 实现,支持命令行(CLI)与可视化 Web 控制台两种操作方式,能够覆盖从开发测试到生产环境的全场景数据库迁移需求。

风哥oracle/mysql/pg技术教程 181

告别人工盯品:借助 OpenClaw 搭建商品自动监控与数据分析系统(完整实操)

做电商运营,免不了要持续关注自家以及竞品商品状态:价格变动、库存变化、不同规格的售价波动、店铺基础信息更新。很多人最开始的做法就是打开网页,定时手动刷新页面复制数据,一旦要跟踪十几款商品,每天就要消耗大量人力。如果自己写页面解析脚本,又会遇到不少麻烦:网页改版后解析规则直接失效,高频访问容易触发平台风控,多规格、图片、店铺信息的解析逻辑需要大量开发时间,遇到网络波动、商品下架,程序很容易直接报错终止运行。

APItesterCris的博客 165

电商推返模式的技术架构与系统落地实践

成功的电商推返模式系统,本质是。

weixin_42804741的博客 176
上一篇: 在ASP中使用SQL Server和MSDE
julyclyde
博客等级 码龄25年 68粉丝 6原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值