Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Грамотный поиск записей 
V
    Опции темы
Mephisto
Дата 20.12.2006, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

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



skyboy, 
Цитата(skyboy @  14.12.2006,  21:50 Найти цитируемый пост)
у компонента - наследника TQuery есть свойство RowCount или RecordCount(не помню, чесно говоря) -

Только он всегда будет возвращать 1, если не двусторонний select!!!!!! Т.е. необходмо количество записей узнавать отдельным запросом, либо вообще использовать тот пример что Akella написал. Как по мне боле уместно!
Только нужно будет написать:
Код

ListView1.Columns.Clear;
ListView1.Columns.Add.Caption := '1';
ListView1.Columns.Add.Caption := '2';
ListView1.Columns.Add.Caption := '3';
ListView1.ViewStyle  := vsReport;
Query1.First;
while not Query1.eof do begin
  With ListView1.Items.Add do
  begin
    Caption := query1.FieldByName('Имя_Поля1').asString;
    SubItems.Append(query1.FieldByName('Имя_Поля2').asString);
    SubItems.Append(query1.FieldByName('Имя_Поля3').asString);
  end;
  query1.next;
end;


Это сообщение отредактировал(а) Mephisto - 20.12.2006, 10:19
PM   Вверх
former
Дата 27.12.2006, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

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



Благодарю всех за помощь. Сделал, как посоветовали Akella и Mephisto, а для определения количества найденных записей использовал переменную типа integer.

Код

procedure TMainForm.SpeedButton1Click(Sender: TObject);
var i:integer;
begin
  i:=0;
  ListView1.Clear;
  Label2.Caption:='';
  ABSQuery.Active:=false;
  ABSQuery.SQL.Clear;
  if RadioButton1.Checked=true then
  begin
    ABSQuery.SQL.Text:='SELECT PNum, DClassID, UpFNum FROM mmsedb WHERE PNum LIKE :val';
    ABSQuery.Params.ParamByName('val').Value:=Edit1.Text;
  end
  else if RadioButton2.Checked=true then
  begin
    ABSQuery.SQL.Text:='SELECT PNum, DClassID, UpFNum FROM mmsedb WHERE DClassID LIKE :val';
    ABSQuery.Params.ParamByName('val').Value:=Edit1.Text;
  end;
  ABSQuery.Active:=true;
  ABSQuery.First;
  while not ABSQuery.Eof do
  begin
    with ListView1.Items.Add do
    begin
      i:=i+1;
      Caption:=ABSQuery.FieldByName('UpdateFileNum').asString;
      SubItems.Append(ABSQuery.FieldByName('PutNum').asString);
      SubItems.Append(ABSQuery.FieldByName('DevClassID').asString);
    end;
    ABSQuery.next;
  end;
  if i=0 then ShowMessage('По вашему запросу ничего не найдено!')
  else  Label2.Caption:=IntToStr(i);
end;




--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
former
Дата 29.12.2006, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

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



Тема закрыта.


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Mephisto
Дата 29.12.2006, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

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



Код

procedure TMainForm.SpeedButton1Click(Sender: TObject);
begin
  ListView1.Clear;
  Label2.Caption:='';
  ABSQuery.Active:=false;
  ABSQuery.SQL.Clear;
  if RadioButton1.Checked=true then
  begin
    ABSQuery.SQL.Text:='SELECT PNum, DClassID, UpFNum FROM mmsedb WHERE PNum LIKE :val';
    ABSQuery.Params.ParamByName('val').Value:=Edit1.Text;
  end
  else if RadioButton2.Checked=true then
  begin
    ABSQuery.SQL.Text:='SELECT PNum, DClassID, UpFNum FROM mmsedb WHERE DClassID LIKE :val';
    ABSQuery.Params.ParamByName('val').Value:=Edit1.Text;
  end;
  ABSQuery.Active:=true;
  ABSQuery.First;
  while not ABSQuery.Eof do
  begin
    with ListView1.Items.Add do
    begin
      Caption:=ABSQuery.FieldByName('UpdateFileNum').asString;
      SubItems.Append(ABSQuery.FieldByName('PutNum').asString);
      SubItems.Append(ABSQuery.FieldByName('DevClassID').asString);
    end;
    ABSQuery.next;
  end;
  if ListView1.Items.Count = 0 then ShowMessage('По вашему запросу ничего не найдено!')
  else  Label2.Caption:=IntToStr(ListView1.Items.Count);
end;

PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0437 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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