Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Простой курсор / 5 сообщений из 5, страница 1 из 1
22.12.2005, 15:28
    #33452386
Victor_Z
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простой курсор
Добрый день всем!

Мне нужно написать курсор, который наберет ID из таблицы и после этого запустит ХП с этими ID в качестве параметров (т.е. ХП надо запустить много раз меняя всего один параметр):

Declare Cursor cr_Instrument for
Select InstrumentID
from tInstrument
Where ParentID = 3066

go

Open cr_Instrument

Declare @InstrumentID Numeric
Fetch cr_Instrument into @InstrumentID
While (@@sqlstatus = 0)
Begin
Exec Stored_Proc @InstrumentID
Fetch cr_Instrument into @InstrumentID
End
Close cr_Instrument
Deallocate Cursor cr_Instrument



- код выглядит примерно следующим образом, но почему -то не получается ничего.... Что здесь не так? И вообще, курсорами вроде как не очень хорошо пользоваться, есть какие-нибудь обходные пути то же самое сделать?
...
Рейтинг: 0 / 0
22.12.2005, 15:42
    #33452452
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простой курсор
Victor_Z wrote:

> Мне нужно написать курсор, который наберет ID из таблицы и после этого
> запустит ХП с этими ID в качестве параметров (т.е. ХП надо запустить
> много раз меняя всего один параметр):

ASE?
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
22.12.2005, 15:53
    #33452495
Victor_Z
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простой курсор
да, ASE 12.5.1. Хотел сразу написать и забыл, как обычно :-)
...
Рейтинг: 0 / 0
22.12.2005, 16:22
    #33452578
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простой курсор
Ужасно использовать курсоры для "эмуляции" повторно используемого кода в алгоритмических языках, все таки процедуры SQL и процедуры языков - это разные вещи и здесь с точки зрения производительности это смерть. Почему бы Вам не переделать все по другому - у вас же коды тащаться по коду родителя, почему бы просто Parent_id в процедуру не передавать, а внутри нее можно просто сразу обработать множество кодов по запросу:
Код: plaintext
1.
2.
Select InstrumentID
from tInstrument
Where ParentID = @Parent_id
Причем опять же желательно не курсором, а сразу запросами, соединясь с этим множеством. Если записей в таблице и операций в ХП много, то можно выгрузить внутри процедуры список кодов во времянку и потом опять же без всяких курсоров обработать сразу все множество.
...
Рейтинг: 0 / 0
23.12.2005, 10:42
    #33453735
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простой курсор
В FAQ кажется есть шаблон правильного кода для курсора.
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Простой курсор / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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