Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Транзакции в ADO + WTL / 12 сообщений из 12, страница 1 из 1
11.07.2005, 16:42
    #33159820
CORALEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Транзакции в ADO + WTL
Проект на C++ (WTL, ADO)
Есть два диалога WTL

В одном "Создается транзакция: pCon->BeginTrans()"

Если в этой же функции создаются и открываются Recodsetы, все в порядке

Если в этой фунции создается диалог и в нем создается рекордсет открытии: "Cannot create new connection because in manual or distributed transaction mode"
...
Рейтинг: 0 / 0
11.07.2005, 16:56
    #33159855
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Транзакции в ADO + WTL
т.е. ты создаёшь транзакцию и стопоришь её модальным окном? А если мадам покурить ушла на пару часиков?
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
11.07.2005, 17:12
    #33159892
CORALEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Транзакции в ADO + WTL
Ну да, что же далать, нужно при после закрытия по OK модального диалога иметь возможность откатить из главной формы изменения
...
Рейтинг: 0 / 0
11.07.2005, 17:16
    #33159902
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Транзакции в ADO + WTL
CORALEXНу да, что же далать, нужно при после закрытия по OK модального диалога иметь возможность откатить из главной формы изменения
Надо же дать возможность простому пользователю подвесить систему на полдня. Но это относится скорее к проектированию, лирика, короче.
А проблема, imho, в и в нем создается рекордсет открытии , вернее, в том, как он там создается.
...
Рейтинг: 0 / 0
11.07.2005, 17:20
    #33159912
CORALEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Транзакции в ADO + WTL
Например так:

CoCreateInstance(__uuidof(Recordset), NULL, CLSCTX_ALL, __uuidof(_Recordset), (void**)&m_pRec);
m_pRec->CursorLocation = adUseClient;
_bstr_t query = "select ID_LICENZ, PR_IZMC, ID_IZMEN, VID_IZMC, DOCUM, NDOK, NDOC_RGF, CELI, OSNOV, ORGAN, PRIM, DPREDF, DNIZMP, DNIZMF, DOIZMP, DOIZMF, DREGD, DNRGF, CHANGE_DATE from IZMEN where ID_IZMEN=";
query += _bstr_t(m_iID);
m_pRec->Open(query, _variant_t((IDispatch *)m_pCon,true), adOpenForwardOnly, adLockOptimistic, adCmdUnspecified);
if (!m_bEdit) m_pRec->AddNew();


Потом m_pRec->Update();

Именно при Open возникает эта ошибка
...
Рейтинг: 0 / 0
11.07.2005, 17:25
    #33159923
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Транзакции в ADO + WTL
авторИменно при Open возникает эта ошибка
Перед Open, наверное, стоить дофетчить все открытые наборы на клиента и сказать им Close, может поможет.
...
Рейтинг: 0 / 0
11.07.2005, 17:32
    #33159945
CORALEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Транзакции в ADO + WTL
Да это так но почему работает в той же функции
...
Рейтинг: 0 / 0
11.07.2005, 23:12
    #33160317
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Транзакции в ADO + WTL
CORALEXНу да, что же далать, нужно при после закрытия по OK модального диалога иметь возможность откатить из главной формы изменения
Не ты первый, не ты последний , кто решил пойти по этому скользкому пути...
Хорошо, хоть идти тебе по нему очень недолго ... до первого внедрения. Работать это не будет. Надеюсь СУБД-то MSSQLServer ?
...
Рейтинг: 0 / 0
12.07.2005, 12:15
    #33160992
CORALEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Транзакции в ADO + WTL
Да SQL Server

Посоветуйте тогда как же сделать если в диалоге вводится запись, а потом выдается 2 MessageBox и если пользователь выбал нет, то нужно откатить изменения внесенные в диалоге, и далее целая серия изменений которые в случае ошибки также надо отменить (переоформление)
...
Рейтинг: 0 / 0
12.07.2005, 12:28
    #33161054
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Транзакции в ADO + WTL
Вы с Excell работали? Представьте что при вводе данных в таблицу будут появлятся 2 диалога. Зачем? Что за текст там?

опишите, не жалея чернил, что будет написано в Help'e к Вашей проге, чтобы не ставить пользователей в тупик.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
12.07.2005, 12:52
    #33161140
CORALEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Транзакции в ADO + WTL
Это переоформление лицензии, при нажатии на форме на кнопку появляется диалог где вводятся служебные данные по переоформлению записываются в таблицу (так построены формы (сохранение при выходе)) затем выбор лицензии на кот. преоф. или ввод новой и далее работа с таблицами лицензии и т.д.
...
Рейтинг: 0 / 0
12.07.2005, 13:26
    #33161259
Slava Soloviev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Транзакции в ADO + WTL
CORALEXЭто переоформление лицензии, при нажатии на форме на кнопку появляется диалог где вводятся служебные данные по переоформлению записываются в таблицу (так построены формы (сохранение при выходе)) затем выбор лицензии на кот. преоф. или ввод новой и далее работа с таблицами лицензии и т.д.

Лучше необходимые данные кешировать на клиенте выполнять с ними все действия, а уже потом в короткой транзакции писать на сервер...
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Транзакции в ADO + WTL / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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