powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ADODB.Recordset Update
6 сообщений из 6, страница 1 из 1
ADODB.Recordset Update
    #33798613
pr0tean
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возникла пока-что неразрешимая проблема с обновлением информации в базе данных. Т.е. идут последовательно два обновления (см. код), при этом на одном компьютере почему-то второе обновление иногда не проходит 8( Доступ к этому компу у меня ограничен, т.е. ставить на него ничего не могу, и особо копаться тоже, а смоделировать у себя или других машинах похожей конфигурации не удалось. В чем может быть загвоздка для меня остается загадкой, есть предположение, что драйвер мутит воду или из-за того, что БД находится на сетевом диске, а может и параметры RecordSet'а не те поставил, черт его знает. Может кто сталкивался с аналогичным эпизодом?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
' обновить таблицу tcenters  обновить поле npackage
l_strSQL = "UPDATE " & ConnectionParam.strTCS & " SET npackage=" & l_NPackage & "WHERE visible=.T."
l_objRecordSet.Open l_strSQL, l_objDBCConnection, adOpenDynamic, adLockOptimistic
l_objRecordSet.Close
    
' обновить таблицу tjournal
l_strSQL = "UPDATE " & ConnectionParam.strTJL & " SET state=" & l_NPackage & "WHERE state>=0 " & l_strSQLCenters
l_objRecordSet.Open l_strSQL, l_objDBCConnection, adOpenDynamic, adLockOptimistic
l_objRecordSet.Close

Set l_objRecordSet = Nothing


l_objDBCConnection.Close
Set l_objDBCConnection = Nothing
...
Рейтинг: 0 / 0
ADODB.Recordset Update
    #33798632
Igor86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы код написал несколько иначе:
l_strSQL = "UPDATE tcenters SET npackage=" & l_NPackage & " WHERE visible=.T."
l_objDBCConnection.Execute l_strSQL
И соответственно аналогично сделал-бы для таблицы tjournal
Лично я так делаю всегда. Проблем пока никаких не наблюдал.

Насколько я помню, в литературе рекомендуют не использовать
динамические курсоры, если в них нет крайней нужды.
Для обновлений можно обойтись и статическим курсором.
...
Рейтинг: 0 / 0
ADODB.Recordset Update
    #33798649
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на всякий случай можно закрывать connection поле каджого обновления
для обновления данных я в основном использую объект command а не рекордсет
и проблемм не возникало
...
Рейтинг: 0 / 0
ADODB.Recordset Update
    #33798661
pr0tean
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Про динамические курсоры я тоже читал, но так уж вышло, что читал параллельно написанию проги, поэтому и маленькие нестыковки получались, но в итоге все работало, правда пока не попался этот компьютер 8) Советы учту, спасибо.
...
Рейтинг: 0 / 0
ADODB.Recordset Update
    #33798858
pr0tean
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос в догонку. Операция l_objDBCConnection.Execute синхронная? Т.е. она возвращает управление только после обновления данных?
...
Рейтинг: 0 / 0
ADODB.Recordset Update
    #33801537
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зависит от опций... adAsyncExecute
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ADODB.Recordset Update
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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