1

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;
4

1 回答 1

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;
于 2013-04-09T16:22:50.237 回答