通用的咏南数据序列、还原类
通用的咏南数据序列、还原类
1)支持DELPHI7及以上版本,更低DELPHI版本没有测试,理论上也支持
2)跨平台:支持WIN32,WIN64,LINUX,MACOS,安卓、IOS
3)支持所有的DELPHI SOCKET控件
4)支持STRING、INTEGER、DATATIME、BOOLEAN等基本数据类型的序列和还原
5)支持文件、流、数据集、BUFFER、结构体等复杂数据类型的序列和还原
6)支持多数据集的序列和还原
下面演示如何使用。
1)DATASNAP演示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | 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演示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | 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演示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | 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; |
本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/p/10564002.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2018-03-20 解决delphi10.2.3 android tools闪退
2015-03-20 同城购