Сумма столбца DBGrid

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Сумма столбца DBGrid

Сообщение Plato » 05.12.2014 23:05:31

Пытаюсь вывести сумму столбца в label7.
БД SQLite
Код: Выделить всё
procedure TForm1.Button4Click(Sender: TObject);
begin
SQLQuery3.Close;
SQLQuery3.SQL.Clear;
SQLQuery3.SQL.Add('SELECT SUM(Unit_price) FROM ORDERS;');
SQLQuery3.Open;
Label7.Caption:=SQLQuery3.Fields[0].AsString;
end;

Выдаёт ошибку : Missing (compatible) underlying dataset, cannot open.

Добавлено спустя 4 минуты 14 секунд:
Так тоже не работает :
Код: Выделить всё
procedure TForm1.Button4Click(Sender: TObject);
begin
SQLQuery3.Close;
SQLQuery3.SQL.Clear;
SQLQuery3.SQL.Add('SELECT SUM(Unit_price) AS KOL FROM ORDERS ;');
SQLQuery3.Open;
Label7.Caption:=SQLQuer3.FieldByName('KOL').AsString;
end;   
Аватара пользователя
Plato
новенький
 
Сообщения: 13
Зарегистрирован: 25.10.2014 21:09:03

Re: Сумма столбца DBGrid

Сообщение Vapaamies » 06.12.2014 01:07:04

Точка с запятой в запросе разве не лишняя?
Аватара пользователя
Vapaamies
постоялец
 
Сообщения: 292
Зарегистрирован: 24.07.2012 22:37:59
Откуда: Санкт-Петербург

Re: Сумма столбца DBGrid

Сообщение Plato » 06.12.2014 01:13:21

Vapaamies писал(а):Точка с запятой в запросе разве не лишняя?

Удаление ";" никак не повлияло.
Да и в других запросах(удаление и добавление) они есть и всё работает.
Аватара пользователя
Plato
новенький
 
Сообщения: 13
Зарегистрирован: 25.10.2014 21:09:03

Re: Сумма столбца DBGrid

Сообщение Vapaamies » 06.12.2014 09:16:56

А лишних FieldDef-ов в свойствах запроса не затесалось? Или TField-ов?
Аватара пользователя
Vapaamies
постоялец
 
Сообщения: 292
Зарегистрирован: 24.07.2012 22:37:59
Откуда: Санкт-Петербург

Re: Сумма столбца DBGrid

Сообщение Снег Север » 06.12.2014 11:08:16

В моем проекте подобный запрос работает прекрасно. А ошибка намекает, что не установлено или потеряно соединение с БД.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3053
Зарегистрирован: 27.11.2007 16:14:47

Re: Сумма столбца DBGrid

Сообщение Plato » 06.12.2014 15:58:51

Так работает:
Код: Выделить всё
procedure TForm1.DataSource3DataChange(Sender: TObject; Field: TField);
begin
  with TSQLQuery.Create(nil) do
  try
    DataBase := SQLite3connection1;
    Close;
    SQL.Text :=('SELECT SUM(Quantity) AS KOLVO FROM ORDERS;');
    Open;
    Label7.Caption :='Всего: '+FieldByName('KOLVO').AsString;
  finally
    Free;
  end;
end;


Добавлено спустя 15 минут 6 секунд:
Как посчитать сумму вычисляемого столбца?
Аватара пользователя
Plato
новенький
 
Сообщения: 13
Зарегистрирован: 25.10.2014 21:09:03

Re: Сумма столбца DBGrid

Сообщение Padre_Mortius » 06.12.2014 17:01:55

Plato, вам же компилятор написал, что отсутствует Dataset. Проверьте правильность настроек компонента SQLQuery3.

P.S. В запросах ошибок нет.
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 222

Рейтинг@Mail.ru