Пример кода
********
sqlQMain.SQL.Clear;
sqlQMain.SQL.Add('SELECT * FROM ALLVID');
sqlQMain.Open;
j:=sqlQMain.RecordCount;
********
Почему то j всегда <=10, хотя записей в таблице может быть на много больше
Подскажите в какую сторону искать
вопрос по SQLQuery
Модератор: Модераторы
Если для цикла, то используйте функцию EOF
например:
А для получения количества записей по конкретному запросу воспользуйтесь:
Дело в том, что SQLQuery не знает, сколько будет строк по данному запросу, для этого ему нужно было бы выполнить дополнительный запрос, аналогичный описанному выше, но это в большинстве лишняя операция, поэтому определение количества записей полагается на программиста. А RecordCount показывает, вроде, количество забуферированых/зарезервированых строк.
например:
Код: Выделить всё
sqlQMain.First;
repeat
// Полезный код
sqlQMain.Next;
until sqlQMain.EOF;
А для получения количества записей по конкретному запросу воспользуйтесь:
Код: Выделить всё
SELECT COUNT(*)
FROM ALLVID;
Дело в том, что SQLQuery не знает, сколько будет строк по данному запросу, для этого ему нужно было бы выполнить дополнительный запрос, аналогичный описанному выше, но это в большинстве лишняя операция, поэтому определение количества записей полагается на программиста. А RecordCount показывает, вроде, количество забуферированых/зарезервированых строк.
Именно для цыкла и нужно. Спасиба за совет.
