181 次浏览【转载需注明来源】
在快码FOF中文编程中,提供了便捷的事务操作功能,例如Sqlite可以参考下述的SQL命令来执行事务:
BEGIN// 开启事务
COMMIT// 提交事务
ROLLBACK// 回滚事务
sqlite事务案例:
sqlite客户端.执行SQL语句_同步("BEGIN;",[],返回的连接ID)
sqlite客户端.执行SQL语句_同步("insert into user(user,password) values('111','3334455')",[],返回的连接ID)
sqlite客户端.执行SQL语句_同步("COMMIT;",[],返回的连接ID)
知识点:sqlite的事务需要自己手动执行回滚,例如:执行COMMIT是提交事务,而执行ROLLBACK是回滚事务
重点知识:
在sqlserver和mysql中,提供了对应的便捷事务功能,例如sqlserver:
sqlserver客户端.事务执行SQL语句((执行状态) => { 调试输出(执行状态) }, [{ sql: 'insert into 测试表(测试,测试2) values(@测试,@测试2)', 参数化: { 测试: "123", 测试2: '1234' } }, { sql: 'insert into 测试表(测试,测试) values(@测试,@测试2)', 参数化: { 测试: "123", 测试2: 12354 } }])
同时也可以进行手动的操作,例如:
同步 sqlserver客户端.事务执行SQL语句_同步([],连接ID,{"类型":"开始事务"})
同步 sqlserver客户端.事务执行SQL语句_同步([],连接ID,{"类型":"保存事务"})
同步 sqlserver客户端.事务执行SQL语句_同步([],连接ID,{"类型":"回滚事务"})
例如:
局部变量 连接ID = sqlserver客户端.连接sqlserver(
异步 (连接状态) => {
同步 sqlserver客户端.事务执行SQL语句_同步([],连接ID,{"类型":"开始事务"})
同步 sqlserver客户端.执行SQL语句_同步("insert into 测试表(测试,测试2) values(@测试,@测试2)", { 测试: "123", 测试2: "1234" }, 0);
同步 sqlserver客户端.执行SQL语句_同步("insert into 测试表(测试,测试2) values(@测试,@测试2)", { 测试: "1235", 测试2: "12364" }, 0);
同步 sqlserver客户端.执行SQL语句_同步("insert into 测试表(测试,测试2) values(@测试,@测试2)", { 测试: "1723", 测试2: "12734" }, 0);
同步 sqlserver客户端.事务执行SQL语句_同步([],连接ID,{"类型":"回滚事务"})
},
"链接地址",
"数据库账号",
"数据库连接密码",
"数据库名称",
1433,
20
);
上面是同步操作;当然也可以异步操作【但需要注意的是,异步操作下需要在回调事件中进行SQL的处理;同时SQL的处理也需要进行同步操作】:
sqlserver客户端.事务执行SQL语句(
异步 (执行状态) => {
调试输出(执行状态);
同步 sqlserver客户端.执行SQL语句_同步("insert into 测试表(测试,测试2) values(@测试,@测试2)", { 测试: "123", 测试2: "1234" }, 0);
同步 sqlserver客户端.执行SQL语句_同步("insert into 测试表(测试,测试2) values(@测试,@测试2)", { 测试: "1235", 测试2: "12364" }, 0);
同步 sqlserver客户端.执行SQL语句_同步("insert into 测试表(测试,测试2) values(@测试,@测试2)", { 测试: "1723", 测试2: "12734" }, 0);
sqlserver客户端.事务执行SQL语句((执行状态) => {调试输出(执行状态);},[],0,{"类型":"保存事务"});
},
[],
0,
{"类型":"开始事务"}
);
MYSQL事务:
上面介绍了SqlServer的事务操作方法,这里再来介绍一下Mysql的事务操作方法,mysql与sqlserver的操作方法一样; 下面展示一下用法:
便捷用法:
mysql客户端.事务执行SQL语句_同步([{sql:"",values: []},{sql:"",values: []}])
手动事务用法:
mysql客户端.事务执行SQL语句(异步 (状态) =>
{
调试输出(状态);
同步 mysql客户端.执行SQL语句_同步("insert into tablelist(姓名,年龄,口头禅) values('11','22','33')");
同步 mysql客户端.执行SQL语句_同步("insert into tablelist(姓名,年龄,口头禅) values('11','22','33')");
mysql客户端.事务执行SQL语句((状态) => {调试输出(状态);},[],连接ID,{ "类型": "回滚事务" });
},[],连接ID,{ "类型": "开始事务" });
值得注意的是,mysql的手动事务不支持同步命令,也就是不能使用“mysql客户端.事务执行SQL语句_同步”这个命令来进行手动事务操作。
测试账号
快码FOF编程 Time: 2023-08-21 11:22:59
评论ID
sql事务的通用处理方案
快码FOF编程 Time: 2023-09-01 16:41:28
评论ID
事务通用方案来了
快码FOF编程 Time: 2024-03-19 16:18:32
评论ID
博客已更新,目前是最终解决方案