|
v8: Запись вне транзакции | ☑ | ||
---|---|---|---|---|
0
Sh18
16.09.13
✎
10:48
|
Можно ли в транзакции создать запись в базе вне транзакции?
При длительной процедуре (обрезание) надо периодически писать лог (пройденные этапы и затраченное время). Удобнее бы в базе, но откат при ошибке все стирает. Можно обойти? Есть, конечно, вариант, в файл писать, но с них станется - они и файл откатят (не проверял). Но оч хотелось бы в базу... |
|||
1
Ненавижу 1С
гуру
16.09.13
✎
10:48
|
(0) а ты проверь!
|
|||
2
Sh18
16.09.13
✎
10:51
|
Эт понятно, но как насчет обхода транзакции? Вроде,нельзя, но народ на выдумки хитер
|
|||
3
Ненавижу 1С
гуру
16.09.13
✎
10:52
|
(2) да полно решений, можно поднимать COM-соединение и писать через него, можно вообще через ADO-соединение (для серверных БД).
|
|||
4
Serg_1960
16.09.13
✎
10:52
|
Пиши в ТЗ, по окончании транзакции - скидывай в базу.
|
|||
5
НЕА123
16.09.13
✎
10:52
|
(0)
>они и файл откатят как откатят? затрут? |
|||
6
Sh18
16.09.13
✎
10:53
|
(4) Класс! Что ж я такой тупой... Все гениальное - просто )) Спасибо!
|
|||
7
Defender aka LINN
16.09.13
✎
11:00
|
(6) И чем это тебе поможет, если у тебя транзакция всего одна?
Если она не одна - к чему вообще вопрос? З.Ы. Еще есть такая штука как Журнал Регистрации |
|||
8
Maxus43
16.09.13
✎
11:02
|
ЖР чем не угодил? Он и есть штатный Лог, независимый от транзакций
|
|||
9
cw014
16.09.13
✎
11:03
|
Мы делали через обработчик ожидания, который проверял наличие непустых строк в параметре сеанса и писал из
|
|||
10
cw014
16.09.13
✎
11:03
|
*тх
|
|||
11
Maxus43
16.09.13
✎
11:05
|
>>в файл писать, но с них станется - они и файл откатят
нет конечно, всё, что за пределами СУБД - не поджвержено влиянию её транзакций |
|||
12
Sh18
16.09.13
✎
11:25
|
Спасибо всем! ЖР - неудобно. Временная таблица - вполне компромиссное решение, разве что не покрывает вылет компа. Но это уже форс-мажор ))
|
|||
13
Sh18
16.09.13
✎
11:29
|
Нормальный вариант - другой поток, но, кажется, многопоточность 1С не поддерживает?
|
|||
14
Defender aka LINN
16.09.13
✎
11:30
|
(12) А, кстати, КУДА в базе ты это все писать будешь?
|
|||
15
s_ustinov
16.09.13
✎
11:39
|
(0) пишешь хранимую процедуру и вызываешь ее асинхронно на уровне sql - то есть из 1с дергаешь сервер субд, чтобы он выполнил хранимку
есть два варианта асинхронного вызова - скорее всего, примерно равнозначные http://www.sql.ru/forum/1036119/asinhronnoe-vypolnenie-procedury-sp-start-job-ili-service-broker-chto-vybrat |
|||
16
Sh18
16.09.13
✎
11:49
|
(15) Спасибо, но муторно
(14) У меня самописная, там есть несколько "моих" справочников )) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |