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

есть 2 таблички, связанные 1:М
Пусть какой-либо записи из таблицы 1 соосветсвует M записей из таблицы 2, тогда в поле 1.ClassBrief надо записать все знаения 2.Brief (через запятую) из связанной таблицы

Эту проблему я решаю с помощью созданию двух триггеров:

авторdeclare @InstID numeric (15,0),
@ClassBrief varchar (50)

declare TmpCursor cursor for select distinct InstitutionID from #TmpIng
declare ClsCursor cursor for select distinct
isnull(rtrim(ltrim(tObjClassifier.Brief)), '')
from
tObjClassifier,
tObjClsRelation
where
tObjClsrelation.ObjectID = @InstID
and tobjClassifier.objClassifierID = tObjClsrelation.objClassifierID
and tObjClassifier.ParentID = 2010000000425

open TmpCursor
fetch TmpCursor into @InstID
while ( @@fetch_status = 0)
begin
if exist (select 1 from tObjClassifier,tObjClsRelation where tObjClsrelation.ObjectID = @InstID and tobjClassifier.objClassifierID = tObjClsrelation.objClassifierID and tObjClassifier.ParentID = 2010000000425)
begin
open ClsCursor
fetch ClsCursor into @ClassBrief
while ( @@fetch_status = 0)
begin
if (@ClassBrief<>'')
begin
update #TmpIng set ClassBrief = ClassBrief + @ClassBrief+','
end
fetch ClsCursor into @ClassBrief
end
close ClsCursor
end
fetch TmpCursor into @InstID
end
close TmpCursor

deallocate TmpCursor
deallocate ClsCursor


Получаю целый набор ошибок:
Ошибка исполнения запроса.
General SQL error.
DECLARE CURSOR must be the only statement in a query batch.
Must declare variable '@@fetch_status'.
'exist' is not a recognized built-in function name.
Incorrect syntax near ')'.
Incorrect syntax near 'TmpCursor'.

Подскажет, пожалуйста, где ошибка.
...
Рейтинг: 0 / 0
работа с курсором
    #33842564
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nathaly wrote:

> есть 2 таблички, связанные 1:М
> Пусть какой-либо записи из таблицы 1 соосветсвует M записей из таблицы
> 2, тогда в поле 1.ClassBrief надо записать все знаения 2.Brief (через
> запятую) из связанной таблицы

select list(Brief) from ...
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
работа с курсором
    #33842997
Nathaly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не помогло:

'list' is not a recognized built-in function name
...
Рейтинг: 0 / 0
работа с курсором
    #33843007
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что за база ?
//list в ASE нет
...
Рейтинг: 0 / 0
работа с курсором
    #33843027
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
декларация курсоров (если это не процедура) должна быть отдельно

типа
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
declare TmpCursor cursor for select distinct InstitutionID from #TmpIng
go
isnull(rtrim(ltrim(tObjClassifier.Brief)), '')
from
tObjClassifier,
tObjClsRelation
where
tObjClsrelation.ObjectID = @InstID
and tobjClassifier.objClassifierID = tObjClsrelation.objClassifierID
and tObjClassifier.ParentID =  2010000000425 
go
open TmpCursor
fetch TmpCursor into @InstID
...
...
Рейтинг: 0 / 0
работа с курсором
    #33843050
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nathaly wrote:

> 'list' is not a recognized built-in function name

Тогда читай первый топик до просветления ;).
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
работа с курсором
    #33843137
Nathaly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
из этих курсоров сделала ХП - все работает как часы

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


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