//备注:mysql必须是使用innoDB引擎才支持事务功能,否则以下事务相关代码将失效。//SQL SERVER和Oracle还没试,明天回公司试了再发代码。procedure TForm1.btn1Click(Sender: TObject);
var
i, j: Integer;
begin
UniConnection1.Connect;
try
try
UniTransaction1.Connections[].StartTransaction;
UniQuery1.Params.Clear;
UniQuery1.SQL.Text := 'insert into user (username,password)values(:username, :password)';
UniQuery1.Params.ParamByName('username').Value := 'eboy';
UniQuery1.Params.ParamByName('password').Value := '';
UniQuery1.ExecSQL; //如果不使用事务,这条将插入进去 UniQuery1.Params.Clear;
UniQuery1.SQL.Text := 'insert into user (username,password)values(:username, :password)';
UniQuery1.Params.ParamByName('username').Value := 'frr';
UniQuery1.Params.ParamByName('password').Value := '';
UniQuery1.ExecSQL; //如果不使用事务,这条将插入进去 UniQuery1.Params.Clear;
UniQuery1.SQL.Text := 'insert into user (username,password)values(:username, :password)';
UniQuery1.Params.ParamByName('username').Value := 'lj';
UniQuery1.Params.ParamByName('password').Value := '';
UniQuery1.ExecSQL; //如果不使用事务,这条将插入进去 UniQuery1.Params.Clear;
UniQuery1.SQL.Text := 'insert into user (username,password)values(:username, :password)';
UniQuery1.Params.ParamByName('username').Value := 'lj';
UniQuery1.Params.ParamByName('password').IsNull; //字段设为not null,所以这里会出错
UniQuery1.ExecSQL; //开启事务后,上面的三条都将回滚 UniTransaction1.Connections[].Commit; except on e: Exception do
begin
UniTransaction1.Connections[].Rollback;
ShowMessage(e.Message);
end;
end;
finally
UniConnection1.Disconnect;
end;
end;

mysql + unidac 使用事务例子的更多相关文章

  1. PHP mysql与mysqli事务详解

    官方对PHP连接到MySQL数据库服务器的三种主要的API简介如下: http://php.net/manual/zh/mysqli.overview.php PHP mysql与mysqli事务详解 ...

  2. MySQL配置文件my.cnf 例子最详细翻译

    转的 MySQL配置文件my.cnf 例子最详细翻译,可以保存做笔记用. #BEGIN CONFIG INFO#DESCR: 4GB RAM, 只使用InnoDB, ACID, 少量的连接, 队列负载 ...

  3. 【MySQL】漫谈MySQL中的事务及其实现

    最近一直在做订单类的项目,使用了事务.我们的数据库选用的是MySQL,存储引擎选用innoDB,innoDB对事务有着良好的支持.这篇文章我们一起来扒一扒事务相关的知识. 为什么要有事务? 事务广泛的 ...

  4. MySQL存储过程之事务管理

    原文链接:http://hideto.iteye.com/blog/195275 MySQL存储过程之事务管理 ACID:Atomic.Consistent.Isolated.Durable 存储程序 ...

  5. 漫谈MySql中的事务

    最近一直在做订单类的项目,使用了事务.我们的数据库选用的是MySql,存储引擎选用innoDB,innoDB对事务有着良好的支持.这篇文章我们一起来扒一扒事务相关的知识. 为什么要有事务? 事务广泛的 ...

  6. MySQL中Procedure事务编写基础笔记

    原文:MySQL中Procedure事务编写基础笔记 目录: 一.PROCEDURE: 二.CREATE PROCEDURE基本语法: 三.PROCEDURE小进阶   3.1.基本的DECLARE语 ...

  7. MySql中的事务、JDBC事务、事务隔离级别

    一.MySql事务 之前在Oracle中已经学习过事务了,这个东西就是这个东西,但是在MySql中用法还是有一点不同,正好再次回顾一下. 先看看MySql中的事务,默认情况下,每执行一条SQL语句,都 ...

  8. MySQL四种事务隔离级别详解

    本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB 一.事务的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做 ...

  9. (转)漫谈MySql中的事务

    最近一直在做订单类的项目,使用了事务.我们的数据库选用的是MySql,存储引擎选用innoDB,innoDB对事务有着良好的支持.这篇文章我们一起来扒一扒事务相关的知识. 为什么要有事务? 事务广泛的 ...

随机推荐

  1. 【bzoj5427】最长上升子序列(贪心+LIS)

    题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=5427 因为noip,博客咕了好久,这几天集中填一下坑. 这题我们可以假设往不确定的空位 ...

  2. spark学习14(spark local模式运行spark程序的报错)

    报错1 java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries. 解 ...

  3. 小米智能家居接入智能家居平台homeassistant的方法

    [原文] 在安装和设置完homeassistant之后,我们终于来到激动人心的一步——把智能家居产品接入homeassistant了.把智能家居产品接入homeassistant智能家居平台之后,就可 ...

  4. 完全理解Android中的RemoteViews

    一.什么是RemoteViews RemoteViews翻译过来就是远程视图.顾名思义,RemoteViews不是当前进程的View,是属于SystemServer进程.应用程序与RemoteView ...

  5. http客户端-基于boost开发

    http客户端-基于boost开发 基于BOOST编写的http客户端,作为BOOST开发学习之用.目前支持功能: http协议,单向链接返回http response code 200 可conte ...

  6. BZOJ 1185 [HNOI2007]最小矩形覆盖:凸包 + 旋转卡壳

    题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1185 题意: 给出二维平面上的n个点,问你将所有点覆盖的最小矩形面积. 题解: 先找出凸 ...

  7. C++ 学习使用

    1.C++已经不太建议用#define const用法 定义小函数,不改变内部成员的可以用inline 2.namespace使用 3.C语言预处理 #define这些的使用 #pragma once ...

  8. C#外部类、内部类(嵌套类)之间的成员访问特点

    最近程序中需要用到多线程工作下的单例模式.而其多种实现方法中,利用内部类实现懒汉模式是一种值得推荐的方式.顺便也就对内部类和外部类之间的关系做了一下研究,总结如下(理解不困难,不粘贴代码了,有需要的留 ...

  9. ARM的编程模式和7种模式

    ARM采用的是32位架构 ARM阅读 --Byte:        8   bits --Halfword:  16  bits(2 byte)  半字 --Word:       32  bits( ...

  10. Flask中的session ,自定义实现 session机制, 和 flask-session组件

    session 是基于cookie实现, 保存在服务端的键值对(形式为 {随机字符串:'xxxxxx'}), 同时在浏览器中的cookie中也对应一相同的随机字符串,用来再次请求的 时候验证: 注意 ...