Delphi 变体数组 Dataset Locate 查找定位
Format 函数
Delphi 支持“开参数”和动态数组,变体数组,使用时的语法类似 Delphi 中的集合:采用两个方括号把不同类型的变量括起来(这太方便了啊),也可以采用声明一个 TVarRec 类型的数组来容纳不同的类型变量(具体请参阅其帮助文档)
Format函数声明比较
function Format(const Format: string; const Args: array of const): string; overload;
extern DELPHI_PACKAGE UnicodeString __fastcall Format(const UnicodeString Format, TVarRec const *Args, const int Args_High)/* overload */;
C++Builder 中,没有像 Delphi 中的那中语法特性,BCB 中的 Format 函数其第一个参数与 Delphi 的 Format
是类似的(一个格式化描述字符串),而后面有两个参数,第二个参数是一个 TVarRec
类型的数组指针,第三个参数是这个数组的最后一个元素的索引值!因为 C++
不支持动态数组语法,也没有什么“开参数”之类的怪异特性,所以当你传递数组时,你必须同时传递数组的大小(Format
要求的是数组的最后一个元素的索引值,因此大同小异)。刚才我说过,在 Delphi 中也可以用 TVarRec
数组代替方括号的方法,其实本质是一样的。当然了,在 C++Builder 中,我们没有必要在每次使用 Format 函数时都先声明一个
TVarRec 数组,然后再把要用于输出的变量赋给 TvarRec 数组的每一个元素,最后还要传递 TVarRec
数组的最后元素索引。其实,我们可以使用一个 C++Builder 预先声明好的宏 ARRAYOFCONST,直接传入要格式化输出的变量
C++builder中的Format函数ARRAYOFCONST参数
Format( "My name is %s, I'm %d years old.", ARRAYOFCONST(("Phoenix2000", 22)) ); //注意两个括号
FDQuery1.Open函数声明比较
procedure TFDRdbmsDataSet.Open(const ASQL: String; const AParams: array of Variant);
FDQuery1.Open('select * from tt where id=:id',[0]);
HIDESBASE void __fastcall Open(const UnicodeString ASQL, Variant const *AParams, const int AParams_High)/* overload */;
Variant locvalues[1];
locvalues[0] = Variant("01");
FDQuery1->Open("select * from table where id=:id", locvalues, 0);
TCustomDataSet.Locate函数声明比较
Delphi
function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): Boolean; override;
CustTable.Locate('Company;Contact;Phone', VarArrayOf(['Sight Diver', 'P', '408-431-1000']), [loPartialKey]);
CustTable.Locate('ID', 1001, []);
C++
virtual bool __fastcall Locate(const UnicodeString KeyFields, const Variant &KeyValues, TLocateOptions Options); 三个字段搜索
TLocateOptions Opts;
Variant locvalues[3];
locvalues[0] = Variant("Sight Diver");
locvalues[1] = Variant("P");
locvalues[2] = Variant("408-431-1000");
CustTable->Locate("Company;Contact;Phone", VarArrayOf(locvalues, 2), Opts); 二个字段搜索
Variant locvalues[2];
locvalues[0] = Variant("Sight Diver");
locvalues[1] = Variant("P");
CustTable->Locate("Company;Contact", VarArrayOf(locvalues, 1), TLocateOptions());
一个字段搜索
FDMemTable1->Locate("fieldName", strVar, TLocateOptions());
Delphi 变体数组 Dataset Locate 查找定位的更多相关文章
- Delphi结构体数组指针的问题
//这段代码在Delphi 2007和delphi 7下是可以执行的,所以正确使用结构体数组和指针应该是这样的,已验证 unit Unit1; interface uses Windows, Mess ...
- 【Visual Lisp】变体与安全数组
(vlax-make-variant) ;;创建一个未初始化的变体 ;;01.整型值变体(setq myvar (vlax-make-variant 10)) ;;创建整型值变体,返回 #<va ...
- 二分查找及几种变体的Python实现
1. 在不重复的有序数组中,查找等于给定值的元素 循环法 def search(lst, target): n = len(lst) if n == 0: return -1 low = 0 high ...
- 二叉查找树及B-树、B+树、B*树变体
动态查找树主要有二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree), 红黑树 (Red-Black Tree ), 都是典型的 ...
- java基础编程——二维数组中的查找
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...
- GCC 中零长数组与变长数组
前两天看程序,发现在某个函数中有下面这段程序: int n; //define a variable n int array[n]; //define an array with length n 在 ...
- C++内存分配及变长数组的动态分配
//------------------------------------------------------------------------------------------------ 第 ...
- labview 变体数据类型
变体数据类型是LabVIEW中多种数据类型的容器.将其它数据转换为变体时,变体将存储数据和数据的原始类型,保证日后可将变体数据反向转换. 例如,如将字符串数据转换为变体,变体将存储字符串的文本,以及说 ...
- oracle:变长数组varray,嵌套表,集合
创建变长数组类型 ) ); 这个变长数组最多可以容纳两个数据,数据的类型为 varchar2(50) 更改元素类型的大小或精度 可以更改变长数组类型和嵌套表类型 元素的大小. ALTER TYPE ...
随机推荐
- Aria2+yaaw+Chrome插件BaiduExporter实现百度网盘下载
Aria2+yaaw+Chrome插件BaiduExporter实现百度网盘下载 这篇博客主要为了解决百度网盘下载限速以及linux等操作系统无百度客户端的问题.主要包括两个方面第一个是aria2的安 ...
- Python之包管理工具:distutils、setuptools、distribute、setup.py、easy_install、easy_install、pip
在安装Python包的过程中,经常涉及到distutils.setuptools.distribute.setup.py.easy_install.easy_install和pip等等. 介绍:htt ...
- 数独求解程序 php版
数独求解程序 php版 <?php class Sudoku { var $matrix; function __construct($arr = null) { if ($arr == nul ...
- POJ3468——树状数组支持两个区间操作
题目:http://poj.org/problem?id=3468 推断过程可自己查,得式子:fixsum(x) = (x+1) * ∑(i=1,x)fi - ∑(i=1,x)i*fi; 其中 f 是 ...
- 【selenium】XPATH语法(一)
XPath 使用路径表达式来选取 XML 文档中的节点或节点集.节点是通过沿着路径 (path) 或者步 (steps) 来选取的. 我们将在下面的例子中使用这个 XML 文档. <?xml v ...
- Win10 UEFI +Ghost +intel快速启动 新法完美安装
http://tieba.baidu.com/p/4767004289?qq-pf-to=pcqq.c2c Win10 如果主板不用Bios 而用UEFI引导启动,速度快,界面好.现在一般都用win1 ...
- DataSet和DataTable有用的方法
每一个DataSet都是一个或多个DataTable 对象的集合(DataTable相当于数据库中的表),这些对象由数据行(DataRow).数据列(DataColumn).字段名(Column Na ...
- JbossMiner 挖矿蠕虫分析 (转载)
前言 从2013年的诞生,到2016爆发,挖矿(MiningCryptocurrency) 的高回报率,使其成为了一把双刃剑.据外媒去年的统计,比特币的算力(Hash Rate)已在半年内翻了一翻. ...
- Logstash之四:配置说明
logstash配置文件包含三个配置部分: 分别为:input{}.filter{}.output{}.{} 定义区域,区域内可以定义一个或多个插件,通过插件对数据进行收集,加工处理,输出. 在{}配 ...
- zufeoj Electrification Plan (最小生成树,巧妙设e[i][j]=0)
Electrification Plan 时间限制: 1 Sec 内存限制: 128 MB提交: 31 解决: 13[提交][状态][讨论版] 题目描述 Some country has n ci ...