powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Как исправить REVERSE ASE 12.5.0.3 чтобы работало ASA 8.0.3.5002
7 сообщений из 7, страница 1 из 1
Как исправить REVERSE ASE 12.5.0.3 чтобы работало ASA 8.0.3.5002
    #34070044
Фотография Badger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема в совместимости ASE и ASA с оператором REVERSE ()
У меня в процедурах на ASE 12.5 часто используется конструкция
собирания строки вот из таких кусочков:
Код: plaintext
SELECT REVERSE( SUBSTRING ( REVERSE(pole),  1 , 6  ))) FROM table 
удивительно что при компиляции процедур на ASA 8.0.3 все прошло без ошибок, но когда дело дошло до работы все естественно грохнулось.
Что посоветуете сделать?
...
Рейтинг: 0 / 0
Как исправить REVERSE ASE 12.5.0.3 чтобы работало ASA 8.0.3.5002
    #34070092
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Badger wrote:

> удивительно что при компиляции процедур на ASA 8.0.3 все прошло без
> ошибок, но когда дело дошло до работы все естественно грохнулось.

Не вижу ничего удивительного.

> Что посоветуете сделать?

Хотя бы написать, что делает REVERSE в ASE. Не исключено, что тебе
придётся написать такую функцию для ASA самому.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Как исправить REVERSE ASE 12.5.0.3 чтобы работало ASA 8.0.3.5002
    #34070168
Фотография Badger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim2000
Badger wrote:

Хотя бы написать, что делает REVERSE в ASE. Не исключено, что тебе
придётся написать такую функцию для ASA самому.
Posted via ActualForum NNTP Server 1.3

ASE 12.5
select REVERSE('123456789')
Go

Results:
987654321

Никогда не писал функций в ASA как это сделать?
...
Рейтинг: 0 / 0
Как исправить REVERSE ASE 12.5.0.3 чтобы работало ASA 8.0.3.5002
    #34070231
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Badger wrote:

> ASE 12.5
> select REVERSE('123456789')
> Go
>
> Results:
> 987654321
>
> Никогда не писал функций в ASA как это сделать?

Ну... открыть Централ, залезть в раздел Procedures & Functions, выбрать
там Add Function и начинать творить . С ходу получилась вот такая тварь:

-----------------------------------------------
create function dba.Reverse(in @arg char(10000))
returns char(10000)
begin
declare @i integer;
declare @len integer;
declare @res char(10000);
--
set @i=0;
set @res='';
set @len=Length(@arg);
while @i < @len loop
set @res=@res+"Right"(@arg,1);
set @arg="Left"(@arg,Length(@arg)-1);
set @i=@i+1
end loop;
--
return(@res)
end;
-----------------------------------------------
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Как исправить REVERSE ASE 12.5.0.3 чтобы работало ASA 8.0.3.5002
    #34070495
Фотография Badger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim2000
Ну... открыть Централ, залезть в раздел Procedures & Functions, выбрать
там Add Function и начинать творить . С ходу получилась вот такая тварь:
Огромное спасибо, функция отлично работает!
Друг спас жизнь друга, или как минимум несколько часов работы.

К сожалению это оказалась предпоследняя ошибка, по расхождению синтаксиса между ASE 12.5 и ASA 8.0.3 по T-SQL
Борюсь теперь с переходом 'GOTO метка' где 'метка:' должна быть внутри другого блока вложенности BEGIN .... END

А счастье было так рядом...
...
Рейтинг: 0 / 0
Как исправить REVERSE ASE 12.5.0.3 чтобы работало ASA 8.0.3.5002
    #34070589
Фотография Badger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Badger[quot Dim2000]
А счастье было так рядом... Может кто-нибудь подскажет как обойти ситуацию в ASA чтобы не сильно править логику...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
GOTO aaa
SELECT '5'
begin
    SELECT '6'
aaa:
    SELECT '7'
end
SELECT '8'
как сделать в ASA так, чтобы получить такой результат:
7
8

по моему это unreal
...
Рейтинг: 0 / 0
Как исправить REVERSE ASE 12.5.0.3 чтобы работало ASA 8.0.3.5002
    #34070990
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Двойной резалтсет???
Ну чтобы не править логику, проще всего будет убрать begin/end. В показаном куске в них нету смысла все равно.

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


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