Версия 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 ответ
В зависимости от версии 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
MySQL — это бесплатная система управления реляционными базами данных (RDBMS) с открытым исходным кодом, которая использует язык структурированных запросов (SQL). НЕ ИСПОЛЬЗУЙТЕ этот тег для других БД, таких как SQL Server, SQLite и т. д. Это разные БД, которые используют свои собственные диалекты SQL для управления данными. В вопросе всегда указывайте точную версию сервера. Версии 5.x сильно отличаются по своим возможностям от версий 8+.
RecordCount >= 0
илиRecordCount > i0
, или любой другой случайной ошибкой, которую вы можете сделать ... Что ж, по крайней мере, это будет легко исправить позже, чтобы выпустить следующую версию :-D