AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.07.2003, 08:14   #1  
Incontrovertable is offline
Incontrovertable
Участник
 
4 / 10 (1) +
Регистрация: 03.03.2003
? Доступ через C/ODBC: Транзакции
Здравствуйте!

Я использую C/ODBC для доступа к БД Navision Attain и работаю с помощью ADO.
Возникает непонятная ошибка, связанная с транзакциями.

// Set ConnectionObj = CreateObject ("ADODB.Connection")

Попытка начать транзакцию заканчивается успешно (метод ConnectionObj.BeginTrans возвращает 1), но любая попытка позже вызвать ConnectionObj.CommitTrans (или ConnectionObj.RollbackTrans) заканчивается ошибкой:
-----------------------------------------------------
Ошибка: Активные транзакции отсутствуют.
Источник: Microsoft OLE DB Provider for ODBC Drivers
-----------------------------------------------------

В чем может быть проблема? Поддерживает ли C/ODBC транзакции вообще?


Заранее благодарен.
Старый 07.07.2003, 08:57   #2  
Aethete is offline
Aethete
Участник
 
14 / 10 (1) +
Регистрация: 27.06.2003
... может быть ...
Любой запрос к БД неявно инициализирует транзакцию.

На мой взгляд (возможно неверный)
подобное поведение может быть вызвано следующей причиной -
В настройках указан AutoCommit ... вследствие чего после успешного выполнения
запроса транзакция коммитится... или откатывается в противном случае ...
без участия разработчика...


Транзакция - есть единица работы СУБД и по этой причине транзакции просто ОБЯЗАНЫ наличиствовать.
Старый 07.07.2003, 09:27   #3  
Incontrovertable is offline
Incontrovertable
Участник
 
4 / 10 (1) +
Регистрация: 03.03.2003
AutoCommit
В настройках C/ODBC отключил опцию Commit Cache (хотя не уверен, что это то самое).
Но ошибка осталась и появляется, даже если BeginTrans и CommitTrans поставить рядом:
ConnectionObj.BeginTrans
ConnectionObj.CommitTrans

Наверное, проблема в чем-то другом?
Старый 07.07.2003, 10:06   #4  
Aethete is offline
Aethete
Участник
 
14 / 10 (1) +
Регистрация: 27.06.2003
re
CommitCache - позволяет производить ряд модификаций,
а потом скопом их фиксировать ...
Старый 07.07.2003, 16:40   #5  
Sand is offline
Sand
Участник
 
16 / 10 (1) +
Регистрация: 23.05.2003
Aethete прав.

Если вы имеет доступ к сервисной службе Navision (NSS), то, задав запрос "С/ODBC AND transaction" вы найдете такой ответ от 9 мая 2003 года на вопрос (DE-803-617-NBK5) о возможности управления транзакциями в C/ODBC :

"The SQLTransact() function in C/ODBC does nothing (this would be used to perform manual transactions), and its correct that the auto_commit option is always on and does not complain about an attempt to turn it off. Therefore it is not possible to handle transactions with the ODBC driver

This is of cause not very good, we are currently looking into redesigning our driver, and you question is taken into considuration when designing the next version of the C/ODBC driver."
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вопрос от чайника по работе с ODBC poul_and NAV: Прочие вопросы 4 15.02.2006 05:03
ODBC.DLL unalexia NAV: Программирование 1 28.12.2005 16:33
Navision Attain через Citrix Alex_V NAV: Администрирование 2 15.12.2003 17:43
доступ к элементам дизайна Alex_V NAV: Программирование 4 05.09.2003 09:30
C/FRONT C/ODBC Вождь NAV: Программирование 2 28.07.2003 15:57

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:59.