Вывод SQL-запроса к переменной в Delphi? - PullRequest
2 голосов
/ 30 марта 2012

Я хотел бы знать, как я могу поместить результат запроса SQL в переменную.

Я знаю об этом

integerVariable := UniQuery1.RecordCount;

, но об этом?

integerVariable := SELECT COUNT(*) FROM Orders WHERE Amount='1000' 

1 Ответ

6 голосов
/ 30 марта 2012

Что вам нужно сделать, это сначала «выполнить» sql, затем проверить результат, если результат присутствует, затем сохранить его в переменной, вот что я имею в виду:

procedure ...;
var
  LCount: Integer;
begin
  LCount := 0;
  //
  // note that I am doubling the single quote to escape it
  //
  // set the query
  UniQuery1.SQL.Text := 'SELECT COUNT(*) FROM Orders WHERE Amount=''1000'';';
  //
  // "execute" it
  //
  UniQuery1.Open;
  //
  // SELECT COUNT(*) will return 1 record with 1 field
  // most likely the field name is 'count' <= lower case
  // but we are sure that there should be only 1 field so we 
  // access it by Fields[Index].As[TYPE]
  //
  LCount := UniQuery1.Fields[0].AsInteger;
  ShowMessageFmt('Total count of orders with Amount = 1000: %d', [LCount]);
end;

РЕДАКТИРОВАТЬ : спасибо за указание, что "COUNT" всегда будет возвращаться.

...