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

Вниз

InterBase SQL. Узнать количество записей.   Найти похожие ветки 

 
Философ Огня   (2006-12-22 08:23) [0]

Есть код

 with DataModule1 do begin
   ibTransaction.StartTransaction;
   ibSQL1.GoToFirstRecordOnExecute := True;
   ibSQL1.SQL.Clear;
   ibSQL1.SQL.Text := "SELECT * FROM CALLS WHERE "+ SQL + " ORDER BY "DATE"";
   ibSQL1.ExecQuery;
   Result := ibSQl1.RecordCount;
{    while not ibSQL1.Eof do with ibSQL1 do begin
     Application.ProcessMessages;
     Inc(Result);
     Next;
   end;}

   
   ibTransaction.Commit;
   ibSQL1.Close;
 end;


так выделено то, как я пытался сделать. тупо - записей больше 100000.
так получается ерунда, в справке написано, что надо пройтись по всем записям, чтобы это число стало правильным.а это значит - вернуться к тому же.
Пожалуйста, подскажите, как?


 
ЮЮ ©   (2006-12-22 08:27) [1]

Если интересует именно количество, то его и надо спрашивать у сервера:
SELECT СOUNT(*) FROM CALLS WHERE
Если же интересует сколько записей закачал с сервера на клиент, то, естественно, их надо сначал закачать.  ibSQL1.Last; ibSQL1.RecordCount;


 
Философ Огня   (2006-12-22 08:29) [2]

Извините. Не сообразил :-)
Там дело в том, что нужно получать количество звонков за последний час по выборке SELECT * FROM CALLS WHERE дата время и выдавать в Label"е это количество. И какой вариант лучше использовать?


 
Философ Огня   (2006-12-22 08:32) [3]

Кстати, у ibSQL1 нет метода last


 
Философ Огня   (2006-12-22 08:33) [4]

Кстати, у ibSQL1 нет метода last


 
ЮЮ ©   (2006-12-22 08:33) [5]

Если нужно только количечество и в Label, то - первый. Если же все записи в грид-е показать и где-то их кол-во - то второй.


 
ЮЮ ©   (2006-12-22 08:36) [6]


> Кстати, у ibSQL1 нет метода last

кстати тип ibSQL1 не указан, но по косвенным признакам он похож не наследника TDataSet, а значит и Last у него быть должен.


 
DrPass ©   (2006-12-22 10:23) [7]


> ЮЮ ©   (22.12.06 08:36) [6]

Телепатор, особо не напрягаясь, предположил, что у IBSQL1 тип TIBSQL. Это не наследник TDataSet.

> Там дело в том, что нужно получать количество звонков за
> последний час по выборке SELECT * FROM CALLS WHERE дата
> время

Лучший вариант - либо select count(*) from..., либо, если возвращаемый набор невелик, вытащить его целиком и посчитать


 
Anatoly Podgoretsky ©   (2006-12-22 11:48) [8]

> Философ Огня  (22.12.2006 8:23:00)  [0]

Ерунда из-за того, что тупо 100 000 записей.
А они нужны?



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

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

Наверх




Память: 0.48 MB
Время: 0.048 c
15-1166507586
IMHO
2006-12-19 08:53
2007.01.14
Бунт на корабле


8-1147990002
Дмитрий12
2006-05-19 02:06
2007.01.14
координаты


2-1166966082
yeorsh
2006-12-24 16:14
2007.01.14
Вопрос изменения DBGrid.Font.Color.


2-1166795269
Digi
2006-12-22 16:47
2007.01.14
Uninstall


15-1166861867
Parus
2006-12-23 11:17
2007.01.14
RESULT от WINEXEC