OleVariant的本质
2016-06-29 17:16
183 查看
OleVariant的本质
OleVariant,COM的一种数据类型。MIDAS基于COM之上构建的,自然使用OleVariant作为数据序列格式。
延续到现在最新的DATASNAP仍然支持它。
TClientDataset.data,TClientDataset.delta,这俩个属性
的类型都是OleVariant。
OleVariant可以是string,integer,float...
这个大家都知道,但它也可以是array of OleVariant,这个
可能有人不知道了。明白了这点就是datasnap中间件主从表
数据同步的关键。
var
a: TServerMethods1Client;
V: OleVariant;
i, iCount: Integer;
begin
Result := False;
if not TryConnectAPPServer then
Exit;
a := TServerMethods1Client.Create(SQLConnection1.DBXConnection);
try
iCount := High(TClientDatasetArray);
V := VarArrayCreate([0, iCount], varVariant);
for i := 0 to iCount do
begin
V[i] := null;
if Datasets[i] <> nil then
begin
if Datasets[i].State in [dsInsert, dsEdit] then
Datasets[i].Post;
if Datasets[i].ChangeCount > 0 then
V[i] := CompressData(Datasets[i].Delta);
end;
end;
Result := a.UploadPOSSalesData(V);
http://www.cnblogs.com/hnxxcxg/archive/2013/01/30/2882721.html
OleVariant,COM的一种数据类型。MIDAS基于COM之上构建的,自然使用OleVariant作为数据序列格式。
延续到现在最新的DATASNAP仍然支持它。
TClientDataset.data,TClientDataset.delta,这俩个属性
的类型都是OleVariant。
OleVariant可以是string,integer,float...
这个大家都知道,但它也可以是array of OleVariant,这个
可能有人不知道了。明白了这点就是datasnap中间件主从表
数据同步的关键。
var
a: TServerMethods1Client;
V: OleVariant;
i, iCount: Integer;
begin
Result := False;
if not TryConnectAPPServer then
Exit;
a := TServerMethods1Client.Create(SQLConnection1.DBXConnection);
try
iCount := High(TClientDatasetArray);
V := VarArrayCreate([0, iCount], varVariant);
for i := 0 to iCount do
begin
V[i] := null;
if Datasets[i] <> nil then
begin
if Datasets[i].State in [dsInsert, dsEdit] then
Datasets[i].Post;
if Datasets[i].ChangeCount > 0 then
V[i] := CompressData(Datasets[i].Delta);
end;
end;
Result := a.UploadPOSSalesData(V);
http://www.cnblogs.com/hnxxcxg/archive/2013/01/30/2882721.html
相关文章推荐
- ffmpeg实现录屏+录音
- 自定义View实现渲染
- Spark算子系列文章
- Oracle数据库用户操作和导入导出dmp文件
- android应用内部实现生成桌面快捷方式与进度条控制音量大小
- WebView简洁版
- [iOS]扫码+生成二维码
- jvm中一些有用的系统变量(持续更新)
- 阿里云-DRDS
- new Integer(1)和Integer.valueOf(1)的区别
- sql server 2005导出数据到oracle
- Eclipse注释模板
- C# 字典 Dictionary 转 JSON 格式遍历
- flex盒模型实现头部尾部固定
- 202. Happy Number
- RPM(软件包管理器)-百度百科
- CRC码计算及校验原理的最通俗诠释
- js命名空间
- Android中的“再按一次返回键退出程序”实现
- git积累