Delphi,ADO,MySQL:检查是否返回了空集

时间:2013-04-09 16:20:06

标签: mysql delphi ado

Delphi的版本是7。

我正在向MySQL数据库发送查询。可以返回的是一组数据行或只是一个空集。没什么不寻常的。但我不知道如何建立一个检查机制来检查它是一组数据还是空集。

以下是一些代码:

var
    Q: TADOQuery;
begin
    Q := TADOQuery.Create(self);
    Q.Connection := ADOConnection;

    Q.SQL.Add('CALL get_shopping_cart_list()'); // Call stored procedure
    Q.Open;                                     // Send query and get some
                                                // results back
    // PSEUDOCODE
    // IF get_shopping_cart_list() RETURNS A NON-EMPY SET THEN
    //     SHOW WHAT WE HAVE
    // ELSE
    //     SHOW A MESSAGE THAT SAYS 'EMPTY SET'

    Q.Free;
end;

1 个答案:

答案 0 :(得分:5)

根据Delphi版本,它可以是

 if Q.IsEmpty then ...

 if Q.BOF and Q.EOF then ...

您还可以深入了解Microsoft ADO。只要您的查询中没有多个语句,Q.RecordSet.EOFQ.RecordSet.BOF就应该这样做。


另外请不要忘记保护内存管理错误。

 Q := TADOQuery.Create;
 try
    .... do this or that ....
    .... do this or that ....
    .... do this or that ....
 finally
    Q.free;
 end;