Главная страница
    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.013 c
15-1166340247
Куб
2006-12-17 10:24
2007.01.14
Египет. Пирамида Хеопса.


15-1166783106
Gero
2006-12-22 13:25
2007.01.14
Зацените дизайн


15-1166626822
kroner
2006-12-20 18:00
2007.01.14
Кто-нибудь знает, есть ли XML SDK для 6 версии?


15-1166961931
Ксардас
2006-12-24 15:05
2007.01.14
Есть ли теорема, подобная теореме Виета для корней кв. уравнения,


15-1167043284
Post_
2006-12-25 13:41
2007.01.14
PostMessage





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский