Форум: "Базы";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];
ВнизЗапрос - кол-во записей по условию Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.035 c