ODAC (V9.5.15) 学习笔记(二十一)数据复制
用TVirtualTable在内存中缓存TOraQuery中的数据,主要应用场景是参照其他数据,需要将TOraQuery中的数据复制到TVirtualTable,由于没有类似于TClientDataSet的Data属性,所以只能考虑数据对拷。原来考虑的是通过数据流方式,采用:
ms := TMemoryStream.Create; tryOraQuery1.SaveToXML(ms);VirtualTable1.LoadFromStream(ms);VirtualTable1.Open; finallyms.free; end;
遇到中文内容时,个别情况下会触发解析异常错误,查看XML都很正常,就是有汉字而已,估计是编码问题处理的不好导致。并且字段属性没有被赋值过来,后来改成如下模式:
class function TPublicTools.CopyDataSet(ASourceDataSet : TOraDataSet;ADestDataSet : TVirtualTable): Boolean; vari: Integer; beginResult := False;if not (ASourceDataSet.Active and Assigned(ADestDataSet)) thenExit;//复制数据集 ,其实就这么简单 ADestDataSet.Assign(ASourceDataSet);//开启内存表 ADestDataSet.Open;//处理字段格式for i := 0 to ADestDataSet.Fields.Count -1 dobeginADestDataSet.Fields[i].Visible :=ASourceDataSet.FieldByName(ADestDataSet.Fields[i].FieldName).Visible;ADestDataSet.Fields[i].DisplayLabel :=ASourceDataSet.FieldByName(ADestDataSet.Fields[i].FieldName).DisplayLabel;ADestDataSet.Fields[i].DisplayWidth :=ASourceDataSet.FieldByName(ADestDataSet.Fields[i].FieldName).DisplayWidth;if ADestDataSet.Fields[i] is TFloatField thenTFloatField(ADestDataSet.Fields[i]).DisplayFormat :=TFloatField(ASourceDataSet.FieldByName(ADestDataSet.Fields[i].FieldName)).DisplayFormat;end;Result := ADestDataSet.Active; end;
直接用Assign来实现数据复制,效果很好,其实处理问题应该考虑简单点。
转载于:https://www.cnblogs.com/ChinaEHR/p/4536721.html
ODAC (V9.5.15) 学习笔记(二十一)数据复制相关推荐
- python3.4学习笔记(二十一) python实现指定字符串补全空格、前面填充0的方法
python3.4学习笔记(二十一) python实现指定字符串补全空格.前面填充0的方法 Python zfill()方法返回指定长度的字符串,原字符串右对齐,前面填充0. zfill()方法语法: ...
- Mr.J-- jQuery学习笔记(二十一)--模拟微博页面
先看之前的节点操作方法:Mr.J-- jQuery学习笔记(二十)--节点操作方法 Mr.J-- jQuery学习笔记(五)--属性及属性节点 Mr.J-- jQuery学习笔记(十一)--事件委托 ...
- kvm虚拟化学习笔记(二十一)之KVM性能优化学习笔记
本学习笔记系列都是采用CentOS6.x操作系统,KVM虚拟机的管理也是采用virsh方式,网上的很多的文章都基于ubuntu高版本内核下,KVM的一些新的特性支持更好,本文只是记录了CentOS6. ...
- ODAC(V9.5.15) 学习笔记(三)TOraSession(3)
3. 选项 TOraSession的Options有如下内容 名称 类型 说明 CharLength TCharLength 单个字符的长度,缺省0,表示从服务器获取对应的字符集中单个字符长度 Cha ...
- ODAC(V9.5.15) 学习笔记(十七)主从模式
主从模式(Master/Detail mode)是指建立主表和从表关系的多个数据集集合模式. 1. 关系设置 要设置主从模式,必须有一个主表数据集(TDataSet)和一个从表数据集(TDataSet ...
- ODAC(V9.5.15) 学习笔记(十九)主键值自动生成
ODAC支持通过Oracle的序列来自动生成表的主键功能.这个过程允许在客户端自动完成,不需要过多代码.这个对一些要求自动增长字段做主键的场合非常有用.其实现步骤为: 1.数据库必须先建立生成主键的序 ...
- ODAC(V9.5.15) 学习笔记(四)TCustomDADataSet(1)
1.SQL相关 名称 类型 说明 BaseSQL String 没有被AddWhere.SetOrderBy.FilterSQL等方法处理过的原始SQL语句 FinalSQL String 被AddW ...
- ODAC(V9.5.15) 学习笔记(四)TCustomDADataSet(2)
2.连接相关 名称 类型 说明 Connection 指向一个数据库连接对象 Disconnected 设置为True将在数据库关闭后继续保持数据集的开启状态. 3. 数据获取 名称 类型 说明 Fe ...
- linux驱动开发学习笔记二十一:异步通知
一.异步通知简介 我们首先来回顾一下"中断",中断是处理器提供的一种异步机制,我们配置好中断以后就可以让处理器去处理其他的事情了,当中断发生以后会触发我们事先设置好的中断服务函数, ...
最新文章
- [原]Java 正则 多子串 匹配 替换
- [20150409]只读表空间与延迟块清除.txt
- 小程序访问本地服务器拒绝访问,文件夹拒绝访问的原因与解决办法
- php操作excel表格的导入和导出
- ai人工智能操控什么意思_为什么要建立AI分散式自治组织(AI DAO)
- 【物联网项目系列】——使用netty框架做一个环保hj212协议即时通讯工具(接收解析处理实时数据)
- 导线平差计算软件的NABCD分析
- 车载与体征/手势检测 毫米波雷达信号处理流程
- 宁波市重点首版次软件认定申报,区块链可申请 | 产业区块链发展周报
- 很全的ABAP入门资料
- 修改log4j的日志文件的日志级别
- 某妹游戏登录加密(webpack)
- SpringBoot 启动报错 No property found for type !
- Android默认时区大全
- 【按键精灵】sub子程序、调用子程序
- 01、iphone越狱恢复,去越狱,手机归零
- vscode css智能补全_在 Webstorm 伤透我的心后,我决定尝试 VS Code
- 瑞波加入超级账本区块链联盟
- 周长为定长的所有平面四边形P中,面积最大的为正方形。
- 课程设计:飞机航班信息查询系统
热门文章
- Java 多线程详解(三)------线程的同步
- 利用系统级别的光谱成像技术分析细胞器的互作组学
- python不规则切片_python的切片(slice)机制
- 64位浮点数_浮点数误差
- 数组元素替换_LeetCode基础算法题第183篇:一维数组的重新洗牌
- seo技术_基础知识_网站pr值的意义_日思663.带你入门SEO基础知识
- java lambda表达式详解_java8新特性-Lambda表达式的详解(从0开始)
- php调用视频功能,PHP代码调用示例
- There is insufficient memory for the Java Runtime Environment to continue.
- Opencv使用cv::matchTemplate进行模板匹配