powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос в теле программы возвращает только 1 запись
25 сообщений из 26, страница 1 из 2
Запрос в теле программы возвращает только 1 запись
    #32576338
Katarina_kiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Умоляю помогите!
Запрос в теле программы возвращает только 1 запись, запрос как объект базы данных точно такой же - больше.

Как сделать чтобы запрос в программе возвращал реальное кол-во записей?

Спасибо заранее!
...
Рейтинг: 0 / 0
Запрос в теле программы возвращает только 1 запись
    #32576346
Alexander Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что то не совсем понятно.
И запрос можно опубликовать.
...
Рейтинг: 0 / 0
Запрос в теле программы возвращает только 1 запись
    #32576353
Katarina_kiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запрос ЭЛЕМЕНТАРНЫЙ
Set q = db.CreateQueryDef("", "SELECT * FROM priluki") - в теле программы и

SELECT * FROM priluki текст запроса.

в базе - 160 000 записей.

Так вот в программе RecordCount = 1.

я уже устала бороться. Запрос был с параметрами сначала, потом я методом исключения искала ошибку. и нашла...
...
Рейтинг: 0 / 0
Запрос в теле программы возвращает только 1 запись
    #32576364
Alexander Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С recordCount свои заморочки лучше попробуй проверить количество записей
через rs.EOF
+ Поиск по форуму по ключевому слову RecordCount
(много интересного)
...
Рейтинг: 0 / 0
Запрос в теле программы возвращает только 1 запись
    #32576379
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если на основе запроса формируется рекордсет, то в свое время умные люди подсказали мне сделать rst.movelast, а потом rst.movefirst. Тогда RecordCount показывает правильное количество записей
...
Рейтинг: 0 / 0
Запрос в теле программы возвращает только 1 запись
    #32576380
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ЛифчикЕсли на основе запроса формируется рекордсет, то в свое время умные люди подсказали мне сделать rst.movelast, а потом rst.movefirst. Тогда RecordCount показывает правильное количество записей
Но эта операция требует времени, поэтому стОит взвесить, нужен ли этот RecordCount.
...
Рейтинг: 0 / 0
Запрос в теле программы возвращает только 1 запись
    #32576381
katarina_kiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
EOF = false

даже если я говорю курсору пойти на 54677 запись...

но мне нужно поочереди просмотреть строки из этого запроса...
что делать?
...
Рейтинг: 0 / 0
Запрос в теле программы возвращает только 1 запись
    #32576384
katarina_kiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
с походом сначала в конец а потом в начало - работает...

и жело тут не во времени...
просто через задний проход как-то...
некрасивенько и неаккуратненько!
...
Рейтинг: 0 / 0
Запрос в теле программы возвращает только 1 запись
    #32576388
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
katarina_kievEOF = false

даже если я говорю курсору пойти на 54677 запись...

но мне нужно поочереди просмотреть строки из этого запроса...
что делать?
Я обычно пишу так:

set rs=...
if not rs.bof then
do until rs.eof
...
rs.movenext
loop
end if
rs.close

Никакой recordcount здесь не нужен.
...
Рейтинг: 0 / 0
Запрос в теле программы возвращает только 1 запись
    #32576392
katarina_kiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо большое!

я даже не надеялась на такой быстрый и классный ответ!

спасибо!
...
Рейтинг: 0 / 0
Запрос в теле программы возвращает только 1 запись
    #32576393
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
:^)
...
Рейтинг: 0 / 0
Запрос в теле программы возвращает только 1 запись
    #32576403
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну а я теперь буду писать примерно так: ...24/06/04 19:49 Саныч подсказал мне...итд
...
Рейтинг: 0 / 0
Запрос в теле программы возвращает только 1 запись
    #32576405
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ЛифчикНу а я теперь буду писать примерно так: ...24/06/04 19:49 Саныч подсказал мне...итд
А как же ты писал до сих пор??? Неужели так:

set rs=...
if not rs.bof then
rs.movelast
n=rs.recordcount
rs.movefirst
for i=1 to n
...
next
end if
rs.close

???
...
Рейтинг: 0 / 0
Запрос в теле программы возвращает только 1 запись
    #32576410
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторset rs=...
if not rs.bof then
rs.movelast
n=rs.recordcount
rs.movefirst
for i=1 to n
...
next
end if
rs.close
???
Саныч, ты зря смеешься. Не самый плохой вариант.И во многих случаях гораздо более быстрый.
...
Рейтинг: 0 / 0
Запрос в теле программы возвращает только 1 запись
    #32576414
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я не смеюсь. Я только спросил у Лифчика, писал ли он... ну и далее по тексту.
...
Рейтинг: 0 / 0
Запрос в теле программы возвращает только 1 запись
    #32576433
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч, долго искал, зачем мне RecordCount точный понадобился. Оказывается, в одном месте деляю ReDim одного массива на основании точного значения. А зачем это - самому теперь надо разбираться. Забыл :( Но в обычных ситуациях RecordCount конечно не нужен, достаточно знать, что он >0
...
Рейтинг: 0 / 0
Запрос в теле программы возвращает только 1 запись
    #32576438
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ЛифчикСаныч, долго искал, зачем мне RecordCount точный понадобился. Оказывается, в одном месте деляю ReDim одного массива на основании точного значения. А зачем это - самому теперь надо разбираться. Забыл :( Но в обычных ситуациях RecordCount конечно не нужен, достаточно знать, что он >0
Да нет, с этим все понятно. Ты мне скажи, чем тебя так поразил мой пост от 19:49.
...
Рейтинг: 0 / 0
Запрос в теле программы возвращает только 1 запись
    #32576442
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зато теперь Лифчик может писать
" до 24/06/04 19:49 и после 24/06/04 20:24 я писал... "
...
Рейтинг: 0 / 0
Запрос в теле программы возвращает только 1 запись
    #32576449
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныччем тебя так поразил мой пост от 19:49.
Поразил тем же, чем и автора топика авторя даже не надеялась на такой быстрый и классный ответ!

Ты даешь ответ сразу более глубокий, потому что знаешь, чего челу надо (телепатия) В данном случае ты дал наводящий вопрос: СанычНо эта операция требует времени, поэтому стОит взвесить, нужен ли этот RecordCount., из ответа на который понятно, что автору сам RecordCount не нужен. Это мастерство-с
...
Рейтинг: 0 / 0
Запрос в теле программы возвращает только 1 запись
    #32576450
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, Лифчик прав:
help a97Свойство RecordCount не показывает, сколько записей содержится в динамическом или статическом объекте Recordset до обращения ко всем записям. После обращения к последней записи набора значение свойства RecordCount становится равным полному числу неудаленных записей в объекте Recordset или TableDef. Для принудительного обращения к последней записи следует вызвать для объекта Recordset метод MoveLast. Кроме того, определить примерное число записей, которые будут возвращены в запросе, позволяет функция Count языка SQL.

Примечание. Заполнение с помощью метода MoveLast объекта Recordset при его открытии отрицательно сказывается на быстродействии. Если точное определение значения свойства RecordCount не требуется сразу после открытия объекта Recordset, рекомендуется подождать, пока объект Recordset будет заполнен в результате выполнения остальной программа, а уже потом обращаться к свойству RecordCount.
...
Рейтинг: 0 / 0
Запрос в теле программы возвращает только 1 запись
    #32576451
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Чего только не узнаешь о себе...
...
Рейтинг: 0 / 0
Запрос в теле программы возвращает только 1 запись
    #32576453
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А я все кручу в голове (циклом) вот это:

(c)VIGНе самый плохой вариант.И во многих случаях гораздо более быстрый.
Не могу понять, когда так может получиться.
...
Рейтинг: 0 / 0
Запрос в теле программы возвращает только 1 запись
    #32576457
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В случае, если действительно надо узнать кол-во записей, movelast пожалуй будет работать быстрее, чем movenext:loop.
...
Рейтинг: 0 / 0
Запрос в теле программы возвращает только 1 запись
    #32576458
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
GeoВ случае, если действительно надо узнать кол-во записей, movelast пожалуй будет работать быстрее, чем movenext:loop.
Нет сомнения.
...
Рейтинг: 0 / 0
Запрос в теле программы возвращает только 1 запись
    #32576467
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычА я все кручу в голове (циклом) вот это:

(c)VIGНе самый плохой вариант.И во многих случаях гораздо более быстрый.
Не могу понять, когда так может получиться.
Да все просто. В конструкции
do while not rs.EOF
.....
loop
на каждой итерации проверяется значение свойства EOF обьекта Recordset
А обращение к свойству операция более медленная чем чтение значения переменной. На больших обьемах данных потери в производительности могут достигать 25-30%.
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос в теле программы возвращает только 1 запись
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]