Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Просуммировать строки и вывести в Lаbel, как это сделать  
:(
    Опции темы
kovalenko123
Дата 26.5.2008, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 229
Регистрация: 12.5.2008

Репутация: нет
Всего: 1



Приветствую всех  программистов!!!! Вопрос:
как  можно просуммировать строки из  одного поля и вывести это все в label ( Использую Ado, аксесс)
Если можно то пример кода. Заранее спасибо 
PM MAIL ICQ   Вверх
Rodman
Дата 26.5.2008, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



Код

ADOQuery.Close;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add('SELECT Sum(field) FROM MyTable;');
ADOQuery.Open;
Label.Caption:=ADOQuery.Fields.Fields[0].AsString;

PM MAIL WWW Skype GTalk YIM MSN   Вверх
kovalenko123
Дата 27.5.2008, 06:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 229
Регистрация: 12.5.2008

Репутация: нет
Всего: 1



Че то он ругается на поле sum

Код

(Label1.Caption:=ADOQuery1.Fields.Fields[sum].AsString;)


Посмотрите пожалуйста 

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  Labeles.rar 11,76 Kb
PM MAIL ICQ   Вверх
Deniz
Дата 27.5.2008, 07:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 8
Всего: 44



kovalenko123, посмотри внимательно на пример от Rodman.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
kovalenko123
Дата 27.5.2008, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 229
Регистрация: 12.5.2008

Репутация: нет
Всего: 1



Не ну в моей БД нет поля 0 есть поле sum я его ставлю он ругается а почему я немойму
PM MAIL ICQ   Вверх
Данкинг
Дата 27.5.2008, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(kovalenko123 @ 27.5.2008,  12:44)
Не ну в моей БД нет поля 0 есть поле sum я его ставлю он ругается а почему я немойму

Э-э-э... Почитай инфу по работе на Дельфи с БД для начала.  smile В примере Rodman'а строчка


Код

ADOQuery.SQL.Add('SELECT Sum(field) FROM MyTable;');

Означает запрос, выбирающий сумму поля FIELD (которое должно быть числовым) из таблицы MyTable.

Чтобы было понятней, могу несколько модифицировать пример:

Код

ADOQuery.Close;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add('SELECT Sum(field) as MySum FROM MyTable;');
ADOQuery.Open;
Label.Caption:=inttostr(MySum);



--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Vas
Дата 27.5.2008, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



Данкинг, и что покажет твой кусок кода в Label.Caption? Я думаю он даже не откомпилируется smile


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
chetl
Дата 27.5.2008, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 12.9.2007

Репутация: нет
Всего: нет



Код

SELECT Sum (Sum) FROM 1;
 - св-во SQL в adotable;
Код

label1.Caption:=form1.ADOQuery1Expr1000.AsString;
 - реакция батона
PM MAIL   Вверх
kovalenko123
Дата 27.5.2008, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 229
Регистрация: 12.5.2008

Репутация: нет
Всего: 1



Код

ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT Sum(Sum)as MySum FROM 1');
ADOQuery1.Open;

Label1.Caption:=inttostr(MySum);


теперь он ругается на (MySum) в  lebele обьясните начинаюшему  smile пожалуйста

Добавлено через 3 минуты и 20 секунд
chetl :
code=delphi]
label1.Caption:=form1.ADOQuery1Expr1000.AsString;[
[/code]
Сорри за тупой вопрос а откуда взялся  Expr1000   smile

Добавлено через 5 минут и 17 секунд
VAs:
Он и не компилируеься ты прав smile 
PM MAIL ICQ   Вверх
Vas
Дата 27.5.2008, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



Что гадать то? У Rodman'a пример правильный, только одно слово Fields кажись лишнее, проверить не могу нету дельфи у мну на openSUSE :( 
Цитата(kovalenko123 @  27.5.2008,  11:44 Найти цитируемый пост)
Не ну в моей БД нет поля 0 есть поле sum я его ставлю он ругается а почему я немойму

Там не поле с именем "0", а первое поле по порядку, но в возвращенном наборе данных поля нумеруются с нуля.
Запрос типа
Код

select id, name_str from table

Вернет набор данных с двумя полями, первое по порядку будет с индексом "0", второе с индексом "1", соответсвенно обращатся к ним так:
Код

Label1.caption:=ADOQuery1.Fields[0].AsString;
Label2.caption:=ADOQuery1.Fields[1].AsString;
или
Label1.caption:=ADOQuery1.FieldByName("id").AsString;
Label2.caption:=ADOQuery1.FieldByName("name_str").AsString;

 smile 


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
kovalenko123
Дата 27.5.2008, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 229
Регистрация: 12.5.2008

Репутация: нет
Всего: 1



Цитата(Vas @ 27.5.2008,  12:51)
Код

Label1.caption:=ADOQuery1.Fields[0].AsString;
Label2.caption:=ADOQuery1.Fields[1].AsString;
или
Label1.caption:=ADOQuery1.FieldByName("id").AsString;
Label2.caption:=ADOQuery1.FieldByName("name_str").AsString;


Помойму это код чтоб отображать значения из полей (0 1) в гриде например по нажатию клавиши а ме надо чтоб по 
активации формы в label была сумма всех полей 
я понял как сделать запрос я тоа не понял как этот запрос отбразить в labele вот   smile 
PM MAIL ICQ   Вверх
Vas
Дата 27.5.2008, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



1. Кидаешь на форму ADOQuery у него в свойстве SQL пишешь текст запроса.
2. Переходишь на вкладку Events формы находишь метод onShow. два раза клацаешь отрывается текст процедуры TForm1.FormShow.....
3. Пишешь текст 
Код

try
ADOQuery.Open;
Label.Caption:=ADOQuery.Fields[0].AsString;
except
ShowMessage('Не могу выполнить запрос');
end;

4. Компилируешь, запускаешь и смотришь на результат smile


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
chetl
Дата 27.5.2008, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 12.9.2007

Репутация: нет
Всего: нет



 Expr1000 это автоматическое имя поля, куда выбрасываются данные. Если не нравиться можешь написать 
Код

SELECT Sum(Sum)  AS [name] FROM 1;

PM MAIL   Вверх
Deniz
Дата 27.5.2008, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 8
Всего: 44



Цитата(kovalenko123 @  27.5.2008,  14:44 Найти цитируемый пост)
Не ну в моей БД нет поля 0 есть поле sum я его ставлю он ругается а почему я немойму 
 smile ... много думал


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Rodman
Дата 27.5.2008, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



kovalenko123, и так.. объясняю для танкистоф...

если пишется запись типа 
Код

Label2.caption:=ADOQuery1.Fields[1].AsString;
то 1 это номер столбца (поля)... нумерация начинается с 0...

а если пишется 
Код

Label1.caption:=ADOQuery1.FieldByName("id").AsString;
то обращение к столбцу (полю) идет через его имя...

Я понятно выражаюсь?!
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0580 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.