Форум: "Начинающим";
Текущий архив: 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