Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.01.14;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.012 c
15-1166554186
cando
2006-12-19 21:49
2007.01.14
пароли и имена подключений


2-1166780478
kukuikar
2006-12-22 12:41
2007.01.14
Изменение даты создания файла


2-1166533930
Steep
2006-12-19 16:12
2007.01.14
Процедуры и функции


15-1166706608
genelectric
2006-12-21 16:10
2007.01.14
Вакансия программиста - Санкт-Петербург


15-1166803567
Лёля
2006-12-22 19:06
2007.01.14
Delphi 6 и CodeFolding





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский