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

求助,delphi 数据库记录与数组比较
如何判断 例如 sql: select AA from table where BB='0' 的记录集与数组 MYARRAY[i]数据是否完全相同,写不好这个判断了(只读一次SQL),TKS
     
Delphi 数组

------解决方案--------------------
第一种方法
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;



----------------------
以上代码未经测试, 只作说明的问题的示例