Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2009, 07:53   #11
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Ээм..как то так:
Код:
  Form11.pFIBQuery2.SQL.Clear;
  Form11.pFIBQuery2.SQL.Text:='SELECT FAMILIY,COUNT(FAMILIY) AS cnt_count FROM SPISOK GROUP BY FAMILIY';
  Form11.pFIBQuery2.ExecQuery;

  with Form11.SG12 do
  begin
    Form11.SG12.Cells[1,1]:=Form11.pFIBQuery2.FieldByName('cnt_count').AsString;
  end;
Но почему в результате выводится 1??? Это что, так и должно быть? Я просто логику результата не могу понять. Я специально сейчас сделал в БД две одинаковые фамилии. А результат показывается как 1. Или под результатом 1 понимается следущее: в БД 1 раз встречается одинаковые фамилии. Так что ли?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.

Последний раз редактировалось artemavd; 30.10.2009 в 08:05. Причина: исправил код
artemavd вне форума Ответить с цитированием
Старый 30.10.2009, 08:23   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Так что ли?
Нет не так.
Ты
1. уверен что ExecQuery открывает набор а не просто выполняет его? Может нужно метод Open применить7

2. Этот запрос вернет тебе несколько строк, так что цикла я у тя не вижу. Посмотри мой пример - там в цикле я прохожу по записям набора.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.10.2009, 08:33   #13
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Виталий, в Вашем коде:
Код:
with StringGrid do begin
 RowCount:=pFIBQuery1.RecordCount+1;
 for i:=1 to pFIBQuery1.RecordCount-1 do begin
// Это количество повторов
  cells[0,i]:=pFIBQuery1.FieldByName('кол-во_фамилия').AsString;
// Это сама фамилия
  cells[1,i]:=pFIBQuery1.FieldByName('фамилия').AsString;
 end;
end;
Меня вгоняют в непонятки эти две строчки:
Код:
// Это количество повторов
  cells[0,i]:=pFIBQuery1.FieldByName('кол-во_фамилия').AsString;
// Это сама фамилия
  cells[1,i]:=pFIBQuery1.FieldByName('фамилия').AsString;
а в частности это:
Код:
cells[0,i]
cells[1,i]
Это что получается, что у меня в нулевой столбец, начиная с первой строки и до последней записи выводится результат запроса или я неправильно понял?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 30.10.2009, 09:39   #14
quit
Я есть!
Форумчанин
 
Аватар для quit
 
Регистрация: 17.02.2008
Сообщений: 318
По умолчанию

Цитата:
Это что получается, что у меня в нулевой столбец, начиная с первой строки и до последней записи выводится результат запроса или я неправильно понял?
В первый(нулевой) столбец все записи из запроса
Код:
SELECT FAMILIY,COUNT(FAMILIY) AS cnt_count FROM SPISOK GROUP BY FAMILIY
вы записываете поле cnt_count, а во второй столбец того же запроса вы записываете поле familiy
©Учиться, учиться и еще раз учиться!
quit вне форума Ответить с цитированием
Старый 30.10.2009, 10:01   #15
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Как тогда будет правильно код то?). Я уже запутался.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 30.10.2009, 10:05   #16
quit
Я есть!
Форумчанин
 
Аватар для quit
 
Регистрация: 17.02.2008
Сообщений: 318
По умолчанию

подредактирую код Stilet
Вот так
Код:
with StringGrid do begin
 RowCount:=pFIBQuery1.RecordCount+1;
 pFIBQuery1.First;
 for i:=1 to pFIBQuery1.RecordCount-1 do begin
// Это количество повторов
  cells[0,i]:=pFIBQuery1.FieldByName('кол-во_фамилия').AsString;
// Это сама фамилия
  cells[1,i]:=pFIBQuery1.FieldByName('фамилия').AsString;
  pFIBQuery1.Next;
 end;
end;
по идее должен заполнять
©Учиться, учиться и еще раз учиться!
quit вне форума Ответить с цитированием
Старый 30.10.2009, 13:44   #17
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

для отображения можно выбрать много вариантов
и самый простой - дбгрид (минимальное кол-во кода)
soleil@mmc вне форума Ответить с цитированием
Старый 12.09.2010, 11:48   #18
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Не получается сделать проверку. Нужно, чтобы считалось количество данных по столбцу NUMBER_LS которые не равны "0".
Код:
 Form1.pFIBQuery4.SQL.Clear;
 Form1.pFIBQuery4.SQL.Text:='SELECT COUNT(NUMBER_LS) cnt4 FROM ARCHIVE';
 Form1.pFIBQuery4.ExecQuery;
 if Form1.pFIBQuery4.FieldByName('cnt4').AsInteger <> 0 then
 begin
  Form1.RzStringGrid3.Cells[1,4]:='       ' + Form1.pFIBQuery4.FieldByName('cnt4').AsString;
 end;
Помогите?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 12.09.2010, 11:54   #19
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

условие забыл:
Код:
Form1.pFIBQuery4.SQL.Clear;
Form1.pFIBQuery4.SQL.Text:='SELECT COUNT(NUMBER_LS) FROM ARCHIVE WHERE number_ls !=0';
Form1.pFIBQuery4.ExecQuery;
if Form1.pFIBQuery4.Fields[0].AsInteger <> 0 
   then Form1.RzStringGrid3.Cells[1,4]:='       ' + Form1.pFIBQuery4.Fields[0].AsString;
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 12.09.2010, 11:56   #20
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Спасибо . А что это значит?
Код:
!=
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FireBird Д'якон БД в Delphi 2 04.12.2008 11:15
FireBird 1.5.4 Nikola__ БД в Delphi 2 17.11.2008 14:42
Использование атрибутов count и sum Dianaa Помощь студентам 3 16.09.2008 22:51
count(*) antoniosm БД в Delphi 9 12.09.2007 13:06
функция запроса COUNT Таня84 БД в Delphi 1 10.06.2007 15:49