DATASNAP多表提交之事务控件之通用方法

ERP系统的单据,总是些主从表结构,有一个主表,N个子表,子表又有子表,形成N层,单据数据提交时,主从表数据都要提交,为了保证数据的完整性,必须提供事务控制,要么都提交成功,有一个提交失败所有的提交都要回滚。看起来是有些难,但我们有OLEVARIANT数组可以利用,解决起来就简单了。上码。

服务端:

function TServerMethods1.SaveDatas(tableNames, deltas: OleVariant;
tableCount: Integer): Boolean;
var
i, errCnt: Integer;
d: TfrmDB;
begin
d := DBPool.Lock;
try
if not d.con.InTransaction then
d.con.StartTransaction; // 开启事务
try
for i := 0 to tableCount - 1 do
begin
d.qry.Close;
d.qry.sql.Clear;
d.qry.sql.Text := ‘select * from ‘ + tableNames[i] + ‘ where 1=2‘;
d.qry.Open;
d.dsp.ApplyUpdates(deltas[i], 0, errCnt);
end;
d.con.Commit; // 提交事务
Result := True;
except
d.con.Rollback; // 回滚事务
Result := False;
end;
finally
DBPool.Unlock(d);
end;
end;

客户端:

SaveDatas(VarArrayOf([‘table1‘,‘table2‘]),VarArrayOf([ClientDataSet1.Delta,ClientDataSet2.Delta]), 2);

时间: 2024-08-24 12:32:31

DATASNAP多表提交之事务控件之通用方法的相关文章

Html5之基础-9 HTML表单、其他控件、其他常用标记

一.表单概述 表单的作用 (1) 表单用于显示.收集信息,并提交信息到服务器 (2) 表单有两个基本部分 - 实现数据交互的可见的界面元素,比如文本框或按钮 - 提交后的表单处理 (3) 页面元素 - 使用 <form> 元素创建表单 - 在 <form> 元素中添加其他表单可以包含的控件元素 如图: 表单元素 <form> (1) 定义表单:使用成对的 <form></form>标记 (2) 主要属性 - action:  定义表单被提交时发生

ExtJS4.2学习(17)表单基本输入控件Ext.form.Field(转)

鸣谢:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-12-11/189.html ------------------------------------------------------------------------------------------- Ext.form.Field是所有表单输入控件的基类,其他的输入控件都是基于Ext.form.Field扩展得来的. Ext.form.Field

ExtJS4.2学习(17)表单基本输入控件Ext.form.Field

Ext.form.Field是所有表单输入控件的基类,其他的输入控件都是基于Ext.form.Field扩展得来的. Ext.form.Field中定义了输入控件通用的属性和功能函数,这些通用的属性和功能函数大致分为3大类:页面显示样式.控件参数配置和数据有效性检验.我们先来看看表单输入控件可以使用的校验显示方式.默认情况下,这些输入控件会监听blur事件,如果数据校验失败,就会根据msgTarget中的设置显示错误信息.通常,msgTarget会被设置为qtip,即使用QuickTip显示错误

(三)关于kendo IU表单form各类控件的数据绑定

=====================input textarea============================= <div id="view"> <input data-bind="value: inputValue" /> <textarea data-bind="value: textareaValue"></textarea> </div> <script&g

[转]html5表单上传控件Files API

表单上传控件:<input type="file" />(IE9及以下不支持下面这些功能,其它浏览器最新版本均已支持.) 1.允许上传文件数量 允许选择多个文件:<input type="file" multiple> 只允许上传一个文件:<input  type="file" single> 2.上传指定的文件格式 <input type="file" accept="im

响应式的账号登录界面模板完整代码,内置form表单和js控件

响应式的账号登录界面模板,内置form表单和js控件 1 <!DOCTYPE html> 2 <html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 3 4 <link type="text/css" rel="styleSheet"

【转载】C#验证控件的使用方法(RegularExpressionValidator)的使用

ControlToValidate="要验证的控件名称" ValidationExpression="验证规则" ErrorMessage="所要显示的错误信息" 在使用RegularExpressionValidator验证控件时的验证功能及其验证表达式介绍如下: 只能输入数字:“^[0-9]*$” 只能输入n位的数字:“^\d{n}$” 只能输入至少n位数字:“^\d{n,}$” 只能输入m-n位的数字:“^\d{m,n}$” 只能输入零和非

C#常用控件属性及方法介绍

C#常用控件属性及方法介绍                                               目录 1.窗体(Form) 2.Label (标签)控件 3.TextBox(文本框)控件 4.RichTextBox控件 5.NumericUpDown控件 6.Button(按钮)控件 7.GroupBox(分组框)控件 8.RadioButton(单选按钮)控件 9.CheckBox(复选框)控件 10.ListBox(列表框)控件 11.ComboBox(组合框)控件

【转】带checkbox的ListView实现(二)——自定义Checkable控件的实现方法

原文网址:http://blog.csdn.net/harvic880925/article/details/40475367 前言:前一篇文章给大家展示了传统的Listview的写法,但有的时候我们并不想在DataHolder类中加一个标识是否选中的checked的成员变量,因为在项目开发中,大部分的ListItemLayout布局都是大家共用的,有些人根本不需要checkbox控件,所以会在初始化的时候把这个控件给隐藏掉,但我们的DataHolder在构造的时候以及ListItemAdapt