Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ADODB.Recordset Update / 6 сообщений из 6, страница 1 из 1
19.06.2006, 08:37
    #33798613
pr0tean
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.Recordset Update
Возникла пока-что неразрешимая проблема с обновлением информации в базе данных. Т.е. идут последовательно два обновления (см. код), при этом на одном компьютере почему-то второе обновление иногда не проходит 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
19.06.2006, 08:52
    #33798632
Igor86
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.Recordset Update
Я бы код написал несколько иначе:
l_strSQL = "UPDATE tcenters SET npackage=" & l_NPackage & " WHERE visible=.T."
l_objDBCConnection.Execute l_strSQL
И соответственно аналогично сделал-бы для таблицы tjournal
Лично я так делаю всегда. Проблем пока никаких не наблюдал.

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


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