Форум: "Базы";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
ВнизТранзакции Найти похожие ветки
← →
Ross (2004-06-30 12:36) [0]Насколько я понял, существует 2 вида транзакций. Одни выполняются на стороне сервера, другие на стороне клиента. Вопрос: AdoConnection.BeginTrans открывает транзакцию на стороне клиента?
← →
Nikolay M. © (2004-06-30 12:58) [1]Нет, все не так. Откуда пришла такая инфа?
← →
Ross (2004-06-30 13:17) [2]Нет литературы, это мое суждение. А как можно при помощи AdoConnection "указать", на какой стороне должна выполниться транзакция. И как можно узнать на какой стороне она выполнилась?
← →
Vlad © (2004-06-30 13:21) [3]
> Ross (30.06.04 13:17) [2]
Что такое "транзакция на стороне клиента" ?
Может ты путаешь с курсором ?
← →
Ross (2004-06-30 13:34) [4]К сожалению, не помню источник, но я слышал именно о транзакциях на стороне сервера и на стороне клиента. К примеру, в программе, при нажатии на кнопку выполняется код:
Try
AdoConnection.BeginTrans;
....//выполнение операций с данными
AdoConnection.CommitTrans;
Except
AdoConnection.RollbackTrans;
End;
Если во время выполнения выключается компьютер клиента, то что происходит в этом случае?
← →
Nikolay M. © (2004-06-30 13:36) [5]
> я слышал именно о транзакциях на стороне сервера и на стороне
> клиента
Слышал звон...
Скорее, о ЗАПУСКЕ транзакций на клиенте и сервере.
> Если во время выполнения выключается компьютер клиента,
> то что происходит в этом случае?
http://www.sql.ru/forum/actualthread.aspx?bid=1&tid=103478
← →
Vlad © (2004-06-30 13:39) [6]
> Ross (30.06.04 13:34) [4]
Сама транзакция работает на сервере. Открыта она может быть и на клиенте и на сервере.
> Если во время выполнения выключается компьютер клиента,
> то что происходит в этом случае?
Автоматически закрывается коннект к базе, соотв. закрывается и транзакция
← →
Vlad © (2004-06-30 13:40) [7]
> Открыта она может быть и на клиенте и на сервере.
В том смысле что клиент только дает сигнал на открытие транзакции серверу.
← →
bushmen © (2004-06-30 13:55) [8]> Если во время выполнения выключается компьютер клиента,
> то что происходит в этом случае?
Причем не просто закрывается, а откатывается.
← →
Ross (2004-06-30 13:57) [9]to Nikolay M. © (30.06.04 13:36) [5]:
к сожалению, у меня ссылка не заработала
>Автоматически закрывается коннект к базе, соотв. закрывается и транзакция
И происходит откат ее?
← →
Vlad © (2004-06-30 13:58) [10]
> Ross (30.06.04 13:57) [9]
Да, см. bushmen © (30.06.04 13:55) [8]
← →
Ross (2004-06-30 14:00) [11]Ross (30.06.04 13:57) [9]
Извините, не обновил вовремя: bushmen © (30.06.04 13:55) [8]
← →
Ross (2004-06-30 14:06) [12]А как лучше: через AdoConnection, или создать хранимую процедуру на сервере. Почему спрашиваю: сначала хотел через процедуру на сервере, но никак не мог вывести результат в переменную (1-выполнена, 0-откат), и в зависимости от этого вывести на клиенте сообщение об успешном или нет завершении. Потом мне посоветовали использовать AdoConnection.BeginTrans....
← →
bushmen © (2004-06-30 14:18) [13]>но никак не мог вывести результат в переменную (1-выполнена, 0->откат)
А какие проблемы?
create procedure test(@res int out) as
begin
set @res=1
begin tran t1
insert into ....
if @@error<>0 goto ErrTran
insert into ...
if @@error<>0 goto ErrTran
commit tran t1
return
ErrTran:
rollback tran t1
set @res=0
return
end
← →
Курдль © (2004-06-30 15:33) [14]
> bushmen © (30.06.04 14:18) [13]
> >но никак не мог вывести результат в переменную (1-выполнена,
> 0->откат)
>
> А какие проблемы?
Проблемы в методологии. Многие СУБД не дадут подтвердить транзакцию из процедуры. Да и кому это надо?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.039 c