powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Error при большом количестве записей
7 сообщений из 7, страница 1 из 1
Error при большом количестве записей
    #32672857
PavelT100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Перебираю записи на VB6 используя ADO:
Код: plaintext
1.
2.
3.
4.
5.
6.
Dim rm As New ADODB.Recordset
Call rm.Open("select * from <Name Table>", <connection>, adOpenStatic, adLockReadOnly, adCmdText)
   
Do While Not rm.EOF
            ....
            rm.MoveNext
Loop

но когда записей в таблице больше порядка 48600 в моем случае возникает ошибка:
Error Number: 3251
Source : ADODB.Recordset
Description: Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype.


А как узнать заранее то максимальное колчество записей которое можно обработать за раз ?
...
Рейтинг: 0 / 0
Error при большом количестве записей
    #32673165
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На какой строчке возникает ошибка?
...
Рейтинг: 0 / 0
Error при большом количестве записей
    #32673321
МаксимВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело не в количестве записей. У тебя курсор окрыт только на чтение. Где-то ты в цикле пытаешся вызвать метод редактирования или дрогуй метод, который не поддерживается курсорм ReadOnly. У меня такой код работает без проблем(в таблице TABLE1 927 239 записей ):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Private Sub Form_Load()
Dim cn As ADODB.Connection, rs As Recordset, com As ADODB.Command
    Set cn = New ADODB.Connection
    Set rs = New ADODB.Recordset
    cn.ConnectionString = "DSN=DB1"
    cn.CursorLocation = adUseClient
    cn.Open
    rs.Open "select top 50000 * from TABLE1", cn, adOpenStatic, adLockOptimistic, adCmdText
    rs.MoveFirst
    Do While Not rs.EOF
        rs.MoveNext
    Loop
End Sub
...
Рейтинг: 0 / 0
Error при большом количестве записей
    #32673399
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2МаксимВ
имхо дело не в ReadOnly а в серверном курсоре, который исп по умолчанию
у вас все работает благодаря
cn.CursorLocation = adUseClient
...
Рейтинг: 0 / 0
Error при большом количестве записей
    #32673495
МаксимВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка в любом случае из-за ссылки на метод или свойство, который курсор не поддерживает. Если это курсор на сервере, то может быть rs.AbsolutePosition или еще чего-нибудь. Это нужно код цикла смотреть.
...
Рейтинг: 0 / 0
Error при большом количестве записей
    #32673614
PavelT100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy На какой строчке возникает ошибка?
Ошибка возникла на строке rm.MoveNext.

МаксимВ - Я разбил запрос на части, типа:
Код: plaintext
1.
2.
select * from Jour_591  where Op_numb >'0000000000' and Op_numb<='0000030000' order by Op_numb

select * from Jour_591  where Op_numb >'00000300000' and Op_numb<='0000060000' order by Op_numb

и последовательно его выполнил. У меня все получилось. А вот все сразу не работает. Цикл обработки у меня, конечно, один и тот же.
...
Рейтинг: 0 / 0
Error при большом количестве записей
    #32675256
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помню, у меня однажды была такая же ошибка, но как решил не помню. Попробуй поменять параметры курсора.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Error при большом количестве записей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]