关于网友提出的“ 求助,delphi 数据库记录与数组比较”问题疑问,本网通过在网上对“ 求助,delphi 数据库记录与数组比较”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 求助,delphi 数据库记录与数组比较描述:
Delphi数组
如何判断 例如 sql: select AA from table where BB='0' 的记录集与数组 MYARRAY[i]数据是否完全相同,写不好这个判断了(只读一次SQL),TKS解决方案1:
第一种方法
MYARRAY中的值时简单类型吗?
如果是, 用如下方法(需要保证AA字段值的唯一性)
在sql中使用in语法遍历MyArray中数据, 并组成类似这样的sql语句 select count(1) from table where BB='0' and AA in (1,2,3), 返回的结果集长度与数组长度对比可得结果.
第二种方法
得出记录集Query, 然后遍历结果集, 逐个与数组比对
while not query.eof do
begin
for i := low(MyArray) to high(MyArray) do
begin
if query.fieldbyname('AA').asstring = MyArray[i] then
begin
//可以做计数或什么的操作
end;
end;
query.next;
end;
------------------------------
该方法可以优化为
1 select AA from table where BB='0' orderby AA;
2 MyArray排序TArray(MyArray).sort;
3 对比
i := low(MyArray);
while not query.eof do
begin
if not sametext(query.fieldbyname('AA').asstring, MyArray[i]) then
begin
showmessage('不同');
exit;
end;
query.next;
end;
----------------------------------------------------------
以上代码未经测试, 只作说明的问题的示例