powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Работа с курсорами в ASE
4 сообщений из 4, страница 1 из 1
Работа с курсорами в ASE
    #32990101
garmahis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Работаю с ASE-12.5.
Подскажите, возможно ли в сохранённой процедуре применять следующий код:

declare _cursor cursor for select поле1 from таблица1
open _cursor
fetch _cursor into @eos_dlr
select @err_code=@@error

while (@err_code=0) and (@@sqlstatus=0)
begin
select @tovar=''

declare _cursor2 cursor for select поле1 from таблица2
open _cursor2
fetch _cursor2 into @bzl_zal
select @err_code_=@@error

while (@err_code_=0) and (@@sqlstatus=0)
begin
select @tovar=@tovar+@bzl_zal
fetch _cursor2 into @bzl_zal
select @err_code_=@@error
end
close _cursor2
deallocate cursor _cursor2

/* остальной код */

fetch _cursor into @eos_dlr
select @err_code=@@error
end

close _cursor
deallocate cursor _cursor
...
Рейтинг: 0 / 0
Работа с курсорами в ASE
    #32990202
vooo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно - почему не будет
В принципе сами можете вставить данный код в тело процедуры и проверить

Единственное, для конкатинации строковой переменной @tovar (если задача в этом ) не нужно использовать курсор, можно обойтись запросом, например так :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
create table #test (fld varchar( 10 ))
go
insert into #test values('1')
insert into #test values('2')
insert into #test values('3')
go
declare 
@s     varchar( 100 )
select @s=''
select @s=@s+fld from #test
select ltrim(@s)
go
----------
 123 
...
Рейтинг: 0 / 0
Работа с курсорами в ASE
    #32990429
garmahis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо.

У меня возник встречный вопрос.
При выполнении приведенного Вами кода

select ltrim(@s)
go
----------
3

а не 123 !!!

В чём может быть причина?
...
Рейтинг: 0 / 0
Работа с курсорами в ASE
    #32991555
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vooo
Единственное, для конкатинации строковой переменной @tovar (если задача в этом ) не нужно использовать курсор, можно обойтись запросом, например так :
Код: plaintext
1.
select @s=@s+fld from #test


Не будет уже работать такое в поздних версиях ASE.

См.FAQ 1
См.FAQ 2 Как правильно работать с курсорами на TSQL
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Работа с курсорами в ASE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]