Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Проблемка с объявлением курсора / 5 сообщений из 5, страница 1 из 1
17.07.2006, 13:08
    #33857676
Владислав Ромащенко
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемка с объявлением курсора
Возникла проблема
Переношу базу с ASE на ASA 9.0.2.2451 (developer edition
Компилирую процедуру, имеющую в своем теле текст типа

if @bDate = @eDate begin
declare cursDoc cursor for
select ...

end else begin
declare cursDoc cursor for
select ....

end
Ругается, пишет "Элемент cursDoc уже существует"
это что, запрещенный синтаксис в ASA?
...
Рейтинг: 0 / 0
17.07.2006, 18:09
    #33858915
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемка с объявлением курсора
Вообще-то, в BOL есть такой абзац:
ASA SQL Reference
SQL Statements
DECLARE CURSOR statement T-SQLIn Adaptive Server Enterprise, when a cursor is declared in a procedure, trigger, or batch, it exists for the duration of the procedure, trigger, or batch. In Adaptive Server Anywhere, if a cursor is declared inside a compound statement, it exists only for the duration of that compound statement (whether it is declared in a Watcom-SQL or Transact-SQL compound statement).
Так что по идее, показаный кусок кода должен давать указаную ошибку при переносе с ASA на ASE а не наоборот....

---
http://www.rusug.ru] Портал рускоязычной группы пользователей Sybase
...
Рейтинг: 0 / 0
17.07.2006, 18:19
    #33858934
Владислав Ромащенко
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемка с объявлением курсора
White OwlВообще-то, в BOL есть такой абзац:
ASA SQL Reference
SQL Statements
DECLARE CURSOR statement T-SQLIn Adaptive Server Enterprise, when a cursor is declared in a procedure, trigger, or batch, it exists for the duration of the procedure, trigger, or batch. In Adaptive Server Anywhere, if a cursor is declared inside a compound statement, it exists only for the duration of that compound statement (whether it is declared in a Watcom-SQL or Transact-SQL compound statement).
Так что по идее, показаный кусок кода должен давать указаную ошибку при переносе с ASA на ASE а не наоборот....

---
http://www.rusug.ru] Портал рускоязычной группы пользователей Sybase

Но ситуация именно такова. На ASE компилируется (и работает), а ASA дает ошибку при компиляции. Т.е. , я так понял, придется продублировать код с разными именами курсора
...
Рейтинг: 0 / 0
09.08.2006, 15:25
    #33908323
dorian grey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемка с объявлением курсора
курсоры надо по разному называть. В else должно быть cursDoc111, например.
...
Рейтинг: 0 / 0
09.08.2006, 16:42
    #33908657
Сергей Васкецов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемка с объявлением курсора
dorian greyкурсоры надо по разному называть. В else должно быть cursDoc111, например.
и потом фетчить их тоже под if-ами?

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


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