Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> transactions в ADO, пересылка данных между машинами 
:(
    Опции темы
nicka
  Дата 9.10.2003, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 11.6.2003

Репутация: нет
Всего: 1



У меня следующий вопрос:
Вот допустим имееться 2 машины, между которыми налаживаеться коннект через модем. Затем надо посылать данные с одной машины на другую, с Access в Access. Я в начале хотела делать это с помощью запросов, но потом добрие люди подсказали, что это не надежный метод, надо предусмотреть случай, когда коннект вдруг отключиться и может произоти нарушение целостности базы данных, поэтому надо использовать транзакции. Я так и сделала
вот код
Код
Private Sub Command0_Click()
Dim strsql As String
Dim rst1 As New ADODB.Recordset
On Error GoTo Err_h


cnn_open 'процедура в кторой открываеться объект connection - cnn

   cnn.BeginTrans
   strsql = "SELECT countries.country FROM countries;"
   strsql1 = "SELECT aaa FROM table1;"
   rst_open strsql, 1
   
   With rst1
       Set .ActiveConnection = cnn
       .CursorType = adOpenKeyset
       .LockType = adLockOptimistic
       .Source = strsql1
       .Open
   End With
   
   rst.MoveFirst
   Do Until rst.EOF
       rst1.AddNew
       rst1!aaa = rst.Fields(0).Value
       rst1.Update
       rst.MoveNext
   Loop

   
   cnn.CommitTrans

cnn_close 'процедура в которой закрываеться объект connection -cnn

Exit_Command0_Click:
   Exit Sub

Err_h:
   cnn.RollbackTrans
   Resume Exit_Command0_Click
End Sub


, но возникает следующий вопрос: если коннект нарушиться, то и cnn.RollbackTrans произоити не сможет? Правильно я действую и прамвильный ли мой вопрос?

PM MAIL   Вверх
cardinal
Дата 9.10.2003, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Я сразу скажу, что в сетевых делах мало что понимаю, но помоему до
Код
cnn.CommitTrans

никаких изменений не происходит, а вообще почитай тут.




--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
nicka
Дата 14.10.2003, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 11.6.2003

Репутация: нет
Всего: 1



но допустим прозошел частичный cnn.CommitTrans, то есть часть данных успела отослаться, а часть нет(произошло отключение соединения), ведь тогда надо сделать cnn.RollbackTrans, но ведь соеднения уже нет, значит ли это, что в данном случае транзакции не подходят и что взять взамен?

Может перед Insert-ом делать Delete всех недописанных записей?
PM MAIL   Вверх
Unregistered
Дата 15.10.2003, 10:27 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











no ideas?
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0471 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.