中间件的一些方法定义

function TServerMethods1.ExecuteSql(const sql: String): Boolean;
var
d: TfrmDB;
begin
d := DBPool.Lock;
if Assigned(d) then
begin
try
try
d.qry.Close;
d.qry.sql.Clear;
d.qry.sql.Text := sql;
d.qry.ExecSQL;
Result := true;
except
on e: Exception do
begin
Result := false;
Log.WriteLog(‘TServerMethods1.ExecuteSql ‘ + e.Message);
end;
end;
finally
DBPool.Unlock(d);
end;
end
else
begin
Result := false;
end;
end;

function TServerMethods1.QuerySql(const sql: String): OleVariant;
var
d: TfrmDB;
begin
d := DBPool.Lock;
if Assigned(d) then
begin
try
try
d.qry.Close;
d.qry.sql.Clear;
d.qry.sql.Text := sql;
d.qry.Open;
Result := d.dsp.Data;
except
on e: Exception do
begin
Result := null;
Log.WriteLog(‘TServerMethods1.QuerySql ‘ + e.Message);
end;
end;
finally
DBPool.Unlock(d);
end;
end
else
begin
Result := null;
end;
end;

function TServerMethods1.QuerySql2(const sql: string): TFDJSONDataSets;
var
d: TfrmDB;
begin
d := DBPool.Lock;
if Assigned(d) then
begin
try
try
d.qry.Close;
d.qry.sql.Clear;
d.qry.Open(sql);
Result := TFDJSONDataSets.Create;
TFDJSONDataSetsWriter.ListAdd(Result, d.qry);
except
on e: Exception do
begin
Result := nil;
Log.WriteLog(‘TServerMethods1.QuerySql2 ‘ + e.Message);
end;
end;
finally
DBPool.Unlock(d);
end;
end
else
Result := nil;
end;

function TServerMethods1.SaveData(const tableName: String;
delta: OleVariant): Boolean;
var
d: TfrmDB;
errCnt: Integer;
begin
d := DBPool.Lock;
if Assigned(d) then
begin
try
try
d.qry.Close;
d.qry.sql.Clear;
d.qry.sql.Text := ‘select * from ‘ + tableName + ‘ where 1=2‘;
d.qry.Open;
d.dsp.ApplyUpdates(delta, 0, errCnt);
if errCnt = 0 then
Result := true
else
Result := false;
except
on e: Exception do
begin
Result := false;
Log.WriteLog(‘TServerMethods1.SaveData ‘ + e.Message);
end;
end;
finally
DBPool.Unlock(d);
end;
end
else
begin
Result := false;
end;
end;

function TServerMethods1.SaveData2(const tableName: string;
delta: TFDJSONDeltas): Boolean;
var
d: TfrmDB;
LApply: IFDJSONDeltasApplyUpdates;
begin
d := DBPool.Lock;
if Assigned(d) then
begin
try
try
d.qry.Close;
d.qry.sql.Clear;
d.qry.sql.Text := ‘select * from ‘ + tableName + ‘ where 1=2‘;
d.qry.Open;
LApply := TFDJSONDeltasApplyUpdates.Create(delta);
LApply.ApplyUpdates(tableName, d.qry.Command);
Result := LApply.Errors.Count = 0;
except
on e: Exception do
begin
Result := false;
Log.WriteLog(‘TServerMethods1.SaveData2 ‘ + e.Message);
end;
end;
finally
DBPool.Unlock(d);
end;
end
else
Result := false;
end;

时间: 2024-10-05 15:20:38

中间件的一些方法定义的相关文章

C# 方法定义,return的使用方法

1.goto语句 lable:标签goto lable;//跳转到标签处 2.常量 const 数据类型 常量名=值;a.声明的同时必须赋值b.不允许重复赋值c.常量名用全大写 3.方法定义方法:访问修饰符 可选修饰符 返回类型 方法名(参数列表){方法体} 访问修饰符:private(私有的)public(公有的)可选修饰符:static(静态的)abstract(抽象的)virtual(虚方法)override(重写)sealed(密封)返回类型:void.数据类型方法名:帕斯卡命名法(每个

004.参数、方法定义

1.goto语句 lable:标签goto lable;//跳转到标签处 2.常量 const 数据类型 常量名=值;a.声明的同时必须赋值b.不允许重复赋值c.常量名用全大写 3.方法定义方法:访问修饰符 可选修饰符 返回类型 方法名(参数列表){方法体} 访问修饰符:private(私有的)public(公有的)可选修饰符:static(静态的)abstract(抽象的)virtual(虚方法)override(重写)sealed(密封)返回类型:void.数据类型方法名:帕斯卡命名法(每个

将 main 方法定义为:public static void main(String[] args)的理由

1.没有public修饰符或者其他修饰符 错误: 在类...中找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args) 否则 JavaFX 应用程序类必须扩展javafx.application.Application 2.没有static 错误: main 方法不是类 ... 中的static, 请将 main 方法定义为: public static void main(String[] args) 3.返回值不是v

(原创)c#学习笔记10--定义类成员05--部分方法定义

10.5  部分方法定义 部分类也可以定义部分方法.部分方法在部分类中定义,但没有方法体,在另一个部分类中包含实现代码.在这两个部分类中,都要使用partial关键字. public partial class MyClass { partial void MyPartialMethod(); } public partial class MyClass { partial void MyPartialMethod() { // Method implementation } } 部分方法也可以

在java中为什么要把main方法定义为一个static方法?

我们知道,在C/C++当中,这个main方法并不是属于某一个类的,它是一个全局的方法,所以当我们执行的时候,c++编译器很容易的就能找到这个main方法,然而当我们执行一个java程序的时候,因为java都是以类作为程序的组织单元,当我们要执行的时候,我们并不知道这个main方法会放到哪个类当中,也不知道是否是要产生类的一个对象,为了解决程序的运行问题,我们将这个main方法定义为static,这样的话,当我们在执行一个java代码的时候,我们在命令提示符中写:java Point(Point为

面向对象(类,实例变量,方法定义,方法重载,构造方法,this,string类)

面向对象 类是由属性和方法组成 类是所有创建对象的模板 实例变量有默认值 实例变量至少在本类范围中有效 实例变量与局部变量冲突时,局部变量优先 类中方法定义类似于函数定义 修饰符 返回值类型 方法名(参数1,参数2) 异常{ 方法体 } 方法重载 参数个数不同 参数类型不同 参数类型相同但是顺序不同 传入参数的不同自动选取相应方法:典型例子system.out.println(整形,字符串等); 构造方法 1.构造方法无返回值 2.不定义的情况下,有默认的空构造方法 3.在对象构造时,被自动调用

错误: 在类 com.zs.container.CollectionData 中找不到主方法, 请将主方法定义为: public static void main(String[] args)

错误: 在类 com.zs.container.CollectionData 中找不到主方法, 请将主方法定义为: public static void main(String[] args) package com.zs.container; import java.util.ArrayList; import com.java.array.generator.CountingGenerator.String; import com.java.array.generator.CountingG

关于“幽灵架构”的补充说明1:协议中的方法定义

承接上一篇博文,上一篇的篇幅有点太长了,我觉得有一些相关的技术点需要说明,所以重新写几篇博文.这个系列的文章将要说明以下几个问题: 1.giveData和getData在各自协议中的位置 2.使用struct代替class的好处 3."幽灵架构"为什么不会产生循环引用 4.协议的应用场景与局限性 5.运用面向协议编程思想改造控制器 让我们来简单回顾下这个架构,如果不明白的可以参考上一篇博文: 核心只有两个协议: //视图使用的协议 protocol ViewType{ func get

Spring Data JPA方法定义规范

Spring Data Jpa方法定义的规则: (1)简单条件查询 简单条件查询:查询某一个实体类或者集合. 按照Spring Data的规范的规定,查询方法以find | read | get开头,涉及查询条件时,条件的属性用条件关键字连接,要注意的是:条件属性以首字母大写. 例如:定义一个Entity实体类: classPeople{ private String firstName; private String lastName; } 以上使用and条件查询时,应这样写:findByLa