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

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

22.08.2013, 07:25. Показов 4938. Ответов 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)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.08.2013, 07:25
Ответы с готовыми решениями:

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

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

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

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

10
Заблокирован
22.08.2013, 07:53 2
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  [ТС] 3
Цитата Сообщение от 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 4
Читал давно не могу вспомнить.
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
29987 / 16464 / 3333
Регистрация: 12.02.2012
Сообщений: 27,391
Записей в блоге: 5
22.08.2013, 09:52 5
recordCount обычно не нужен... Чтобы обработать все записи рекордсета последовательно, можно применить такой код:

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

Решение

На будущие:

RecordCount возвращает -1
Означает, что позиция набора записей не сдвигается с 1 строчки, то есть создав набор данных из базы данных мы не двигаемся ни вперед ни назад, а стоим на 0 позиции.
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
29987 / 16464 / 3333
Регистрация: 12.02.2012
Сообщений: 27,391
Записей в блоге: 5
22.08.2013, 12:29 7
Цитата Сообщение от inv.DS Посмотреть сообщение
Означает, что позиция набора записей не сдвигается с 1 строчки, то есть создав набор данных из базы данных мы не двигаемся ни вперед ни назад, а стоим на 0 позиции.
- где это написано?
0
Заблокирован
22.08.2013, 17:02 8
Catstail, MSDN (c)
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
29987 / 16464 / 3333
Регистрация: 12.02.2012
Сообщений: 27,391
Записей в блоге: 5
22.08.2013, 17:07 9
Цитата Сообщение от inv.DS Посмотреть сообщение
MSDN
- то-то я смотрю, что фраза не вполне русская... Статьи из MSDN переводятся программно. Поэтому и получается фигня: "создав набор данных из базы данных мы не двигаемся ни вперед ни назад, а стоим на 0 позиции". А зачем такой набор создавать? Ведь глупость!
0
Заблокирован
22.08.2013, 17:31 10
Catstail, Не я писал не я источник. Не могу объяснить, базы учил по Интернету, и по большому счету с буржуйских сайтов, где сам переводил, где Google переводчик.
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
29987 / 16464 / 3333
Регистрация: 12.02.2012
Сообщений: 27,391
Записей в блоге: 5
22.08.2013, 17:45 11
Я без претензий... Вот хорошее руководство по ADO на литературном русском
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.08.2013, 17:45

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.