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;
最佳答案
根据 Delphi 版本,它可以是
if Q.IsEmpty then ...
或
if Q.BOF and Q.EOF then ...
您还可以深入了解 Microsoft ADO。只要您的查询中没有多个语句,Q.RecordSet.EOF
和 Q.RecordSet.BOF
就应该这样做。
- http://msdn.microsoft.com/library/windows/desktop/ms675787.aspx
- http://www.w3schools.com/ado/ado_ref_recordset.asp
- http://msdn.microsoft.com/library/windows/desktop/ms677539.aspx
另外请不要忘记保护错误的内存管理。
Q := TADOQuery.Create;
try
.... do this or that ....
.... do this or that ....
.... do this or that ....
finally
Q.free;
end;
关于mysql - 德尔福、ADO、MySQL : checking whether an empty set was returned,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15907259/