powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Что-то непонятное происходит с order by...
10 сообщений из 10, страница 1 из 1
Что-то непонятное происходит с order by...
    #32831601
Yuri Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем хорошего дня!

Коллеги, ерунда какая-то творится у меня...
На строчку:

set ChiefID = (select first * from E3_106.InOutOccConns where upper(MdlGID) = upper('2DB7060D-3E7E-409B-8A19-DD954358CC05') and ObjDefTypeNum = 45 and CxnDirection = 'IN' order by ObjOccPosition_Y, ObjOccPosition_X);

в проге ругается 131-й ошибкой, говоря, что syntax error near order by...

Но! В Interactive SQL та же самая строка:

select first * from E3_106.InOutOccConns where upper(MdlGID) = upper('2DB7060D-3E7E-409B-8A19-DD954358CC05') and ObjDefTypeNum = 45 and CxnDirection = 'IN' order by ObjOccPosition_Y, ObjOccPosition_X

отлично выполняется... В чем грабли-то, не подскажете?

Спасибо!
Юрий.
...
Рейтинг: 0 / 0
Что-то непонятное происходит с order by...
    #32831707
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчет ORDER BY не знаю, но вот присваивать в переменную через "SELECT *" по меньшей мере рискованно. Во всяком случае я по запросу вижу, что в таблице явно не одно поле определено и ошибка из за того, что не указанно явное поле в SELECT гарантирована.
...
Рейтинг: 0 / 0
Что-то непонятное происходит с order by...
    #32831730
Yuri Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSНасчет ORDER BY не знаю, но вот присваивать в переменную через "SELECT *" по меньшей мере рискованно. Во всяком случае я по запросу вижу, что в таблице явно не одно поле определено и ошибка из за того, что не указанно явное поле в SELECT гарантирована.

Ой, блин... Я select * написал... Сорри, не выспался наверно... ;))))

Правильно так:

set ChiefID = (select first ObjDefID from E3_106.InOutOccConns where upper(MdlGID) = upper('2DB7060D-3E7E-409B-8A19-DD954358CC05') and ObjDefTypeNum = 45 and CxnDirection = 'IN' order by ObjOccPosition_Y, ObjOccPosition_X);
и

select first ObjDefID from E3_106.InOutOccConns where upper(MdlGID) = upper('2DB7060D-3E7E-409B-8A19-DD954358CC05') and ObjDefTypeNum = 45 and CxnDirection = 'IN' order by ObjOccPosition_Y, ObjOccPosition_X

Но все равно плюется в проге и работает в ISQL. Sybase ASA 8.
...
Рейтинг: 0 / 0
Что-то непонятное происходит с order by...
    #32831753
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для интереса попробуйте:
1. Накатить патч на клиентскуя часть (конкретно обновить версию odbc дров для аса)
2. Данный запрос оформьте как хранимую процедуру, которая возвращает один параметр и вызывайте ее из клиенсткой программы. Я почти уверен, что заработает.
...
Рейтинг: 0 / 0
Что-то непонятное происходит с order by...
    #32831769
old_joy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
order by действительно глючный. У меня после перехода на 9 перестала работать форма в Access - вылазило сообщение об ошибке на order by. Глюк происходил из-за того, что в списке полей было поле типа DATE, а в order by имя поля идет с именем таблицы, которое Access возвращает с именем автора таблицы. Пришлось слегка поправить формат поля DATE в запросе и выводе Access и глюк ушел. Мораль: попробуй вместо * имя какого-нибудь поля.
...
Рейтинг: 0 / 0
Что-то непонятное происходит с order by...
    #32831850
Yuri Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
old_joyorder by действительно глючный. У меня после перехода на 9 перестала работать форма в Access - вылазило сообщение об ошибке на order by. Глюк происходил из-за того, что в списке полей было поле типа DATE, а в order by имя поля идет с именем таблицы, которое Access возвращает с именем автора таблицы. Пришлось слегка поправить формат поля DATE в запросе и выводе Access и глюк ушел. Мораль: попробуй вместо * имя какого-нибудь поля.

Order by работает только в одном случае - когда запрос с ним в теле ХП не заключаешь в скобки. Тогда нормально. Стоит заключить в скобки и приравнять результат к какой-то переменной - получи ошибку. Выкрутился вот так:

set ChiefID=(select first ObjDefID from InOutOccConns where upper(MdlGID) = upper(ModOrgID) and ObjDefTypeNum = 45 and CxnDirection = 'IN' and
ObjOccPosition_Y = (select Min(ObjOccPosition_Y) from InOutOccConns where upper(MdlGID) = upper(ModOrgID) and ObjDefTypeNum = 45 and CxnDirection = 'IN') and
ObjOccPosition_X = (select Min(ObjOccPosition_X) from InOutOccConns where upper(MdlGID) = upper(ModOrgID) and ObjDefTypeNum = 45 and CxnDirection = 'IN'));

Конечно, два подзапроса с определением минимальных координат это не есть хорошо, но собственно пока так. Будет время - накачу обновления и попробую еще раз вариант, предложенный Ggg_old, а пока он не прошел, без обновлений. Наверно версия ASA глючная попалась... Всем огромное спасибо! :)
...
Рейтинг: 0 / 0
Что-то непонятное происходит с order by...
    #32831900
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гм, а зачем такие извраты ? Кто мешает написать вот так:
Код: plaintext
1.
2.
3.
4.
SELECT FIRST Field1, Field2, ...
INTO @Var1, @Var2, ...
FROM Table1
WHERE ...
ORDER BY ...
Я не очень понимаю, зачем один и тот же запрос по сто раз выполнять :)
...
Рейтинг: 0 / 0
Что-то непонятное происходит с order by...
    #32831946
Yuri Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSГм, а зачем такие извраты ? Кто мешает написать вот так:
Код: plaintext
1.
2.
3.
4.
SELECT FIRST Field1, Field2, ...
INTO @Var1, @Var2, ...
FROM Table1
WHERE ...
ORDER BY ...
Я не очень понимаю, зачем один и тот же запрос по сто раз выполнять :)

Если честно, то и я теперь не знаю... :)) Попробовал - работает... :)) Спасибо! :))

select first ObjDefID into ChiefID from InOutOccConns where MdlID = ModOrgID and ObjDefTypeNum = 45 and CxnDirection = 'IN' order by ObjOccPosition_Y asc,ObjOccPosition_X asc;
...
Рейтинг: 0 / 0
Что-то непонятное происходит с order by...
    #32832313
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yuri Tyurin

отлично выполняется... В чем грабли-то, не подскажете?




Это не грабли а элементарная недоделка. Ругался с ними на их форуме,
сказали что в 7 и 8 этого и не будет, только в ASA9

В ASA 9 уже работает, кажется - можно делать подзапросы в скобках с ORDER BY
...
Рейтинг: 0 / 0
Что-то непонятное происходит с order by...
    #32832357
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр ГoлдунЭто не грабли а элементарная недоделка. Ругался с ними на их форуме,
сказали что в 7 и 8 этого и не будет, только в ASA9

В ASA 9 уже работает, кажется - можно делать подзапросы в скобках с ORDER BY
В 9-ке все нормально работает. Хотя лично мне больше вариант SELECT INTO нравится, более наглядный.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Что-то непонятное происходит с order by...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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