@tell_me_more: generalnie z tego co wiem, to w moim sqlcode = 0 znaczy, że doszedł do końca kursora i dalej nic nie ma, więc przerywa działanie. Twoje mówi to samo, nie wejdzie do while'a, gdy dojdzie do końca, problem leży gdzie indziej bo niby cursora w ogóle nie otwiera
@tell_me_more: hahha, raczej się nie ucieszy, bo błąd z własnej głupoty i to nieziemskiej. W fetch next wpisywałem nazwę innego cursora... dlatego pokazywało cursor not open.
procedura pokazuje mi błąd przy odpalaniu jej "cursor not open"
http://ideone.com/hFvCjr
W skrócie procedura liczy rozkład procentowy i UPDATE'uje pola tabeli. Tabela istnieje i jest wypełniona.
#sybase #sql #programowanie
Jesteś pewny, że dobrze sprawdzasz koniec kursora? Bo na szybko znalazłem takie sprawdzenie:
while (@@sqlstatus !=2 )
begin
select 't1,t2',@t1,@t2
update #t1 set j=@t1 where current of c1
fetch c1 into @t1,@t2
end
A Ty sprawdzasz bez "@@" i porównujesz z 0.
@tell_me_more: generalnie z tego co wiem, to w moim sqlcode = 0 znaczy, że doszedł do końca kursora i dalej nic nie ma, więc przerywa działanie. Twoje mówi to samo, nie wejdzie do while'a, gdy dojdzie do końca, problem leży gdzie indziej bo niby cursora w ogóle nie otwiera
PS: teoretycznie z tego co zrozumiałem to for update jest jak będize jakaś flaga ustawiona w systemie, że domyślnie nie można update'ować cursorem.