Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Транзакция и Tableupdate / 5 сообщений из 5, страница 1 из 1
17.02.2005, 08:16
    #32919944
Alex*
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Транзакция и Tableupdate
Возможно ли использования в программе VFP 8 Begin Transaction, EndTransaction, Rollback без использования tableupdate и TableRevert?
Т.е. корректно ли будет работать такой код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
BEGIN TRANSACTION 
 TRY
  INSERT INTO Table1 (Field1, Field12);
…
   IF liId > liMaxId	&& проверка вставки логическая: все в порядке
    INSERT INTO Table2 (Field2_1, Field2_2);
...
 
   INSERT INTO Table3 (Field3_1, Field3_2);
…
   END TRANSACTION 
  Else
    This.iCodeError = - 1 
    Rollback
  Endif
 CATCH TO loException 
      Rollback
      This.SetErrorData (loException) 
 ENDTRY

Я погонял - вроде работает. Смущает то, что во всех примерах еще используется Tablerevert.
...
Рейтинг: 0 / 0
17.02.2005, 09:50
    #32920076
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Транзакция и Tableupdate
Транзакция и буферизация - это 2 разных процесса. Их можно использовать как вместе, так и по отдельности. Все зависит от конкретной задачи.

Внутри транзакции ни в коем случае нельзя организовывать ожидание реакции пользователя. Не в смысле "невозможно", а именно "не нужно".

Скачай вложенный файл отсюда

http://www.sql.ru/forum/actualthread.aspx?tid=155844#1284603

Там дается пояснение для чего используются транзакции и буферизация
...
Рейтинг: 0 / 0
17.02.2005, 12:25
    #32920567
Alex*
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Транзакция и Tableupdate
Спасибо за ссылку, я посмотрю.
Но вообще приведенная конструкция работоспособна. В смысле, что она работает то я проверил, наксолько она корректна.
А идея проста - откатить первый (и второй) Insert если произошла ошибка во втором (третьем) Insert'е
...
Рейтинг: 0 / 0
17.02.2005, 14:34
    #32921033
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Транзакция и Tableupdate
Корректна. Если таблицы в которые производится в ставка не буферизированы.
...
Рейтинг: 0 / 0
18.02.2005, 01:58
    #32922109
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Транзакция и Tableupdate
Hi ВладимирМ!

И если они включены в базу данных, или сделаны "поддерживающими транзакции"
через MAKETRANSACTABLE() в VFP9

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Транзакция и Tableupdate / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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