Запросы, планы, оптимизация запросов, ...
Модераторы: 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
Сообщение
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