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

Mik*_*ail 1 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;
Run Code Online (Sandbox Code Playgroud)

Ari*_*The 5

根据Delphi版本,它可以是

 if Q.IsEmpty then ...
Run Code Online (Sandbox Code Playgroud)

要么

 if Q.BOF and Q.EOF then ...
Run Code Online (Sandbox Code Playgroud)

您还可以深入了解Microsoft ADO.只要有您的查询没有多条语句,Q.RecordSet.EOF并且Q.RecordSet.BOF应该做的.


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

 Q := TADOQuery.Create;
 try
    .... do this or that ....
    .... do this or that ....
    .... do this or that ....
 finally
    Q.free;
 end;
Run Code Online (Sandbox Code Playgroud)