QDataSet – 如何比较两个数据集内容的差异
QDataSet 提供了两个函数来比较两个数据集的差异,并将结果保存到第三个数据集。
procedure Intersect(ASource1, ASource2: TQDataSet; AFields: QStringW);
procedure Diff(ASource1, ASource2: TQDataSet; AFields: QStringW;AIncSource1,AIncSource2:Boolean);
两个函数,其中 Intersect 函数用于取两个数据集中的交集部分,而 Diff 函数用于取两个数据集中不一样的部分。这两个函数的 AFields 用于记录要比较的字段列表,多个字段之间以 “,” 或 “;” 分隔,如果两个数据集中要比较的字段的名称不一致,则使用:
ASource1中的字段名=ASource2中的字段名
这种方式来建立两者之间的映射关系,如果两个字段名不一致,则会取第一个结果集中的字段名为最终结果集的字段名。
在使用这两个函数时,还要注意一点:这两个要比较数据集中对应的字段的类型要保持一致,否则比较无意义,程序会抛出异常。
Intersect 用于计算两个数据集中共同的记录,而 Diff 用于计算两个结果集中不同的记录,但额外提供了两个参数:
- AIncSource1 为 True 时,将 ASource1 中有,而 ASource2 中无的记录加到结果中
- AIncSource2 为 True 时,将 ASoruce2 中有,而 ASource1 中无的记录加到结果中
至于它们的调用方法,So easy!
procedure TForm1.Button1Click(Sender: TObject);
begin
FDest.Diff(FSource1,FSource2,Edit1.Text,CheckBox1.Checked,CheckBox2.Checked);
end; procedure TForm1.Button2Click(Sender: TObject);
begin
FDest.Intersect(FSource1,FSource2,Edit1.Text);
end;
程序实际运行效果截图,CC_1~CC_10 是两者公共的内容。

QDataSet – 如何比较两个数据集内容的差异的更多相关文章
- Beyond Compare 忽略两个文件内容的顺序比较文件内容(xjl456852原创)
有时两个文件内容的顺序是不固定的,对比时需要忽略文件顺序进行对比. 可以这样设置: 点击菜单下面工具栏按钮: 点击Format旁的三角,选择Sorted,就会按文件的顺序排序比较.忽略了文件内容顺序的 ...
- 2017 年 9 月 27 日 js(1.两个select 内容互换 2.单选按钮 同意可点击下一步 3. 全选框)
1.两个select 内容互换 <!DOCTYPE html><html> <head> <meta charset="UTF- ...
- Merkle 树——空间换时间,分而治之的hash表,通过根节点是由它的两个子节点内容的哈希值组成来校验数据完整性,定位篡改的数据位置
Merkle 树 图 1.5.6.1 - Merkle 树示例 默克尔树(又叫哈希树)是一种二叉树,由一个根节点.一组中间节点和一组叶节点组成.最下面的叶节点包含存储数据或其哈希值,每个中间节点是它的 ...
- Js $.merge() 函数(合并两个数组内容到第一个数组)
定义和用法 $.merge() 函数用于合并两个数组内容到第一个数组. 语法 $.merge( first, second ) 参数 描述 first Array类型 第一个用于合并的数组,合并后 ...
- C# 通过比对哈希码判断两个文件内容是否相同
1.使用System.security.Cryptography.HashAlgorithm类为每个文件生成一个哈希码,然后比较两个哈希码是否一致. 2. 在比较文件内容的时候可以采用好几种方法.例如 ...
- python 实现两个文本文件内容去重
实现两个文本内容去重,输出两个文本不重复的结果 两个测试文本内容如下 1.txt中内容为 1 2 3 4 5 6 7 8 2.txt中内容为 1 2 3 4 5 6 7 8 9 10 11 12 13 ...
- .NET CORE下最快比较两个文件内容是否相同的方法
本文因为未考虑磁盘缓存, 结果不是很准确, 更严谨的结果请参看本博文的续集 最近项目有个需求,需要比较两个任意大小文件的内容是否相同,要求如下: 项目是.NET CORE,所以使用C#进行编写比较方法 ...
- Jav获取文件的MD5码,比较两个文件内容是否相同
Jav获取文件的MD5码,比较两个文件内容是否相同 代码: System.out.println(DigestUtils.md5Hex(new FileInputStream(new File(&qu ...
- JavaScript判断两个对象内容是否相等
ES6中有一个方法判断两个对象是否相等,这个方法判断是两个对象引用地址是否一致 let obj1= { a: 1 } let obj2 = { a: 1 } console.log(Object.is ...
随机推荐
- 使用CreateMetaFile创建WMF文件,并转换为EMF文件
#include <iostream> #include <stdio.h> #include <WINDOWS.H> #include <shellapi. ...
- 【Linux学习四】Linux下Vim命令操作
1.Vim介绍 Vim是一个类似于Vi的著名的功能强大.高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性. 第一阶段通过vimtutor的学习,加强vim的熟练度 1.1光标移动 hjkl左 ...
- MySQL--关于MySQL的那些练习题
之前联系了一些MySQL的查询相关知识,现在补充作为一个记录,免得自己忘记. 致谢博主:https://blog.csdn.net/dehu_zhou/article/details/52881587 ...
- JS 全局作用域和局部作用域
一.作用域 1.什么是作用域(Scope) 通常来说,一段程序代码中所用到的名字不总是有效和可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域. JS作用域:就是代码名字(变量)作用的范围 ...
- C# Winform程序之间如何传递和接收参数 Process
Program: static class Program { /// <summary> /// 应用程序的主入口点. /// </summa ...
- 《剑指offer》算法题第四天
今日题目: 二进制中1的个数 数值的整数次方 调整数组顺序使奇数位于偶数前面 链表中倒数第K个节点 链表中环的入口节点 今天的题目都比较简单,但是前三道题都有不同的解法,4,5两题就不在这边讨论了,其 ...
- List集合的三个实现类比较
1. ArrayList 底层数据结构是数组,查询快,增删慢 线程不安全,效率高 2. Vector 底层数据结构是数组,查询快,增删慢 线程安全,效率低 3. LinkedList 底层数据结构是链 ...
- java支持断点续传文件上传和下载组件
java两台服务器之间,大文件上传(续传),采用了Socket通信机制以及JavaIO流两个技术点,具体思路如下: 实现思路: 1.服:利用ServerSocket搭建服务器,开启相应端口,进行长连接 ...
- git介绍以及一些常用命令,加上vim编辑器的简单使用
https://www.jianshu.com/p/04a6517869b4 vim:进入vim编辑器,如果后接文件名,则进入该文件的编辑模式,看图:①.vim编辑器中,按i进入编辑模式:②.按Esc ...
- DVWA--File Inclusion(不能远程包含的问题解决)
然后别以为这样就完了 我被这样坑了一下午 找到你对应版本的php 进去Ctrl+f 搜索url_allow——fopen 和include