Непонятная фигня с RecordCount

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
AndreyG_80
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 169
Зарегистрирован: 10.03.2006 (Пт) 13:27

Непонятная фигня с RecordCount

Сообщение AndreyG_80 » 16.07.2006 (Вс) 1:29

Подскажите в чем проблема?
Есть открытый рекордсет, он не пустой.
Как я пнимаю RecordCount должно возвращать кол-во записей рекордсета, а оно постоянно возвращает -1.
Че за фигня такя?
Проблема в RecordCount или в прокладке между монитором и стулом?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 16.07.2006 (Вс) 1:32

В ней, родимой.
Ибо поиск (наверху, выделен красным) по вот этому самому английскому слову даёт 107 результатов, из которых ответ уже в первой тройке.

Я причём только что закрыл тему автора, которая столь же элементарно находится в поиске... автор таки упорствует в своих заблуждениях и алкает различные ограничения доступа? :roll:
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

AndreyG_80
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 169
Зарегистрирован: 10.03.2006 (Пт) 13:27

Сообщение AndreyG_80 » 16.07.2006 (Вс) 1:51

Тыщу извенений
Но перед тем как создать тему я смотрел в поиск, оно ничего не нашло. Наверное неправильно RecordCount написал.
Ну что сделаешь, торможу, все таки ночть за окном
Еще раз прошу прощения, впредь буду повнимательней...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 16.07.2006 (Вс) 1:58

Ага.
Дык чё, нашёл?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

AndreyG_80
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 169
Зарегистрирован: 10.03.2006 (Пт) 13:27

Сообщение AndreyG_80 » 16.07.2006 (Вс) 2:13

Вот, чесное слово, только что смотрел в поиске.
Но толком так и не понял - почему возвращает -1, когда рекордсет не пустой?
Когда открываю статически adOpenStatic - все нормально
когда динамически adOpenDynamic - постоянно -1

Может кто-то объяснить как для чайника

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 16.07.2006 (Вс) 14:36

AndreyG_80
если вкрадце, то так:
Статический курсор - данные закачиваются на клиентскую машину и провайдер уже знает что и сколько он закачал
Динамический (Серверный) - курсор открывается на сервере и клиент через провайдера данных до конца не знает сколько будет данных по его запросу (иногда знает, но это зависит от конкретного сервера и поставщика услуг доступа).

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 16.07.2006 (Вс) 14:37

Konst_One
Фигню сказал.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

AndreyG_80
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 169
Зарегистрирован: 10.03.2006 (Пт) 13:27

Сообщение AndreyG_80 » 16.07.2006 (Вс) 15:08

И все таки, как при динамическом курсоре воспользоваться RecordCount'ом?
Или искать другие способы для посчета записей?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 16.07.2006 (Вс) 15:16

Никто не читает справку.
Никогда.
Всё понятно.
Ладно.


RTFM писал(а):Use the RecordCount property to find out how many records are in a Recordset object. The property returns -1 when ADO cannot determine the number of records or if the provider or cursor type does not support RecordCount. Reading the RecordCount property on a closed Recordset causes an error.

If the Recordset object supports approximate positioning or bookmarks—that is, Supports (adApproxPosition) or Supports (adBookmark), respectively, return True—this value will be the exact number of records in the Recordset, regardless of whether it has been fully populated. If the Recordset object does not support approximate positioning, this property may be a significant drain on resources because all records will have to be retrieved and counted to return an accurate RecordCount value.

NOTE: In ADO versions 2.8 and earlier, the SQLOLEDB provider fetches all records when a server-side cursor is used despite the fact that it returns True for both Supports (adApproxPosition) and Supports (adBookmark),

The cursor type of the Recordset object affects whether the number of records can be determined. The RecordCount property will return -1 for a forward-only cursor; the actual count for a static or keyset cursor; and either -1 or the actual count for a dynamic cursor, depending on the data source.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: SemrushBot и гости: 91

    TopList