Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/40: Рейтинг темы: голосов - 40, средняя оценка - 4.93
0 / 0 / 1
Регистрация: 18.07.2013
Сообщений: 67

RecordCount возвращает -1

22.08.2013, 07:25. Показов 7980. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня!
И раньше сталкивался с таким но не найдя ничего в гугле делал по другому.

Вот опять такое всплыло: rs.RecordCount возвращает -1

Visual Basic
1
2
3
  strsql = " ***"
        Set rs = cn.Execute(strsql)
        Frequency_NEW = Round((rs.RecordCount / rs.Fields("Cycle")), 1)
Запускаю отладку по шагам:
Запрос нормальный. Смотрю значение strsql в immediate, проверяю его на sql servere, все норм.
Делаю exexute. Смотрю rs в immediate он заполнен.
Смотрю rs.RecordCount а он -1.

Кто-нить сталкивался с подобным?

(запрос тут писать не стал потому что он большой, но рабочий точно)

Добавлено через 7 минут
Из окна immediate:
?rs.Fields("Cycle")
2
?rs.RecordCount
-1
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.08.2013, 07:25
Ответы с готовыми решениями:

Вопрос по Recordset.RecordCount
В книге написано, что значение RecordCount RecordSet-а при некоторых 'типах курсора' (не знаю, как это по-русски, документация немецкая),...

Проблемы с свойством RecordCount элемента Data (VB 6.0)
Используется Access'овская база. Data1.Recordset.RecordCount в начале выполнения программы выдаёт 1, а через некоторое времени, даже если...

Особенности использования свойства RecordCount с объектом ADO
Люди добрые, подскажите при каких настройках корректно работает RecordCount, MoveLast, AbsolutePosition, при использовании ADO

10
Заблокирован
22.08.2013, 07:53
Visual Basic
1
2
3
4
5
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Open "SQL запрос", conn, adOpenDynamic, adLockBatchOptimistic
msgbox rs.RecordCount
Set rs = Nothing
1
0 / 0 / 1
Регистрация: 18.07.2013
Сообщений: 67
22.08.2013, 08:28  [ТС]
Цитата Сообщение от inv.DS Посмотреть сообщение
Visual Basic
1
2
3
4
5
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Open "SQL запрос", conn, adOpenDynamic, adLockBatchOptimistic
msgbox rs.RecordCount
Set rs = Nothing
Спасибо в очередной раз)
CursorLocation помог.
Можешь объяснить в чем функционал этого свойства?
0
Заблокирован
22.08.2013, 08:46
Читал давно не могу вспомнить.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38199 / 21131 / 4310
Регистрация: 12.02.2012
Сообщений: 34,738
Записей в блоге: 14
22.08.2013, 09:52
recordCount обычно не нужен... Чтобы обработать все записи рекордсета последовательно, можно применить такой код:

Visual Basic
1
2
3
4
Do While Not rs.EOF
    ' обработка текущей записи
    rs.MoveNext
Loop
Для чего еще может быть нужен recordCount?
0
Заблокирован
22.08.2013, 11:17
Лучший ответ Сообщение было отмечено The trick как решение

Решение

На будущие:

RecordCount возвращает -1
Означает, что позиция набора записей не сдвигается с 1 строчки, то есть создав набор данных из базы данных мы не двигаемся ни вперед ни назад, а стоим на 0 позиции.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38199 / 21131 / 4310
Регистрация: 12.02.2012
Сообщений: 34,738
Записей в блоге: 14
22.08.2013, 12:29
Цитата Сообщение от inv.DS Посмотреть сообщение
Означает, что позиция набора записей не сдвигается с 1 строчки, то есть создав набор данных из базы данных мы не двигаемся ни вперед ни назад, а стоим на 0 позиции.
- где это написано?
0
Заблокирован
22.08.2013, 17:02
Catstail, MSDN (c)
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38199 / 21131 / 4310
Регистрация: 12.02.2012
Сообщений: 34,738
Записей в блоге: 14
22.08.2013, 17:07
Цитата Сообщение от inv.DS Посмотреть сообщение
MSDN
- то-то я смотрю, что фраза не вполне русская... Статьи из MSDN переводятся программно. Поэтому и получается фигня: "создав набор данных из базы данных мы не двигаемся ни вперед ни назад, а стоим на 0 позиции". А зачем такой набор создавать? Ведь глупость!
0
Заблокирован
22.08.2013, 17:31
Catstail, Не я писал не я источник. Не могу объяснить, базы учил по Интернету, и по большому счету с буржуйских сайтов, где сам переводил, где Google переводчик.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38199 / 21131 / 4310
Регистрация: 12.02.2012
Сообщений: 34,738
Записей в блоге: 14
22.08.2013, 17:45
Я без претензий... Вот хорошее руководство по ADO на литературном русском
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.08.2013, 17:45
Помогаю со студенческими работами здесь

Помогите по SQL код здесь, recordcount неправильно выдает?
Надо найти сколько одинаковых данных cret = recset.Fields(0).Name + '='' & Trim(recset.Fields(0).Value) & ''' Set tb1 =...

RecordCount возвращает 1
Ситуация такова, делаю тест с бд access, хочу сделал так что перед началом прохождения в событии OnShow записываю в переменную количество...

MyRecordset.RecordCount ВОЗВРАЩАЕТ -1?!!
Хочу получить количество записей в recordSet'e, а это свойство выдает -1 В чем грабли?

RecordCount возвращает значение -1
помогите справится с этим куском, RecordCount возвращает значение -1, как такое может быть? <% Set db =...

Св-во RecordCount объекта RecordSet возвращает -1
??? почему... хотя в RecordSet на самом деле есть записи... может как-то по другому надо определять колличество записей RecordSet?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru