三层中如何在服务器与客户端之间传输自定义的'Record'类型数据的例子

Delphi自定义数据传输
本文介绍了一种在Delphi中实现服务器与客户端间自定义'Record'类型数据传输的方法。通过定义TARec记录类型,并提供了两种转换函数,实现记录类型与变体之间的相互转换。
 

博主自写的三层中如何在服务器与客户端之间传输自定义的'Record'类型数据的例子。

效果图如下:

点击在新窗口中浏览此图片

例子源码下载:http://Delphi盒子上还未审核。现在已审核!下载地址为:http://sd.2ccc.com/downloads/simples/database/xieyunc_RDMRecordDemo.rar

csdn已审核了:http://download1.youkuaiyun.com/down3/20070320/20145824710.rar

关键代码:

/*================================================ 单元名称:Comm 单元功能:定义了一个记录类型TARec,这一文件Server和Client中都要引用 作者:小宇飞刀(http://xieyunc.blog.163.com/) 修改日期:2007-03-20 13:56:39 ================================================*/ unit Comm; interface uses SysUtils,Variants; type TARec=Record //自定义的记录类型 Name:ShortString; Age:ShortInt; end; function RecordToVariant(value:TARec):OleVariant; //有问题,好象只能传递第一个成员的值 function VariantToRecord(value:OleVariant):TARec; //有问题 function RecordToVariant2(aRec:TARec):OleVariant;//Writed by 小宇飞刀(xieyunc) function VariantToRecord2(vData:OleVariant):TARec;//Writed by 小宇飞刀(xieyunc) implementation // TARec ---> Variant function RecordToVariant(value:TARec):OleVariant; var P:Pointer; ii:Integer; begin ii := sizeof(TARec); Result := VarArrayCreate([0,ii],varByte); P := VarArrayLock(Result); Move(value,P^,sizeof(P)); VarArrayUnlock(Result); end; // OleVariant ----> TARec function VariantToRecord(value:OleVariant):TARec; var P:Pointer; ii:Integer; begin ii := sizeof(TARec); P:= VarArrayLock(value); Move(P^,Result,ii); VarArrayUnlock(value); end; function RecordToVariant2(aRec:TARec):OleVariant;//Writed by 小宇飞刀(xieyunc) begin Result:=VarArrayCreate([0,1],VarVariant); Result[0] := aRec.Name; Result[1] := aRec.Age; end; function VariantToRecord2(vData:OleVariant):TARec;//Writed by 小宇飞刀(xieyunc) begin if VarIsArray(vData) then begin Result.Name := vData[0]; Result.Age := vData[1]; end; end; end.

转载于:https://www.cnblogs.com/xieyunc/archive/2009/04/27/9126742.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值