Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Sybase ASA, ASE, IQ Новый топик    Ответить
 SYBASE IQ как при прохождении курсора комитить каждый проход  [new]
kolyady
Member

Откуда:
Сообщений: 59
грубо говоря есть цикл :

  declare local temporary table TrecingRecord_day (
				[minTrackingRecordID]	bigint	NOT NULL,
				[maxTrackingRecordID]	bigint	NOT NULL,
                [Stamp]					date	NOT NULL,
  )on commit preserve rows;



insert into TrecingRecord_day
select 
 min(TrackingRecordID) as minTrackingRecordID
,max(TrackingRecordID) as maxTrackingRecordID
,cast(Stamp as date) as stampe
from dfc.tb_lr_gpapp_TrackingRecord
where cast(stamp as date) <'2016-06-05'
group by cast(stamp as date)
order by 3;


BEGIN

     declare trecing_cursor  cursor for
     select minTrackingRecordID, maxTrackingRecordID
     from TrecingRecord_day
     order by minTrackingRecordID FOR READ ONLY
    
     declare @startid bigint
     declare @endid bigint
    
     open trecing_cursor
    
         fetch  trecing_cursor into @startid, @endid
        
        WHILE @@FETCH_STATUS = 0
        
                BEGIN

                insert into testing 
                values(@startid, @endid)


                END
     CLOSE trecing_cursor
     DEALLOCATE trecing_cursor
END


так вот надо чтобы после каждого цикла выполнялся комит чля того чтобы если вдруг обрыв связи то записи в таблице приемнике оставалисьна моменте обрыва
4 сен 17, 14:59    [20770003]     Ответить | Цитировать Сообщить модератору
 Re: SYBASE IQ как при прохождении курсора комитить каждый проход  [new]
White Owl
Member

Откуда:
Сообщений: 12121
kolyady,

А где ты там обрыв связи предполагаешь?
Запускай скрипт с той-же машины что и сервер - обрывов не будет.

Коммитить внутри SQL-цикла чрезвычайно дурная идея.

Не забывай про орфографический словарь и тэги.
4 сен 17, 18:05    [20770730]     Ответить | Цитировать Сообщить модератору
Все форумы / Sybase ASA, ASE, IQ Ответить