|
Ado.RecordCount -1
|
|||
---|---|---|---|
#18+
Коллеги, как лечится RecordCount -1 На форуме много ответов, но не нашел работающего Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2006, 15:23 |
|
Ado.RecordCount -1
|
|||
---|---|---|---|
#18+
А так? автор rs.MoveLast MsgBox rs.RecordCount ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2006, 15:34 |
|
Ado.RecordCount -1
|
|||
---|---|---|---|
#18+
Набор строк не поддерживает обратную передачу ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2006, 15:38 |
|
Ado.RecordCount -1
|
|||
---|---|---|---|
#18+
у тебя к rs не привязан запросом или таблица rs коннект есть надо еще вставть запрос rs.Open "Select * from table",rs.activeconnection,adOpenStatic комманд в данном контексте не связан с рекордсетом лучше сделай так "Select * from table where on = '" & Text.Text & "'",rs.activeconnection,adOpenStatic если тебе нужна выборака в sql по переменной VB то можно обойтись без параметра а просто скомбинировать запрос с перемнной Vb ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2006, 15:51 |
|
Ado.RecordCount -1
|
|||
---|---|---|---|
#18+
есть вот такая вещь Код: plaintext
это 2-я строчка снизу использую объект Command, что бы можно было использовать переменные привязки. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2006, 15:57 |
|
Ado.RecordCount -1
|
|||
---|---|---|---|
#18+
извеняюсь на счет у тебя к rs не привязан запросом или таблица не заметил в коде это Set rs = cmd.Execute MsgBox rs.RecordCount а по поводу параметра попробуй обойтись без него ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2006, 15:58 |
|
Ado.RecordCount -1
|
|||
---|---|---|---|
#18+
параметр, это принципиальная вещь, не откажусь иначе кеш разбора SQL команд забивается, и проседает перформанс. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2006, 16:04 |
|
Ado.RecordCount -1
|
|||
---|---|---|---|
#18+
какая то засада даже после того, как пробежал все строки, выдает RecordCount = -1 Код: plaintext 1. 2. 3. 4. 5.
даже после смены провайдера но оракловский Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2006, 16:22 |
|
Ado.RecordCount -1
|
|||
---|---|---|---|
#18+
solo28Набор строк не поддерживает обратную передачу MSDN 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. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2006, 16:28 |
|
Ado.RecordCount -1
|
|||
---|---|---|---|
#18+
это разве не то ? Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2006, 16:29 |
|
Ado.RecordCount -1
|
|||
---|---|---|---|
#18+
Не то. Вам уже ответили. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2006, 16:31 |
|
Ado.RecordCount -1
|
|||
---|---|---|---|
#18+
А так? автор Provider=MSDAORA ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2006, 16:40 |
|
Ado.RecordCount -1
|
|||
---|---|---|---|
#18+
Вдогонку... Строка подключения: авторTypical Connection String A typical connection string for this provider is: "Provider=MSDAORA;Data Source=serverName;User ID=userName; Password=userPassword;" ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2006, 16:42 |
|
Ado.RecordCount -1
|
|||
---|---|---|---|
#18+
Чтобы ваши рекордсеты смогли открываться как Static и, следовательно был RowCount <> -1, надо коннекшн открывать на стороне клиента. con.CursorLocation = adUseClient con.Open ...... по умолчанию коннекшн - на стороне сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2006, 16:53 |
|
Ado.RecordCount -1
|
|||
---|---|---|---|
#18+
to Melkiades если попытаться перевести MSDN по данной проблеме, то Тип курсора объекта Recordset затрагивает, может ли быть определено число строк. Значение RecordCount возвращает -1 для forward-only курсора; фактическое значение для static или keyset cursor; и -1 или фактическое значение для dynamic cursor. Если я использую Код: plaintext 1.
то должно возвращаться верное значение ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2006, 16:58 |
|
Ado.RecordCount -1
|
|||
---|---|---|---|
#18+
поменял провайдера на Provider=MSDAORA результат прежний неужели ни кто не сталкивался с такой проблемой при работеADO c базами Oracle ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2006, 17:14 |
|
Ado.RecordCount -1
|
|||
---|---|---|---|
#18+
to Worobjoff спасибо, получилось ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2006, 17:21 |
|
Ado.RecordCount -1
|
|||
---|---|---|---|
#18+
WorobjoffЧтобы ваши рекордсеты смогли открываться как Static и, следовательно был RowCount <> -1, надо коннекшн открывать на стороне клиента. con.CursorLocation = adUseClient con.Open ...... по умолчанию коннекшн - на стороне сервера. Можно переопределить это для каждого рекордсета... Ничего не мешает сделать вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Я проморгал, что рекордсет в данном примере открывается через Execute :-(... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2006, 17:57 |
|
Ado.RecordCount -1
|
|||
---|---|---|---|
#18+
почему то разработчики стандарта ADO забыли добавить возможность привязывать переменные к RecordSet, поэтому весь этот изврат с Command.Execute ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2006, 18:04 |
|
Ado.RecordCount -1
|
|||
---|---|---|---|
#18+
Резюме: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Все . ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2006, 18:06 |
|
Ado.RecordCount -1
|
|||
---|---|---|---|
#18+
solo28почему то разработчики стандарта ADO забыли добавить возможность привязывать переменные к RecordSet, поэтому весь этот изврат с Command.Execute Тогда так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2006, 18:12 |
|
Ado.RecordCount -1
|
|||
---|---|---|---|
#18+
solo28почему то разработчики стандарта ADO забыли добавить возможность привязывать переменные к RecordSet, поэтому весь этот изврат с Command.ExecuteПравильно сказать по-другому: Разработчики ADO ограничили доступ к объектам Command рекордсета. Мы не можем обращаться к этим четырем Command-ам рекордсета посредством которых он обращается к БД. В dotnet это стало возможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2006, 08:50 |
|
Ado.RecordCount -1
|
|||
---|---|---|---|
#18+
Как правильно сгенерировать значения ADO RecordCount в VB... авторSet recordset = command.Execute( RecordsAffected , Parameters, Options ) RecordsAffected - тоже даёт -1? Также, для MSSQL можно заюзать @@RECORDCOUNT... Или это был риторический вопрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2006, 09:13 |
|
Ado.RecordCount -1
|
|||
---|---|---|---|
#18+
buser Как правильно сгенерировать значения ADO RecordCount в VB... авторSet recordset = command.Execute( RecordsAffected , Parameters, Options ) RecordsAffected - тоже даёт -1? Также, для MSSQL можно заюзать @@RECORDCOUNT... Или это был риторический вопрос? Поправка: Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2006, 09:46 |
|
Ado.RecordCount -1
|
|||
---|---|---|---|
#18+
Прочитал я совет по указанной ссылке и должен привести два замечания к статье: 1. Однако вам будет также интересно узнать, что значение RecordCount равно -1 для наборов записей, созданных с помощью метода Execute для объекта Connection или Command. Это происходит потому, что данный метод генерирует набор записей, перемещаться по которому можно только вперед ...- В данном случае, рекордсет Можно настроить чтобы он не был ForwardOnly. 2. Не все провайдеры поддерживают рекордсеты Keyset. Но все (или по крайней мере все с которыми пришлось мне столкнуться) поддерживают Static-рекордсеты. Поэтому коннекшн на стороне клиента плюс статик рекордсет Всегда даст вам RecordCount <> -1. Даже если открыть его как Set rs = Command1.Execute. Единственное замечание к последней конструкции: тип блокировки и тип курсора рекордсета надо указать. И до его открытия. Конечно, надо давать себе отчет в том что тогда мы будем работать с Оптимистической блокировкой. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2006, 10:13 |
|
|
start [/forum/topic.php?fid=60&msg=33559165&tid=2155225]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 307ms |
total: | 448ms |
0 / 0 |