вопрос по SQLQuery

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

вопрос по SQLQuery

Сообщение virus_hm » 29.10.2009 14:45:43

Пример кода
********
sqlQMain.SQL.Clear;
sqlQMain.SQL.Add('SELECT * FROM ALLVID');
sqlQMain.Open;
j:=sqlQMain.RecordCount;
********

Почему то j всегда <=10, хотя записей в таблице может быть на много больше
Подскажите в какую сторону искать
virus_hm
новенький
 
Сообщения: 22
Зарегистрирован: 19.09.2009 23:52:40

Re: вопрос по SQLQuery

Сообщение Logo » 29.10.2009 17:52:04

Если для цикла, то используйте функцию EOF
например:
Код: Выделить всё
  sqlQMain.First;
   repeat
    // Полезный код
    sqlQMain.Next;
   until sqlQMain.EOF;


А для получения количества записей по конкретному запросу воспользуйтесь:
Код: Выделить всё
SELECT COUNT(*)
  FROM ALLVID;

Дело в том, что SQLQuery не знает, сколько будет строк по данному запросу, для этого ему нужно было бы выполнить дополнительный запрос, аналогичный описанному выше, но это в большинстве лишняя операция, поэтому определение количества записей полагается на программиста. А RecordCount показывает, вроде, количество забуферированых/зарезервированых строк.
Logo
постоялец
 
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Re: вопрос по SQLQuery

Сообщение virus_hm » 29.10.2009 23:13:25

Именно для цыкла и нужно. Спасиба за совет.
virus_hm
новенький
 
Сообщения: 22
Зарегистрирован: 19.09.2009 23:52:40


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 37

Рейтинг@Mail.ru