Процедура во вьюшке

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
Игорь Дудник
Сообщения: 7
Зарегистрирован: 27 окт 2004, 16:23

Процедура во вьюшке

Сообщение Игорь Дудник » 07 авг 2006, 14:15

Правильно ли я понимаю, что во view использование процедур невозможно

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

Create view (что-то там)
Select * From MyProcedure
Undefined name.
Dynamic SQL Error.
SQL error code = -204.
Table unknown.
MyProcedure

Хотя сам селект отрабатывается нормально.

Вопрос возник при попытке достучатсья через ODBC драйвер из Access. Таблицы и вьюшки видны нормально, а вот процедуры увы.

Ivan_Pisarevsky
Заслуженный разработчик
Сообщения: 644
Зарегистрирован: 15 фев 2005, 11:34

Re: Процедура во вьюшке

Сообщение Ivan_Pisarevsky » 07 авг 2006, 15:35

Игорь Дудник писал(а):Вопрос возник при попытке достучатсья через ODBC драйвер из Access. Таблицы и вьюшки видны нормально, а вот процедуры увы.
Работаем помимо дельфей напрямую и из фокса через одбц, никих проблем с процедурами не наблюдаем, правда с акцесом не знаком, совсем.

Ivan_Pisarevsky
Заслуженный разработчик
Сообщения: 644
Зарегистрирован: 15 фев 2005, 11:34

Сообщение Ivan_Pisarevsky » 07 авг 2006, 15:40

Даже более того, обычный запрос примерно пяток джойнов через фокс протолкнуть не удалось... пришлось специально для запросов из фокса писать обертки в виде ХР для таких скл запросов с джойнами, и дело пошло.

Игорь Дудник
Сообщения: 7
Зарегистрирован: 27 окт 2004, 16:23

Сообщение Игорь Дудник » 08 авг 2006, 11:58

Ленивый я ;-)
Есть приложение на Access. Хочется делать пошагово. 1 - перенести таблицы на FB (в общем-то не сложно, но смысла не имеет)
2- перенести запросы (уже имеет смысл, т.к. растет скорость). 3- перенести бизнес-логику (Access уже играет роль только построителя форм и отчетов)

Вот на п.2 я и застрял. Легко формируется процедура, но увидеть ее увы... Если б можно было сформировать вьюшку, то просто подменой источника записей можно было бы и обойтись. Но не выходит каменный цветок.

Я понимаю, что можно динамически формировать рекордсет в форме. Но это переписывать все формы прийдется, а я, как уже было сказанно, ленивый ;-)

Ivan_Pisarevsky
Заслуженный разработчик
Сообщения: 644
Зарегистрирован: 15 фев 2005, 11:34

Сообщение Ivan_Pisarevsky » 08 авг 2006, 12:10

Акцеса под руками нет, просто интересно, как акцес может узнать, что селект идет не из таблицы, а из процедуры? Что-то мне подсказывает, что, где-то косяки в настройках...

Игорь Дудник
Сообщения: 7
Зарегистрирован: 27 окт 2004, 16:23

Сообщение Игорь Дудник » 08 авг 2006, 12:22

Ivan_Pisarevsky писал(а):Акцеса под руками нет, просто интересно, как акцес может узнать, что селект идет не из таблицы, а из процедуры? Что-то мне подсказывает, что, где-то косяки в настройках...
Нет-нет! Access не настолько умный. Я тоже ;-)

Я не могу ему отдать с FB результат процедуры селективной. ODBC в лоб отдает только таблицы и вьюшки. Первичный вопрос и был не по Accessу, а по птичке - "Как завернуть процедуру во вьюшку"

Игорь Дудник
Сообщения: 7
Зарегистрирован: 27 окт 2004, 16:23

Сообщение Игорь Дудник » 08 авг 2006, 12:26

Мне бы понять: это я тупой и не умею или это не реализуемо вообще.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 08 авг 2006, 12:51

Вьюха с процедурой это вообще-то нехорошо. Старые сервера оно просто валило (если мне память не изменяет), а на новых есть тоже какие-то проблемы.
Ты построителем запросов ацессовским не пользуйся. Давай ему готовые SELECT * FROM PROC(). Надеюсь, он не настолько злобен чтобы от готовенького отказываться.

Игорь Дудник
Сообщения: 7
Зарегистрирован: 27 окт 2004, 16:23

Сообщение Игорь Дудник » 08 авг 2006, 13:04

Мы друг друга не понимаем ;-)))

Я не могу скормить Access (опять же в лоб, без ухищрений) Select * from MyProc
Я могу скормить Select * From MyView, в которую (MyView) хотел бы обвернуть MyProc (Select * From MyProc)

Вопрос же не в Accesse! Забудьте про него!!

Вопрос можно ли создать в птичке

Create view (Field1, Field2...)
Select * From MyProc

или прийдется работать с процерами динамически через ADODB.

CyberMax
Заслуженный разработчик
Сообщения: 638
Зарегистрирован: 31 янв 2006, 09:05

Сообщение CyberMax » 08 авг 2006, 13:27

FB 2.0. Создаю вьюху:

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

create view version ( version_minor )
as
select Version_minor from get_version_db
Сервер отвечает:
Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements.
Dynamic SQL Error.
feature is not supported.

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

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 08 авг 2006, 13:29

Как же задолбали ползучие эмпирики... Птичка, фигичка...

IB6 Language Reference, page 88:
Note: You cannot select from a view that is based on the result set of a stored procedure.

А у всех птичек с неведомыми номерами есть релизные ноты.

Ivan_Pisarevsky
Заслуженный разработчик
Сообщения: 644
Зарегистрирован: 15 фев 2005, 11:34

Сообщение Ivan_Pisarevsky » 08 авг 2006, 13:38

Игорь Дудник писал(а):Я не могу ему отдать с FB результат процедуры селективной. ODBC в лоб отдает только таблицы и вьюшки.
Брэхня. :)

[Модератор: Иван, ну когда же ты начнешь использовать тег Quote?]

Игорь Дудник
Сообщения: 7
Зарегистрирован: 27 окт 2004, 16:23

Сообщение Игорь Дудник » 08 авг 2006, 13:53

CyberMax, Merlin - Большое спасибо.

Merlin, "Был не прав. Вспылил" © ;-)

Ivan_Pisarevsky
Брэхня
Я имел в виду (и всегда подчеркивал), "в лоб". в виде присоединенных таблиц.

"А у вас нет такого же, но с перламутрывами пуговицами. Жаль, будем искать" ©

CyberMax
Заслуженный разработчик
Сообщения: 638
Зарегистрирован: 31 янв 2006, 09:05

Сообщение CyberMax » 08 авг 2006, 15:42

Замечание Ivan_Pisarevsky. См. выше.

Ivan_Pisarevsky
Заслуженный разработчик
Сообщения: 644
Зарегистрирован: 15 фев 2005, 11:34

Сообщение Ivan_Pisarevsky » 09 авг 2006, 15:32

:oops:

Ответить