Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [ADODB] Переход на сл. строку 
:(
    Опции темы
admsasha
Дата 16.3.2007, 07:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: 1
Всего: 6



Код

   Dim cnnADO As ADODB.Connection 
   Dim StrSQL As String 
   Set cnnADO = New ADODB.Connection 
   Dim Row As ADODB.Recordset

   cnnADO.Open "Provider=MSDASQL.1;Password=admin;Persist Security Info=True;User ID=admin;Extended Properties='DRIVER={MySQL ODBC 3.51 Driver};SERVER=192.200.0.1;PORT=3306;DATABASE=user;OPTION=3'" 
   StrSQL = "select * from user" 
   Set Row = cnnADO.Execute(StrSQL, , adCmdText) 

   Debug.Print Row(0) .Value
' Как перейти на следующую строку, чтобы получить следующее значении row(0) ? 
   stop
   cnnADO.Close





Вот интересный момент...  делаю стоп. и проверяю в дебугере.
Код
? row.RecordCount 
-1 

arr=row.GetRows 
? arr(0,0) 
login1 
? arr(0,1) 
login2 


как так ?? :-( 

PM MAIL WWW ICQ Jabber   Вверх
Akina
Дата 16.3.2007, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(admsasha @  16.3.2007,  08:34 Найти цитируемый пост)
Как перейти на следующую строку, чтобы получить следующее значении row(0)

Код

Row.MoveNext


Цитата(admsasha @  16.3.2007,  08:34 Найти цитируемый пост)
Вот интересный момент...  

Код

Set Row = cnnADO.Execute(StrSQL, , adCmdText)
' ОБЯЗАТЕЛЬНАЯ СТРОКА
Row.MoveFirst
' а вот теперь можно работать с рекордсетом



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
admsasha
Дата 16.3.2007, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: 1
Всего: 6



Код

Set Row = cnnADO.Execute(StrSQL, , adCmdText)
Row.MoveFirst


Добавил.. тоже самое.. :-(
PM MAIL WWW ICQ Jabber   Вверх
Naghual
Дата 16.3.2007, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



Значит запросом возвращается пустой рекордсет


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
admsasha
Дата 16.3.2007, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: 1
Всего: 6



Цитата(Naghual @  16.3.2007,  17:56 Найти цитируемый пост)
Значит запросом возвращается пустой рекордсет 


Тогда как объяснить ?
Код

? row.RecordCount 
-1 
arr=row.GetRows 
? arr(0,0) 
login1 
? arr(0,1) 
login2 


PM MAIL WWW ICQ Jabber   Вверх
Naghual
Дата 16.3.2007, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



Да, действительно интересно...
Не знаю как с АДО, но в ДАО в подобной ситуации помогает метод рекордсета Refresh.


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
Akina
Дата 16.3.2007, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата

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.

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.





--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Naghual
Дата 16.3.2007, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



Akina, как всегда, на высоте.   smile 


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
admsasha
Дата 20.3.2007, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: 1
Всего: 6



Akina, а как можно узнать количество, естественно не делая запроса count(*) ?

Это сообщение отредактировал(а) admsasha - 20.3.2007, 10:48
PM MAIL WWW ICQ Jabber   Вверх
Akina
Дата 20.3.2007, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



admsasha, как можно узнать количество, не узнавая его? вопрос более чем странный.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
admsasha
Дата 20.3.2007, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: 1
Всего: 6



Цитата(Akina @  20.3.2007,  18:47 Найти цитируемый пост)
admsasha, как можно узнать количество, не узнавая его? вопрос более чем странный. 
 Я подрузумевал альтернативу RecordCount... Ведь две выборки делать, это лишнее время.
PM MAIL WWW ICQ Jabber   Вверх
Akina
Дата 20.3.2007, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(admsasha @  20.3.2007,  13:04 Найти цитируемый пост)
 Я подрузумевал альтернативу RecordCount

RecordCount - это локальная обработка рекордсета на клиенте, а не дополнительный запрос.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
admsasha
Дата 20.3.2007, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: 1
Всего: 6



Цитата(Akina @  20.3.2007,  19:10 Найти цитируемый пост)
RecordCount - это локальная обработка рекордсета на клиенте, а не дополнительный запрос. 
 так про что и говорю   smile 

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0636 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.