NexusSmallErp: ТекстовПоРепликации ...

Glavnaja Stranica | Каталог | Изменения | НовыеКомментарии | Пользователи | Вам запрещён доступРегистрация | Вход:  Пароль:  

Это кусок кода триггера, поддерживающего репликацию на публикаторе, в котором видно объявление переменной @at_publisher и далее по тексту сразу выполняется проверка на = 1. genstatus = 4, согласно документации тоже вызывает вопрос так как в доке приведены 0,1 и 2. Можно ли бороться с неправильной кодогенерацией с доступом в системе as Read Only?? Что морально испытывает человек, видя ошибки в тексте?


ALTER trigger [dbo].[MSmerge_ins_B7226BF1F47F4631B1DC165407F4D582] on [DV_CCK].[dbo].[dvsys_instances_date] for insert as 

declare @is_mergeagent bit, @at_publisher bit, @retcode smallint


set rowcount 0
set transaction isolation level read committed


select @is_mergeagent = convert(bit, sessionproperty('replication_agent'))
select @at_publisher = 0

if (select trigger_nestlevel()) = 1 and @is_mergeagent = 1

return

declare @article_rows_inserted int
select @article_rows_inserted = count(*) from inserted
if @article_rows_inserted = 0

return
declare @tablenick int, @rowguid uniqueidentifier
, @replnick binary(6), @lineage varbinary(311), @colv1 varbinary(1), @cv varbinary(1)
, @ccols int, @newgen bigint, @version int, @curversion int
, @oldmaxversion int, @child_newgen bigint, @child_oldmaxversion int, @child_metadatarows_updated int 
, @logical_record_parent_rowguid uniqueidentifier
, @num_parent_rows int, @parent_row_inserted bit, @ts_rows_exist bit, @marker uniqueidentifier
declare @dt datetime
declare @nickbin varbinary(8)
declare @error int 
set nocount on
set @tablenick = 4148001
set @lineage = 0x0
set @retcode = 0
select @oldmaxversion= maxversion_at_cleanup from dbo.sysmergearticles where nickname = @tablenick
select @dt = getdate()


select @replnick = 0x3ab17c317c18
set @nickbin= @replnick + 0xFF


select @newgen = NULL
if @is_mergeagent = 1 and @at_publisher = 1
select top 1 @newgen = generation from dbo.MSmerge_genvw_B7226BF1F47F4631B1DC165407F4D582 with (rowlock, updlock, readpast)
where art_nick = 4148001 and genstatus = 4

else

select top 1 @newgen = generation from dbo.MSmerge_genvw_B7226BF1F47F4631B1DC165407F4D582 with (rowlock, updlock, readpast)
where art_nick = 4148001 and genstatus = 0
and changecount <= (1000 – isnull(@article_rows_inserted,0))

 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]

Рейтинг@Mail.ru Яндекс цитирования Арбинада - софтотворение и софтостроение