powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB 3.0 проблемы в выполнении sql-запросов, прекрасно работающие в FB 2.5
25 сообщений из 36, страница 1 из 2
FB 3.0 проблемы в выполнении sql-запросов, прекрасно работающие в FB 2.5
    #39453043
AlxEthereum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, уважаемые коллеги!
Есть проект, в котором в качестве СУБД используем FB 2.5.
Рассматриваем переход с FB 2.5 на FB 3.0. В процессе тестирования возникло ряд проблем, а именно ряд sql-запросов, прекрасно работающие в FB 2.5, не выполняются в FB 3.0.
1. В частности, запрос такого типа:
Код: sql
1.
2.
3.
4.
5.
select t2.*
from sp_sel_table_1(:param) sp, --хранимая процедура
      table2 t2 -- некая таблица БД
      join table3 t3 on t3.key_id=sp.key_id --вот здесь у FB3 возникают сложности с sp.key_id
where t2.key_id2=sp.key_id2            


выдается ошибка
Код: sql
1.
2.
3.
SQL error code = -206.
Column unknown.
sp.key_id 


хотя поля key_id хранимая процедура возвращает

2. Другой тип проблемного запроса:
Код: sql
1.
2.
3.
4.
5.
select t2.*
from (select key_id, key_id2 from table1 where filed_x=:param and value > 0) sel,
      table2 t2 -- некая таблица БД
      join table3 t3 on t3.key_id=sel.key_id --вот здесь у FB3 возникают сложности с sel.key_id
where t2.key_id2=sel.key_id2            


выдается ошибка
Код: sql
1.
2.
3.
SQL error code = -206.
Column unknown.
sel.key_id 
...
Рейтинг: 0 / 0
FB 3.0 проблемы в выполнении sql-запросов, прекрасно работающие в FB 2.5
    #39453045
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Firebird 3 запрещено смешивать явные и неявные join.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB 3.0 проблемы в выполнении sql-запросов, прекрасно работающие в FB 2.5
    #39453051
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Dimitry Sibiryakov!
You wrote on 15 мая 2017 г. 12:52:11:

Dimitry Sibiryakov> Firebird 3 запрещено смешивать явные и неявные join.о!

наконец-то, шеф!

(С) м/ф "Приключения капитана Врунгеля" (1980)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB 3.0 проблемы в выполнении sql-запросов, прекрасно работающие в FB 2.5
    #39453055
AlxEthereum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Класс!
и как быть? что посоветуете? переписывать все запросы (а если их сотня)... мммм.. неее..

Не понятно почему в FB3 не оставили к sql-запросам прежней версии FB2.5 совместить ну или хотя бы внести поддержку некого SQL Dialect 4, работающий по новым правилам.
...
Рейтинг: 0 / 0
FB 3.0 проблемы в выполнении sql-запросов, прекрасно работающие в FB 2.5
    #39453056
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlxEthereum
Код: sql
1.
2.
table2 t2 -- некая таблица БД
      join table3 t3 on t3.key_id=sp.key_id --вот здесь у FB3 возникают сложности с sp.key_id

Не вижу sp в данном join

Про смешивание явных и неявных join уже ответили
...
Рейтинг: 0 / 0
FB 3.0 проблемы в выполнении sql-запросов, прекрасно работающие в FB 2.5
    #39453058
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Alxethereum!
You wrote on 15 мая 2017 г. 12:58:25:

Alxethereum> *что посоветуете?* переписывать все запросы (а если их сотня)... мммм.. неее..жизнь - говно.
но мы привыкли...
(С)

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB 3.0 проблемы в выполнении sql-запросов, прекрасно работающие в FB 2.5
    #39453061
AlxEthereum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как наименее болезненно и быстро решить подобные проблемы с запросами? Выковыривать из проекта - большой гемор.. (тем более, если запросов много динамических).
...
Рейтинг: 0 / 0
FB 3.0 проблемы в выполнении sql-запросов, прекрасно работающие в FB 2.5
    #39453063
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имхо, тут программист нужен.
(С)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB 3.0 проблемы в выполнении sql-запросов, прекрасно работающие в FB 2.5
    #39453071
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlxEthereumКак наименее болезненно и быстро решить подобные проблемы с запросами?

Забыть про Firebird 3, раз уж умудрились сваять такой кривой проект.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB 3.0 проблемы в выполнении sql-запросов, прекрасно работающие в FB 2.5
    #39453073
AlxEthereum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, за совет! Очччень помог.
...
Рейтинг: 0 / 0
FB 3.0 проблемы в выполнении sql-запросов, прекрасно работающие в FB 2.5
    #39453075
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Alxethereum!
You wrote on 15 мая 2017 г. 13:12:11:

Alxethereum> Спасибо, за совет! Очччень помог.
ну, ты заходи... если шо..
(С)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB 3.0 проблемы в выполнении sql-запросов, прекрасно работающие в FB 2.5
    #39453076
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlxEthereum,

надо было сразу писать нормальные запросы. Про кривость смешивания явных и неявных джойнов было сказано ещё лет 15 назад. Это категорически не рекомендовалось, но кто-то пропускал советы мимо ушей. Теперь это запретили, о чём говорится в Release Notes.
...
Рейтинг: 0 / 0
FB 3.0 проблемы в выполнении sql-запросов, прекрасно работающие в FB 2.5
    #39453079
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не, я, конечно, могу опять начинать рассказывать про плавную миграцию при помощи
мультимастер репликации, но если вы такого наворотили в приложении, то база, я подозреваю,
и вовсе невменяема.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB 3.0 проблемы в выполнении sql-запросов, прекрасно работающие в FB 2.5
    #39453083
AlxEthereum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы пишите, что в FB3 запретили соединять явные и неявные join. А как быть тогда с таким запросом - он в FB3 выполняется (всего лишь поменял местами ХП с таблицей - join'a не добавлял и работает... что-то напоминает из серии "наполовину беременная" .

Код: sql
1.
2.
3.
4.
5.
select t2.*
from table2 t2,
      sp_sel_table_1(:param) sp
      join table3 t3 on t3.key_id=sp.key_id --все ок с sp.key_id
where t2.key_id2=sp.key_id2     
...
Рейтинг: 0 / 0
FB 3.0 проблемы в выполнении sql-запросов, прекрасно работающие в FB 2.5
    #39453090
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlxEthereum
Код: sql
1.
2.
sp_sel_table_1(:param) sp
      join table3 t3 on t3.key_id=sp.key_id --все ок с sp.key_id

Потому что тут в join есть sp

Хватит упираться, начинай работать :)
...
Рейтинг: 0 / 0
FB 3.0 проблемы в выполнении sql-запросов, прекрасно работающие в FB 2.5
    #39453093
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlxEthereum,

Цитата из документации Смешивание явного и неявного соединения

Смешивание явных и неявных соединений не рекомендуется, но позволяется. Некоторые виды
смешивания запрещены в Firebird.
Например, такой запрос вызовет ошибку "Column does not belong to referenced table"
Код: sql
1.
2.
3.
4.
5.
SELECT *
FROM
TA, TB
JOIN TC ON TA.COL1 = TC.COL1
WHERE TA.COL2 = TB.COL2


Это происходит потому, что явный JOIN не может видеть таблицу TA. Однако следующий
запрос будет выполнен без ошибок, поскольку изоляция не нарушена.
Код: sql
1.
2.
3.
4.
5.
SELECT *
FROM
TA, TB
JOIN TC ON TB.COL1 = TC.COL1
WHERE TA.COL2 = TB.COL2

...
Рейтинг: 0 / 0
FB 3.0 проблемы в выполнении sql-запросов, прекрасно работающие в FB 2.5
    #39453095
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlxEthereumВыковыривать из проекта?Да.

Причем собственно версия 3 здесь влияет мало, сам запрос не читаем, сопровождать муторно.
Сам повыпилил кучу такого Г****, но точно не все(засели гады, аки партизаны) и вроде бы не падает на тестовом сервере с трешкой.

Dimitry SibiryakovFirebird 3 запрещено смешивать явные и неявные join.Я бы не был столь категоричен, ниже пример того, как писать не надо, но тем не менее на трешке оно сработало:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select D.*, S.NSKL, K.INN, K.KPP, K.UR_ST, K.TIP_KL, K.AT_KL_ID, K.NAME, K.SITY, T.NAME AS T_OPL, R.STATUS AS OTGR, A.ADR_DOK, A.ADR_DOV,
(select first 1 G.DOSTAV from DOG_R_DOS G where G.DOG_R = D.ID) as DOSTAV,
(select V.NDOK from DOSTAVKA V, DOG_R_DOS G where V.ID = G.DOSTAV and G.DOG_R = D.ID) as DOSDOK,
(select W.STATUS from DOG_R_WAY W where W.DOG_R = D.ID) as WAY,
(select X.DOG_R from DOG_R_VISA X where X.DOG_R = D.ID) as VISA
from DOG_AV D 
LEFT JOIN DOG_R_STAT R ON R.DOG_R = D.ID
LEFT JOIN DOG_R_ADR A ON A.DOG_R = D.ID, SPSKL S, SPKL K, TIP_OPL T 
where S.ID = D.SPSKL 
and K.ID = D.SPKL 
and T.ID = D.TIP_OPL

...
Рейтинг: 0 / 0
FB 3.0 проблемы в выполнении sql-запросов, прекрасно работающие в FB 2.5
    #39453098
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky,

ДЕ как-то пояснял мне какие именно смешения запрещены. В примере выше это видно
...
Рейтинг: 0 / 0
FB 3.0 проблемы в выполнении sql-запросов, прекрасно работающие в FB 2.5
    #39453101
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlxEthereum,

смешения выпилить это ещё пол дела. Лучше вообще все неявные джойны повыпиливать.
...
Рейтинг: 0 / 0
FB 3.0 проблемы в выполнении sql-запросов, прекрасно работающие в FB 2.5
    #39453105
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисДЕ как-то пояснял мне какие именно смешения запрещены.Мой пример адресован ДСу, как пример опровергающий его заявление.

Пример кандидат на переписывание, как только мои шаловливые ручонки до него дотянутся.
...
Рейтинг: 0 / 0
FB 3.0 проблемы в выполнении sql-запросов, прекрасно работающие в FB 2.5
    #39453109
AlxEthereum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad...Потому что тут в join есть sp

Народ здесь пишет, что в FB3 запретили явные и неявные join смешивать.
Если внимательно посмотрим на запросы ниже у обоих есть смешивания явного и неявного join, но один в FB3 работает, а другой нет.

не работает (ошибка SQL error code = -206. Column unknown. sel.key_id
Код: sql
1.
2.
3.
4.
5.
select t2.*
from sp_sel_table_1(:param) sp, --хранимая процедура
      table2 t2 -- некая таблица БД
      join table3 t3 on t3.key_id=sp.key_id --вот здесь у FB3 возникают сложности с sp.key_id
where t2.key_id2=sp.key_id2    




работает:
Код: sql
1.
2.
3.
4.
5.
select t2.*
from table2 t2,
      sp_sel_table_1(:param) sp
      join table3 t3 on t3.key_id=sp.key_id --все ок с sp.key_id
where t2.key_id2=sp.key_id2  
...
Рейтинг: 0 / 0
FB 3.0 проблемы в выполнении sql-запросов, прекрасно работающие в FB 2.5
    #39453111
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlxEthereum,

я для кого выше доку цитировал?
...
Рейтинг: 0 / 0
FB 3.0 проблемы в выполнении sql-запросов, прекрасно работающие в FB 2.5
    #39453114
AlxEthereum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис..я для кого выше доку цитировал?
Доки это хорошо, но если здесь утверждают, что в FB3 запретили явные и неявные join смешивать, то почему 2ой пример выше работает в FB3?
...
Рейтинг: 0 / 0
FB 3.0 проблемы в выполнении sql-запросов, прекрасно работающие в FB 2.5
    #39453115
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlxEthereumНарод здесь пишет, что в FB3 запретили явные и неявные join смешивать.Уже всё расжевали. Неужели что-то осталось не понятно ?
...
Рейтинг: 0 / 0
FB 3.0 проблемы в выполнении sql-запросов, прекрасно работающие в FB 2.5
    #39453116
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlxEthereumНарод здесь пишет, что в FB3 запретили явные и неявные join смешивать.Народ в лице ДСа малёху погорячился. Явного и однозначного запрета нет, но так писать все равно не надо. Оно и на двойке иной раз "уходило в себя" с подобными запросами, пример правда навскидку не приведу, но переписывал нечто подобное.
...
Рейтинг: 0 / 0
25 сообщений из 36, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB 3.0 проблемы в выполнении sql-запросов, прекрасно работающие в FB 2.5
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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