Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.19;
Скачать: CL | DM;

Вниз

Запрос - кол-во записей по условию   Найти похожие ветки 

 
TAN_K   (2004-11-18 14:54) [0]

Господа , здравствуйте !
Работаю с IBQuery1 , необходимо вывести на экран кол-во записей удовлетворяющих какому-то условию (на экране - Label1) .
ожно написать запрос :
IBQuery1.SQL.Add("Select count(*) from VW_TABL where POLE = "200"");
Но как написать ,  Label1.Caption := кол-во , не знаю .
Господа , если кто-то знает , подскажите . Понимаю , что вопрос простой , но ....
Всем спасибо .


 
HSolo ©   (2004-11-18 15:14) [1]

Например, так:
Label1.Caption := IBQuery1.Fields[0].AsString;


 
HSolo ©   (2004-11-18 15:16) [2]

Или так:
Label1.Caption := IntToStr(IBQuery1.Fields[0].AsInteger);


 
TAN_K   (2004-11-18 16:37) [3]

Спасибо за помощь . Написала такой код :
//  подсчет  общего кол-ва записей
 IBQuery2.Close;
 IBQuery2.SQL.Clear;
 IBQuery2.SQL.Add("Select count(*) from VW_Lkart");
 IBQuery2.Open;
 Label1.Caption := "Кол-во работников = " + inttostr(DataModule1.IBQuery2.Fields[0].AsInteger);  
// подсчет  кол-ва записей для ....
 IBQuery2.Close;
 IBQuery2.SQL.Clear;
 IBQuery2.SQL.Add("Select count(*) from VW_Lkart where POL = "М"");
 IBQuery2.Open;
 Label2.Caption := "Кол-во мужчин = " + inttostr(DataModule1.IBQuery2.Fields[0].AsInteger);  
// подсчет кол-ва записей для ....
 IBQuery2.Close;
 IBQuerySQL.Clear;
 IBQuery2.SQL.Add("Select count(*) from VW_Lkart where POL = "Ж"");
 DataModule1.IBQuery2.Open;
 Label21.Caption := "Кол-во женщин = " + inttostr(IBQuery2.Fields[0].AsInteger);    
//
//  Запрос , кторый должен отображаться в Grid
 IBQuery2.Close;
 IBQuery2.SQL.Clear;
 IBQuery2.SQL.Add("Select * from VW_Lkart");
 IBQuery2.SQL.Add("Order by FAM,IM,OT");
 IBQuery2.Open;

Кол-во записей прекрасно подсчитывается и показывается на экране в Label1 - 3 , но перед отображением  GRID выдает сообщение об ошибке - List index ... [1] и на экране отображает только одно поле , которое было отведено под COUNT(*) , но оно пусто , а все поля не отображаются .
Какую еще мелочь я не учла ?
Всем спасибо .


 
HSolo ©   (2004-11-18 17:22) [4]

А что, собственно, должно отображаться в гриде?


 
Vemer ©   (2004-11-18 17:38) [5]

У меня так:
IbQuery.Open;
IbQuery.Fetchall;
Label.Caption := "Кол-во записей: " + IntToStr (IbQuery.RecordCount);


 
HSolo ©   (2004-11-18 17:48) [6]

>Vemer ©   (18.11.04 17:38) [5]
Можно и так - если Вам в любом случае нужна вся выборка целиком. Но если речь идет только о количестве записей (а TAN_K спрашивает именно об этом) - то надо ли тянуть на клиента, быть может, тысячи и тысячи записей только ради того, чтобы сосчитать, сколько их? Пусть лучше сервер сосчитает и вернет одно-единственное число


 
ЮЮ ©   (2004-11-19 03:47) [7]

Заведи другой IBQuery для подсчета количества или отключай DataSource y грида на период манипуляций с  IBQuery2, т.к. и результаты этих запросов тоже выводятся в Грмд, просто ты не успеваншь их увидеть

>List index ... [1]
В каком то обработчике, надеясь, что там уже запрос "Select * from VW_Lkart" обращаешься к IBQuery2.Fields[1], а его нет, т.к. запрос "Select count(*) from VW_Lkart where POL = "Ж"" возвражает только одно поле



Страницы: 1 вся ветка

Текущий архив: 2004.12.19;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.028 c
1-1102078078
СергА
2004-12-03 15:47
2004.12.19
отладка исходного кода Delphi


1-1101910353
Змей
2004-12-01 17:12
2004.12.19
listview


1-1102426790
Aleksandr.
2004-12-07 16:39
2004.12.19
Какое сообщение отправить TMemo, чтобы он проскроллировался?


1-1101907688
Артем Владимирович
2004-12-01 16:28
2004.12.19
Как блокироваться сочетание клавиш CTRL+N?


14-1101512945
e-mike
2004-11-27 02:49
2004.12.19
каталог m3