TQConverter 在 QDB 中占据了重要的位置,它是数据与数据流之间的格式转换器,它的用途在于: 利用 TQDataSet 的 LoadFromStream/LoadFromFile 函数将数据从文件或流中加载到 TQDataSet 数据集对象 利用 TQDataSet 的 SaveToStream/SaveT
分类: QDB
QDataSet – 导入与导出数据
QDataSet 的导入与导出数据功能终于开工了!通过它,你可以将数据保存到流或者文件中,也可以从文件或流中加载数据。 QDataSet 将数据保存到流的函数 SaveToStream ,保存到文件的函数为 SaveToFile,我们看一下它们声明: procedure SaveToStream(AStream: TS
QDataSet 枚举一到多个字段组合的所有值
我们在许多时候,需要从数据集中将一组值传递给一个列表框供用户选择。而实现这一方式的基本算法都是遍历并去重,QDataSet 提供 EnumValues 函数来完成这一功能: function EnumValues(const AFields: QStringW; AList: TStrings;AValueDelimi
QDataSet 生成交叉数据函数 Cross 说明
我们在许多时候,通过脚本从数据库查询出来的统计结果集是面向行的,而实际报表却是面向列。我们不得不自己实现它的行列置换操作。 QDataSet 提供了一个全新的 Cross 函数来完成这一功能: procedure Cross(AColField, AKeyField, AValueField, AKeyName: QS
QDataSet – 从另一个数据集中合并内容到当前数据集
QDataSet 提供了一个 Merge 函数用于将一个数据集中的数据合并到已有的数据集中。利用它,可以实现渐进式刷新数据的效果: 首先,我们可以取一部分数据显示给用户,然后在用户需要时,再取一部分数据,然后合并到前面的结果集中显示给用户,这样子就可以实现数据的增量合并。 我们来看下函数声明: function Mer
QDataSet – 如何比较两个数据集内容的差异
QDataSet 提供了两个函数来比较两个数据集的差异,并将结果保存到第三个数据集。 procedure Intersect(ASource1, ASource2: TQDataSet; AFields: QStringW); procedure Diff(ASource1, ASource2: TQDataSet;
QDataSet – 使用 MarkStatus 函数来修改记录状态
QDataSet 提供了一个 MarkStatus 函数,它的作用是将指定的记录标记为特定的状态(新增、删除、未变更)。它可以在与 Provider 相连时,直接标记记录的状态,并提交结果到相应的数据库中。比如,我们将一个数据集所有的记录标记为 usInserted ,然后调用 ApplyChanges 将数据集所有的
QDataSet – 克隆和复制数据详解
QDataSet 提供了克隆( Clone ) 和 复制 (CopyFrom) 两个方法来从另一个数据集中创建一个数据集内容的拷贝。但 Clone 和 CopyFrom 方法的主要区别在于: Clone 是创建了一个对源数据集的引用,克隆实际上相当于创建了一组新的游标,来指向原来的数据集,您可以对这个克隆后的数据集进
QDataSet 在打开数据集后动态增删字段
QDataSet 根据群友的建议,加入了允许动态增删字段的功能。先看下动态添加的效果: 而动态添加字段的代码相当简单,只需要像下面一样即可(和在非活动数据集上创建字段完全一样): FDataSet.FieldDefs.Add(‘Scale’, ftFloat); 而删除字段实际上也只需要一句话: FDataSet.Fi
QDataSet 的 Locate 系列函数使用详解
QDataSet 增强了 TDataSet 的 Locate 功能,以方便大家使用。与 TDataSet 相比,QDataSet 提供的是一组 LocateXXX ,我们在此做一个介绍,首先来看一下函数声明: ///<summary>定位到下一条符合条件的记录</summary> ///<
QDB 专题 – 跨平台的数据库直接访问组件
QDB 用于提供一套开源的跨平台数据库直接访问解决方式,计划支持 SQLite、 PostgreSQL、MSSQL、Oracle、MySQL 等常见数据库在跨平台直接访问。同时提供的 TQDataSet 会提供丰富复制、克隆、过滤、分组、导入、导出等接口的支持。目前处于开发中,欢迎各位的使用和测试。本专题用于将本网站中
通过 TQDataSet.OnCustomSort 属性来按拼音排序
TQDataSet 新提供了一个 OnCustomSort 属性,用于让用户指定自己的排序规则。如果设置了 OnCustomSort 事件的值,则 TQDataSet 会调用 OnCustomSort 事件来获取两条记录的比较结果。下面是一个在 Windows 下按拼音排序的例子: //按拼音比较两条记录的大小 pro
[QDB] TQDataSet 过滤表达式支持的操作符详解
TQDataSet 的 Filter 属性相比系统自带的数据表组件过滤表达式,进行了很大的增强,以方便用户使用。它支持以下操作符: 常见的比较操作:=、>、>=、<、<=、!=、<>,其中 != 和 <> 等价,代表不等于 模糊匹配操作:*、!*、like、nlike 分
[QDB] QDataSet 的排序表达式详解
QDataSet 支持通过设置 Sort 属性指定排序规则,它支持的基本语法格式为: 字段名1 [ASC|IASC|NASC|NIASC|DESC|IDESC|NDESC|NIDESC][[,|;] 字段名2…] 字段名后面的排序顺序关键词可以省略,如果省略则按升序区分大小写排序,而这些关键词本身不区分大小
[QDB] QDataSet 做为内存表使用时插入性能测试
这个测试是直接测试不同类型的插入速度对比,比较了几个手头上大家提供的组件: [插入测试] 整数类型测试: QDAC:750ms,FireDAC:172ms,ADO:1656ms,KBM:157ms,CDS:1703ms 双精度浮点类型 QDAC:750ms,FireDAC:157ms,ADO:1593ms,KBM:14
[PostgreSQL] – 服务器端通知
PostgreSQL 支持从服务器端向客户端主动推送通知信息,前提是客户端监听指定名称的通知。这样做的好处是客户端可以监测服务器端的数据改变,以便更新本地的数据等行为,尤其是适合字典类型的数据及时更新。 首先,客户端使用 Listen 指令来通知服务器自己要监听的通知的名称。然后一旦有人触发了这个通知(如果触发是在事务
QDB.QDataSet.Merge函数功能需求说明
QDataSet 支持合并相同的结构的不同结果集,这一功能透过函数Merge来实现。 procedure Merge(const ACmdText:QStringW;AMethod:TQDataMergeMethod;AWait:Boolean); procedure Merge(ADataSet:TQDB;AMeth
QDB.TQDBProvider接口设计
下图是QDB中与负责与数据库连接的数据提供者对象的接口定义,UML 文件为 StartUML 的格式,如有需要,请在 QQ群 联系。 【简介】 TQDBProvider用于建立数据集和数据库之间的桥梁及辅助功能。TQDBProvider提供的接口类别主要有: 1、属性 ProviderName ̵