博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
中间件的一些方法定义
阅读量:5172 次
发布时间:2019-06-13

本文共 2496 字,大约阅读时间需要 8 分钟。

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;

转载于:https://www.cnblogs.com/hnxxcxg/p/4050461.html

你可能感兴趣的文章
软件工程
查看>>
http协议
查看>>
js替换问题replace和replaceAll
查看>>
c++11 : range-based for loop
查看>>
中国农历2013,2014 (zz.IS2120@BG57IV3)
查看>>
用virtualenv建立独立虚拟环境 批量导入模块信息
查看>>
Sublime Text3 插件:convertToUTF8
查看>>
BZOJ4060 : [Cerc2012]Word equations
查看>>
hdu2089不要62(数位dp)
查看>>
JAVA输出最大值和最小值
查看>>
64位weblogic11g安装
查看>>
oracle、mysql、sql server等;流行数据库的链接驱动配置
查看>>
UvaLive 6664 Clock Hands
查看>>
PCB 周期计算采用 SQL 函数调用.net Dll 标量函数 实现
查看>>
Problem B: 取石子
查看>>
dbflow 批量 增删查改
查看>>
Mybatis常见配置错误总结
查看>>
Python学习笔记001——Linux
查看>>
Vue: 常用指令
查看>>
Asp.Net中的跨平台的
查看>>