求助,delphi 数据库记录与数组比较

来源:互联网  时间:2016/8/4 22:17:16

关于网友提出的“ 求助,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;
----------------------------------------------------------
以上代码未经测试, 只作说明的问题的示例

上一篇fastreport在LPT口的打印机打印不了
下一篇如何更改分组标题
明星图片
相关文章
《 求助,delphi 数据库记录与数组比较》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)