И вновь Direct SQL

Программирование на Atlantis: приемы и подходы, обмен опытом

Модераторы: larin, Screw

m0p3e
заказчик
Сообщения: 46
Зарегистрирован: Вт, 13/01/2009 10:52
Имя Фамилия: Сергей Головчак
Откуда: Гипротрубопровод

И вновь Direct SQL

Сообщение m0p3e » Чт, 16/12/2010 09:30

Необходимо обратиться из интерфейса к данным во View (представлении). СУБД Oracle.
Как и следовало ожидать из вьюхи созданной вручную данные тягать категорически отказывается.
В результате поисков была обнаружена конструкция:

Код: Выделить всё

Оператор CREATE VIEW   
Данный оператор создает представление таблицы (виртуальную таблицу).
<create-view-statement> = CREATE VIEW <view-name>
  [ (<список-столбцов>) ] AS <оператор-direct-select>
<view-name> - имя представления.
<список-столбцов> - список столбцов из выборки, которые войдут в представление.
<оператор-direct-select> - оператор выборки, см. "Оператор выборки данных SELECT. ".

В качестве теста взял простейщую конструкцию:

Код: Выделить всё

 SQL Create View vPers(FIO) AS SELECT PERSONS.FFIO FROM PERSONS;

Однако: при попытке выполнить ее из интерфейса получаем:
Ошибка компиляции SQL запроса Direct SQL. Подробности содержатся в лог-файле.
В ora90dll.log:

Код: Выделить всё

16.12.2010 09:15:47 [ADMIN]:
CREATE VIEW GAL."S$VPERS" ( FIO ) AS SELECT PERSONS.FFIO FROM PERSONS
16.12.2010 09:15:47 [ADMIN]:
Ошибка(1,15): Ожидалось : "AS"

Пробовал выполнять и сапортом/VIP-ом. Успешно падают с сообщением:

Код: Выделить всё

Runtime error 216 (rtl:попытка обращения к некорректному дескриптору)
in base.dll at 000XXXXX

Так как же пользоваться сей замечательной конструкцией?
Если у нее ошибка в генах, то может кто подскажет как проэмулировать ее работу вручную? Создать представление S$VPERS в БД можно, но подозреваю что запись определенного вида должна упасть в x$resources для выставления прав в на доступ к View в протекте. Какого вида она должна быть?

cruger
корпорация
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Re: И вновь Direct SQL

Сообщение cruger » Чт, 16/12/2010 10:25

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

m0p3e
заказчик
Сообщения: 46
Зарегистрирован: Вт, 13/01/2009 10:52
Имя Фамилия: Сергей Головчак
Откуда: Гипротрубопровод

Re: И вновь Direct SQL

Сообщение m0p3e » Чт, 16/12/2010 11:01

Т.е. произвольную вьюшку прочитать через DSQL не получится?

cruger
корпорация
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Re: И вновь Direct SQL

Сообщение cruger » Чт, 16/12/2010 15:54

Как вопрос
Так как же пользоваться сей замечательной конструкцией?
привёл к уточнению
Т.е. произвольную вьюшку прочитать через DSQL не получится?
? Это ж совершенно разные вопросы.

m0p3e
заказчик
Сообщения: 46
Зарегистрирован: Вт, 13/01/2009 10:52
Имя Фамилия: Сергей Головчак
Откуда: Гипротрубопровод

Re: И вновь Direct SQL

Сообщение m0p3e » Чт, 16/12/2010 16:49

Собственно сам вопрос начинается так:
Необходимо обратиться из интерфейса к данным во View (представлении). СУБД Oracle.

Вопрос один и тот же. Конструкция SQL Create View, судя по скудному описанию задачу должна была решить, но...

cruger
корпорация
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Re: И вновь Direct SQL

Сообщение cruger » Чт, 16/12/2010 18:39

Нет, это разные вопросы.
Объекты, не описанные через DSQL через DSQL использовать нельзя и не будет можно по требованиям безопасности.
А вот create view когда-то будет доработана.

m0p3e
заказчик
Сообщения: 46
Зарегистрирован: Вт, 13/01/2009 10:52
Имя Фамилия: Сергей Головчак
Откуда: Гипротрубопровод

Re: И вновь Direct SQL

Сообщение m0p3e » Пт, 17/12/2010 16:16

cruger писал(а):Нет, это разные вопросы.

Если мы начали придираться к словам, то мне непонятно откуда взялся такой ответ?
Объекты, не описанные через DSQL через DSQL использовать нельзя и не будет можно по требованиям безопасности.

Я не спрашивал как мне использовать объект не описанный через DSQL. Я спрашивал как его описать и использовать.

Тем более, что в MSSQL моя задача решает очень даже легко. (описывать как не буду дабы не прикрыли) проблема именно в оракле.

cruger
корпорация
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Re: И вновь Direct SQL

Сообщение cruger » Пт, 17/12/2010 17:18

Ответ
Объекты, не описанные через DSQL через DSQL использовать нельзя и не будет можно по требованиям безопасности.
взялся из вопроса
Т.е. произвольную вьюшку прочитать через DSQL не получится?

Для конструктивного диалога прошу сообщить про MS SQL. Если там есть дыра в безопасности - её необходимо прикрыть.

m0p3e
заказчик
Сообщения: 46
Зарегистрирован: Вт, 13/01/2009 10:52
Имя Фамилия: Сергей Головчак
Откуда: Гипротрубопровод

Re: И вновь Direct SQL

Сообщение m0p3e » Пн, 20/12/2010 11:28

Для конструктивного диалога прошу сообщить про MS SQL. Если там есть дыра в безопасности - её необходимо прикрыть.

Итак несчастные программеры сидят и выискивают обходные пути для решения тривиальных задач, так будем еще и найденные решения отсекать!
Прежде чем что-то отрубать, из любых соображений, нужно предоставить альтернативу.

Если кому интересно, то для оракла задача решается путем использования хранимки (создаем пустую через asql и редактируем средствами оракла):

Код: Выделить всё

CREATE PROCEDURE GAL."S$GATE"  ( S IN VARCHAR2 ) AS
BEGIN 
 EXECUTE IMMEDIATE S;
 COMMIT;
END;

и использования временной таблицы (sqlCreateTmpTable()).
"Скармливаем" хранимке текст запроса, который берет данные где нам нужно и переливает в ТП. Через одно место, но работает.

cruger
корпорация
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Re: И вновь Direct SQL

Сообщение cruger » Пн, 20/12/2010 13:59

m0p3e писал(а):
Для конструктивного диалога прошу сообщить про MS SQL. Если там есть дыра в безопасности - её необходимо прикрыть.

Итак несчастные программеры сидят и выискивают обходные пути для решения тривиальных задач, так будем еще и найденные решения отсекать!
Прежде чем что-то отрубать, из любых соображений, нужно предоставить альтернативу.
В общем, не желаете конструктивно взаимодействовать.
Очень жаль.

m0p3e
заказчик
Сообщения: 46
Зарегистрирован: Вт, 13/01/2009 10:52
Имя Фамилия: Сергей Головчак
Откуда: Гипротрубопровод

Re: И вновь Direct SQL

Сообщение m0p3e » Пн, 20/12/2010 14:07

cruger писал(а):
m0p3e писал(а):
Для конструктивного диалога прошу сообщить про MS SQL. Если там есть дыра в безопасности - её необходимо прикрыть.

Итак несчастные программеры сидят и выискивают обходные пути для решения тривиальных задач, так будем еще и найденные решения отсекать!
Прежде чем что-то отрубать, из любых соображений, нужно предоставить альтернативу.
В общем, не желаете конструктивно взаимодействовать.
Очень жаль.

Федор! Мне кажется это укор не по адресу!

m0p3e
заказчик
Сообщения: 46
Зарегистрирован: Вт, 13/01/2009 10:52
Имя Фамилия: Сергей Головчак
Откуда: Гипротрубопровод

Re: И вновь Direct SQL

Сообщение m0p3e » Пн, 20/12/2010 15:27

Используя данный способ также удалось прочитать данные с линкованного сервера.

masygreen
партнер
Сообщения: 112
Зарегистрирован: Чт, 20/03/2008 09:10
Имя Фамилия: Максим Черепанов
Откуда: IT
Контактная информация:

Re: И вновь Direct SQL

Сообщение masygreen » Вт, 21/12/2010 14:29

прийдется афону вернуть :)

m0p3e
заказчик
Сообщения: 46
Зарегистрирован: Вт, 13/01/2009 10:52
Имя Фамилия: Сергей Головчак
Откуда: Гипротрубопровод

Re: И вновь Direct SQL

Сообщение m0p3e » Вт, 21/12/2010 14:43

masygreen писал(а):прийдется афону вернуть :)

Что б что-то вернуть, надо сначала что-то получить... :)

Seybukan
партнер
Сообщения: 85
Зарегистрирован: Чт, 20/09/2007 12:53
Имя Фамилия: Алексей Семенов
Откуда: ЭП-Аудит
Контактная информация:

Re: И вновь Direct SQL

Сообщение Seybukan » Вт, 21/12/2010 15:49

В общем, не желаете конструктивно взаимодействовать.

...потому и не дают. :)


Вернуться в «Программирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя