Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.03.05;
Скачать: [xml.tar.bz2];

Вниз

Транзакция на стороне клиента   Найти похожие ветки 

 
Hooch   (2004-02-09 14:19) [0]

День добрый !
Как в хранимой процедуре можно узнать что транзакция стартована с клиента ? т.е. на клиенете пишем


adoConnection.BeginTrans;
if adoConnection.InTransaction then
try
adoConnection.Execute("test");
adoConnection.CommitTran;
except
adoConnection.RollbackTrans;
end;


процедура test


create procedure test as
begin
if @@TranCount = 0
raiserror("no tran", 16, 10)
end


в результате выполнения на клиенте получаем "no tran"


 
KSergey   (2004-02-09 14:22) [1]

Сказать по-правде, хоть это и не ответ на вопрос, но лучше уж тогда на сервере же транзакциями и рулить, а не пускать их с клиента...
А вообще, конечно, занятно...


 
Hooch   (2004-02-09 14:31) [2]


> но лучше уж тогда на сервере же транзакциями и рулить, а
> не пускать их с клиента


отсюда вопрос и пошел, начал переносить транзакции на сервер, и случайно напоролся на такой странный эффект


 
KSergey   (2004-02-09 14:33) [3]

Значит забыть об нем как о страшном сне и не пользовать в дальнейшем ;) На неувязочку плюнуть - есть и другие задачи.
Хотя поразбираться и занятно ;)


 
VLAD-MAL   (2004-02-09 15:07) [4]

Типа, э ...
Ответ:
Ну, раз мы уже в процедуре, то кто-то на клиенте транзакцию все-таки стартанул :)

А транзакции на сервере не запустишь. Они ж транзакции, их родители - всегда коиенты.
Может, тебя интерусиет что-нибудь другое, типа с какого компьютера было подключение?


 
Nikolay M.   (2004-02-09 15:52) [5]


> А транзакции на сервере не запустишь. Они ж транзакции,
> их родители - всегда коиенты.

С какого потолка взят этот бред? Или я понял не то, что тут имелось ввиду?

По сабжу: как вариант, можно сделать в процедуре дополнительный параметр-флажок, который будет указывать, запущена процедура с клиента или с сервера.
А вообще мне лично непонятен смысл сих манипуляций, не говоря уже о ненадежности варианта, когда транзакциями рулит клиент.


 
VLAD-MAL   (2004-02-09 15:55) [6]

2 Nikolay M. © (09.02.04 15:52) [5]

С какого потолка взят этот бред? Или я понял не то, что тут имелось ввиду?



Вы не согласны?


 
ZrenBy   (2004-02-09 15:58) [7]

Я не согласен с VLAD-MAL
Я согласен с Nikolay M.

А транзакции на сервере не запустишь. - это бред


 
VLAD-MAL   (2004-02-09 16:00) [8]

Ну, за удачу!


 
Nikolay M.   (2004-02-09 16:31) [9]


> VLAD-MAL (09.02.04 15:55) [6]
> 2 Nikolay M. © (09.02.04 15:52) [5]
> С какого потолка взят этот бред? Или я понял не то, что
> тут имелось ввиду?
> Вы не согласны?


Нет, конечно.
BEGIN TRANSACTION
ROLLBACK TRANSACTION
COMMIT TRANSACTION
из T-SQL reference о чем-нибудь говорит?


 
VLAD-MAL   (2004-02-09 16:41) [10]

Ох-хо-хо.


 
Sandman25   (2004-02-09 16:45) [11]

Есть ХП генерации документа. Есть 2 варианта использования данной ХП - либо она запускается независимо (и тогда транзакция должна быть начата и закончена самой ХП-ой), либо она запускается из другой ХП, которая кроме вызова первой ХП сама тоже работает с БД (документ из первой ХП становится частью группы документов). Во втором случае транзакция начинается и заканчивается из "внешней" ХП.
В качестве решения используется дополнительный параметр ХП, как предлагал и
[5] Nikolay M. © (09.02.04 15:52). В случае возникновения исключения ХП проверяет по параметру, следует ли откатывать транзакцию, или это сделает внешняя процедура.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.03.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.006 c
3-12256
SasaR
2004-02-09 12:54
2004.03.05
Перекачивание данных


1-12358
Builder
2004-02-25 10:47
2004.03.05
файлы


1-12368
ZyXel
2004-02-25 00:03
2004.03.05
Модули


14-12526
Nous Mellon
2004-02-11 19:22
2004.03.05
Как вы относитесь к творчеству Бориса Акунина?


4-12583
_BladeR
2003-12-30 04:12
2004.03.05
Вопрос по глобальному hook.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский