文档章节

通用的咏南数据序列、还原类

o
 osc_y8yehimr
发布于 2019/03/20 11:52
字数 372
阅读 22
收藏 0

精选30+云产品,助力企业轻松上云!>>>

通用的咏南数据序列、还原类

1)支持DELPHI7及以上版本,更低DELPHI版本没有测试,理论上也支持

2)跨平台:支持WIN32,WIN64,LINUX,MACOS,安卓、IOS

3)支持所有的DELPHI SOCKET控件

4)支持STRING、INTEGER、DATATIME、BOOLEAN等基本数据类型的序列和还原

5)支持文件、流、数据集、BUFFER、结构体等复杂数据类型的序列和还原

6)支持多数据集的序列和还原

 

下面演示如何使用。

1)DATASNAP演示

function TServerMethods1.Query99(const accountNo, sql: string): string;
var
  d: TfrmDB;
  pool: TDBPool;
  serial: TynSerial;
begin
  Result := null;
  if (accountNo = '') or (sql = '') then
    Exit;
  pool := GetDBPool(accountNo);
  if not Assigned(pool) then
    Exit;
  d := pool.Lock;
  if not Assigned(d) then
    Exit;
  serial:= TynSerial.Create;
  try
    try
      SetTraceOn(d);
      d.qryOpen.Close;
      d.qryOpen.sql.Clear;
      d.qryOpen.sql.Text := sql;
      d.qryOpen.Open();
      serial.WriteFDDataSet(d.qryOpen);
      serial.WriteString('str', 'test');
      serial.WriteDateTime('time', Now);
      serial.WriteOleVariant('ole', d.dsp.Data);
      Result := serial.Text;
    except
      on e: Exception do
      begin
        Result := null;
        Log.WriteLog('TServerMethods1.QuerySql ' + e.Message);
      end;
    end;
  finally
    d.qryOpen.Close;
    pool.Unlock(d);
    serial.Free;
    SetTraceOff(d);
  end;
end;

  2)MORMOT演示

class function Tmymethod.querys2(const str: string): string;
// clientdataset主从表查询
var
  pool: TDBPool;
  dm: TfrmDB;
  serial: TynSerial;
  accountno, sql, sql2: string;
begin
  serial := TynSerial.Create;
  try
    try
      serial.Text := str;
      accountno := serial.ReadString('accountno');
      sql := serial.ReadString('sql');
      sql2 := serial.ReadString('sql2');
      serial.Text := '';
      pool := GetDBPool(accountno);
      dm := pool.Lock;

      dm.qryOpen.Close;
      dm.qryOpen.sql.Clear;
      dm.qryOpen.sql.Add(sql);
      serial.WriteOleVariant('dataset', dm.dsp.Data);

      dm.qryOpen.Close;
      dm.qryOpen.sql.Clear;
      dm.qryOpen.sql.Add(sql2);
      serial.WriteOleVariant('dataset2', dm.dsp.Data);

      Result := serial.Text;
    except
      on E: Exception do
      begin
        Result := '';
        Log.WriteLog('Tmymethod.querys ' + E.Message);
      end;
    end;
  finally
    pool.unlock(dm);
    serial.Free;
  end;
end;

  3)CROSS SOCKET演示

function TynFiredac.QuerySQL(const ASQL: string): string;
var
  serial: TynSerial;
begin
  Result := '';
  if ASQL = '' then
    Exit;
  serial := TynSerial.Create;
  try
    try
      FDQuery1.Close;
      FDQuery1.SQL.Clear;
      FDQuery1.SQL.Add(ASQL);
      FDQuery1.Open;
      serial.WriteFDDataSet('dataset', FDQuery1);
      Result := serial.Text;
    except
      on E: Exception do
      begin
        Result := '';
        Log.WriteLog('TynFiredac.QuerySQL ' + E.Message);
      end;
    end;
  finally
    FDQuery1.Close;
    FDConnection1.Close;
    serial.Free;
  end;
end;

  

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
TynSerial自定义对象的序列(还原)

TynSerial自定义对象的序列(还原) TynSerial是咏南中间件封装的支持数据二进制序列(还原)的类。 对于ORM来说,序列类必须序列(还原)自定义对象。 1)定义一个自定义对象 type{$M+} //...

osc_kd43hwzg
2019/06/04
3
0
咏南中间件统一的数据序列(还原)类

咏南中间件统一的数据序列(还原)类 1)支持DELPHI7及以上版本(已测试通过),更低DELPHI版本,有待测试,理论上也是能够支持的 2)支持序列/还原的基本类型包括:string, integer, bool, da...

osc_w6kvmckv
2019/02/28
4
0
咏南中间件JSON序列类

咏南中间件JSON序列类 1)支持跨平台、跨语言 2)支持主从表数据序列、还原,支持任意数量的表 主从表数据序列为JSON字符串样式: {"rows": [{"FDBS": {"Version": 15,"Manager": {"Updates......

osc_2hu29vz2
2019/04/01
4
0
咏南数据序列(还原)类

咏南数据序列(还原)类 支持序列(还原)的类型:除了支持所有基本的数据类型(integer, string, datetime, date, time,float),还支持 对象、结构体、数据集数据 1)不基于任何三方商业控件...

osc_kh53eyum
2019/02/19
0
0
clientdataset(fdmemtable).delta(data)序列为JSON

clientdataset(fdmemtable).delta(data)序列为JSON clientdataset和fdmemtable,都是DELPHI官方提供的内存表控件,许多的3层客户端都使用它们作数据集,因为3层客户端需要内存表数据集。 cl...

osc_omyprm56
03/20
8
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux系统检查用户账户到期时间

如果你在 Linux 上启用了密码策略。密码必须在到期前进行更改,并且登录到系统时会收到通知。如果你很少使用自己的帐户,那么可能由于密码过期而被锁定。在许多情况下,这可能会在无需密码登...

老孟的Linux私房菜
7分钟前
0
0
关于南京哪里有开餐饮费发票?

关于南京哪里有开餐饮费发票?聚焦餐饮行业,谈话〖18 7一電一7 5 3 8一徴一3331〗研究院昨发布数据显示,今年上半年,全国餐饮行业招聘需求增长46.18%,平均月薪6387元.随着餐饮行业的快速...

点击fojewio
39分钟前
7
0
android studio 4.0 打开DDMS

1、先找到AndroidStudio配置的SDK路径; 2、在SDK的/tools/路径下有个monitor.bat 的批处理文件; 3、鼠标连续点击两下monitor.bat这个批处理文件,在屏幕上会打开一个类似CMD的命令行中输入...

chenhongjiang
42分钟前
10
0
如何在Android中使用SharedPreferences来存储,获取和编辑值

问题: Closed . 已关闭 。 This question needs to be more focused. 这个问题需要更加集中。 It is not currently accepting answers. 它当前不接受答案。 Learn more . 了解更多 。 Want...

fyin1314
51分钟前
6
0
【JDK1.8】LinkedList源码分析

LinkedList的特性 LinkedList内部使用双向链表作为存储结构,LinkedList可以理解为链表的扩展对象,封装了常用的和非常用的操作链表的方法。以及在通过索引获取元素时的简单优化,通常Linke...

XuePeng77
今天
30
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部