Oracle 7.3 + Clarion 10.12104 SQL запрос

ODBC

Модератор: Andrew™

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
SeeK
Новичок
Сообщения: 23
Зарегистрирован: 20 Июнь 2017, 9:00

Oracle 7.3 + Clarion 10.12104 SQL запрос

Сообщение SeeK »

Доброго здоровья всем !

Жизнь повернулась так, что нужно вернуться в молодость :)

Исходные данные:
- База Oracle 7.3;
- Clarion 10.12104 (из FTP);
- Драйвер Oracle;

Генерирую бровс по одной таблице (для начала), запускаю и получаю ошибку:

"Error: (ORA-00933: SQL command not properly ended (-933))"

Транслирую и вижу запрос:

"SELECT A.RN, A."AUTHID", A.IDENT, A.COMPANY, A."DATE_FROM", A."DATE_TO", A.ACCOUNT FROM PARUS.ACCTURNS A ORDER BY A.RN NULLS FIRST"

И зачем мне этот "NULLS FIRST" ???
Собственно вопрос, есть ли возможность управлять SQL-запросом, а ещё лучше, где его вставить вручную при нативной генерации бровса ?

Заранее благодарен,
Степан.
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Oracle 7.3 + Clarion 10.12104 SQL запрос

Сообщение kreator »

Степан, во-первых, если используете стандартный броуз, вручную генерить нет смысла. Во-вторых, проблема в "order by" - посмотрите индекс по которому броуз. "NULLS FIRST" это оракловая конструкция? Поменяйте индекс. Посмотрите, что в словаре по этой таблице написано. Был у меня опыт работы с Ораклом (совсем чуть-чуть), проблем не было, но и "NULLS FIRST" не помню.
Есть ещё подозрение. Может в "Actions" броуза на закладке "SQL Advanced" эта хрень прописано (не знаю зачем, но вдруг)?
We are hard at work… for you. :)
SeeK
Новичок
Сообщения: 23
Зарегистрирован: 20 Июнь 2017, 9:00

Oracle 7.3 + Clarion 10.12104 SQL запрос

Сообщение SeeK »

"SQL Advanced" - пусто.
RN - Primary key.
PL/SQL Developer с "NULLS FIRST" тоже ошибку выдает, без него всё в порядке. Тупо убираю NULLS FIRST и всё работает.
NULLS FIRST/LAST используется для указания, где при сортировке должны быть значения NULL — в начале или в конце
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Oracle 7.3 + Clarion 10.12104 SQL запрос

Сообщение Дед Пахом »

Посмотрите, как сгенерилось описание таблицы (FILE DRIVER('Oracle', bla-bla)...), может какие хинты драйвера Оракла добавились.
С уважением, ДП
SeeK
Новичок
Сообщения: 23
Зарегистрирован: 20 Июнь 2017, 9:00

Oracle 7.3 + Clarion 10.12104 SQL запрос

Сообщение SeeK »

Вроде ничего криминального:

ACCTURNS FILE,DRIVER('Oracle'),PRE(ACC3),BINDABLE,THREAD,EXTERNAL('')
C_ACCTURNS_PK KEY(ACC3:RN),PRIMARY
I_ACCTURNS_IDENT KEY(ACC3:IDENT),DUP
Record RECORD,PRE()
RN PDECIMAL(15)
AUTHID CSTRING(31)
IDENT PDECIMAL(15)

...
SeeK
Новичок
Сообщения: 23
Зарегистрирован: 20 Июнь 2017, 9:00

Oracle 7.3 + Clarion 10.12104 SQL запрос

Сообщение SeeK »

Когда в File-Browsing List Box ставлю No Key, вот тогда работает и генерит "SELECT A.RN, A."AUTHID", A.IDENT, A.COMPANY, A."DATE_FROM", A."DATE_TO", A.ACCOUNT FROM PARUS.ACCTURNS A" без ORDER BY. Но это не совсем то.
Видать только палцАми. :(
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Oracle 7.3 + Clarion 10.12104 SQL запрос

Сообщение kreator »

Меня смущает тип поля RN - pdecimal. Наверно, не криминал. В Оракле какой тип? Поменяйте в словаре для теста на LONG.
We are hard at work… for you. :)
SeeK
Новичок
Сообщения: 23
Зарегистрирован: 20 Июнь 2017, 9:00

Oracle 7.3 + Clarion 10.12104 SQL запрос

Сообщение SeeK »

RN в Oracle описан как NUMBER. При импорте в словарь Clarion - pdecimal. Меняю на LONG ситуация аналогична.
Только когда убираю ключ, соответственно исчезает из запроса ORDER BY NULLS FIRST.
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Oracle 7.3 + Clarion 10.12104 SQL запрос

Сообщение Дед Пахом »

SeeK писал(а): 20 Июнь 2017, 11:22PL/SQL Developer с "NULLS FIRST" тоже ошибку выдает
А почему? Вроде бы штатная конструкция?
С уважением, ДП
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Oracle 7.3 + Clarion 10.12104 SQL запрос

Сообщение kreator »

Ну, понятно.
Конструкции NULLS FIRST и NULLS LAST впервые появились в версии Oracle 8.1.6.

NoteBox.jpg

Personal Oracle 8.0 and higher only works with 32-bit programs.
Oracle дюже старый, может этот текст современный драйвер на автомате генерит.
Попробуйте в методе ApplyOrder после Parent Call посмотреть view{prop:SQLOrder}, view, понятно, какая там у Вас. В принципе здесь можно попробовать подсунуть нужный order by.
We are hard at work… for you. :)
SeeK
Новичок
Сообщения: 23
Зарегистрирован: 20 Июнь 2017, 9:00

Oracle 7.3 + Clarion 10.12104 SQL запрос

Сообщение SeeK »

Та я в курсе, что оракл 7.3 не поддерживает конструкцию NULLS FIRST.
Вопрос изначально был, как управлять SQL запросом при нативной генерации бровса.

Kreator, огромное спасибо !!!
BRW1::View:Browse{prop:SQLOrder}='A.RN' то, что доктор прописал :)
Результат:
"SELECT A.RN, A."AUTHID", A.IDENT, A.COMPANY, A."DATE_FROM", A."DATE_TO", A.ACCOUNT FROM PARUS.ACCTURNS A ORDER BY A.RN"
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Oracle 7.3 + Clarion 10.12104 SQL запрос

Сообщение Дед Пахом »

А вот это не подойдёт?
The Personal Oracle 7.1 Server behaves differently than other Oracle servers. When using Personal Oracle 7.1 you should inform Oracle Accelerator so it can tailor the generated SQL especially for Personal Oracle 7.1. For example:
DRIVER ('Oracle','/PERSONAL')
or
SEND (Myfile,'/PERSONAL')

Notes:
The /PERSONAL switch is not required for Personal Oracle 7.2 (Personal Oracle for Windows 95).
Personal Oracle 8.0 only works with 32-bit programs.
С уважением, ДП
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Oracle 7.3 + Clarion 10.12104 SQL запрос

Сообщение kreator »

SeeK писал(а): 20 Июнь 2017, 15:40 Kreator, огромное спасибо !!!
BRW1::View:Browse{prop:SQLOrder}='A.RN' то, что доктор прописал :)
Ожидаемо заработало. Только это временная удача. На всех экранах такой хернёй заниматься? Это во-первых. Во-вторых, почему-то Клаша не любит prop:SQLOrder. Сталкивался я с проблемами при изменении сортировки (разные закладки с разной сортировкой), перестаёт реагировать на prop:SQLOrder. Казалось бы чушь, но вот так. Подробностей не воспроизведу. И ораклового драйвера это может не касаться. У меня на ФБ проблемы.
We are hard at work… for you. :)
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Oracle 7.3 + Clarion 10.12104 SQL запрос

Сообщение kreator »

Дед Пахом писал(а): 20 Июнь 2017, 15:58 Personal Oracle 7.2 (Personal Oracle for Windows 95).
Вот это сильно. 7.3, наверно, недалеко ушёл. Откуда у Вас такие раритеты?
We are hard at work… for you. :)
Shur
Ветеран
Сообщения: 384
Зарегистрирован: 02 Июль 2011, 18:49

Oracle 7.3 + Clarion 10.12104 SQL запрос

Сообщение Shur »

А никого разве не смутило, что для primary key подаётся какая-то инструкция NULLS FIRST? Их [NULL'ов] там по определению быть не может.
Смотрю объявление ключа
SeeK писал(а): 20 Июнь 2017, 11:49 C_ACCTURNS_PK KEY(ACC3:RN),PRIMARY
и что-то не нахожу атрибута OPT.
Может в этом причина?
Ответить