![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
проблема с firebird
denis24 © (2005-02-11 14:49:00)На этот раз мой вопрос я задаю предельно понятно.
Есть ли ограничение у FB на кол-во выводимых полей через join в запросе
Пишу
SELECT L1.ID_KARTOCHKI, L1.FAM, L1.NAME, L1.OTCH, L1.DATE_ROZD, L1.ADRESS, L1.TELEFON, L2.ID_,L2.DATE_, L2.TIME_, L2.f1, , L2.f1, L2.f2, L2.PICTURE1, L2.PICTURE2, L2.L3.ID, L3.F1, L3.F2, L3.F3,L3.F4, L3.F5, L3.F6, L3.F7, L3.F8, L3.F9, L3.F10, L3.F11, L3.F12, L3.F13, L3.F14
FROM TBLMAIN L1
LEFT OUTER JOIN TBLSPR_1 L2 ON (L1.ID_KARTOCHKI = L2.ID_KARTOCHKI)
LEFT OUTER JOIN TBLSPR_2 L3 ON (L1.ID_KARTOCHKI = L3.ID_KARTOCHKI)
В итоге такого запроса получаю
Invalid token.
invalid request BLR at offset 267.
Implementation limit exceeded.
block size exceeds implementation restriction.
Если уменьшаю кол-во выводимых поей то проходит
sniknik (2005-02-11 18:30:00) [1]denis24 (11.02.05 17:16) [9]
> помоему вы ко мне относитесь предвзято.
нет не предвзято, доказательство вот эта ветка, она же еше не удалена, хотя я вам обьяснил почему это стоит сделать. т.е. я даже очень хорошо к вам отношусь, раз делаю такие поблажки.
(а личное с кем мне интересно говорить, с кем нет, это не предвзятость, это вопрос предпочтений. и я предпочитаю разговаривать с нормальными собеседниками а не теми кто на вопрос "пойдеш в кино" отвечает "спасибо я уже пообедал" (и плевать что он туда именно есть ходит, я то этого не знаю, для меня это бред), и теми кто благодарит заранее а не после решения проблемы (ну не нравится такая манера), и т.д. (в обшем у меня свои "тараканы" по этому поводу))
denis24 (2005-02-11 17:58:00) [2]мне не нужен набор.Запрос который использует процедуру возвращает одну сроку.Соотв в вычисляемое поле забивается результат процедуры в виде одной строки или блоба.
Так всетаки в процедуре можно сформировать блоб из строк?
Desdechado (2005-02-11 17:39:00) [3]может, стоит вернуть не длинную строку, а набор коротких?
denis24 (2005-02-11 17:16:00) [4]Две точки в запросе это опечатка.
to sniknik © (11.02.05 16:27) [5] помоему вы ко мне относитесь предвзято.
решил проблему.
>Johnmen ©
http://www.ibase.ru/ibo/n9.htm
25.03.2002 ? не может быть?
Точно ,как в статье.
В запросе был а процедура возвращающая значение неправильного типа-varchar(32000).
Что делать в таком случае когда процедура должна вернуть строку очень длинную.Писать в блоб?Тогда вопрос к в процедуре сформировать строку и записатьв блоб-возвращ.параметр?
Petr V. Abramov (2005-02-11 17:15:00) [5]Вроде суммарный размер полей - не более 64К
не может отсюда расти?
sniknik (2005-02-11 17:14:00) [6]> Но ведь у автора ни гу-гу про подробности
ну так... это же его "стиль" ;о))
Johnmen (2005-02-11 17:05:00) [7]>sniknik © (11.02.05 16:27) [5]
Да, я знаю про старую проблему про строки>32767, причем и полученные сцеплением тоже...
Но ведь у автора ни гу-гу про подробности
:)
sniknik (2005-02-11 16:27:00) [8]> Я списываю это на опечатки...
точно, запрос нереальный, так видимость одна (две точки дало бы ошибку на синтаксис).
Johnmen ©
http://www.ibase.ru/ibo/n9.htm
25.03.2002 ? не может быть?
> На этот раз мой вопрос я задаю предельно понятно.
ну даже не знаю... за такое название топика я бы всетаки удалил бы ветку...
(первое если написать название движка в правильном, предназначеном для этого поле (кстати версия не указана, проблема если ссылка верна (я угадал), именно в это упирается), то от названия останется... "проблема" ??? зашибись топик... такие ветки удаляются однозначно)
Johnmen (2005-02-11 16:23:00) [9]>Danilka © (11.02.05 16:05) [2]
А две запятые подряд в конце первой строки запроса ? :)
Я списываю это на опечатки...
atruhin (2005-02-11 16:12:00) [10]А что ты этим хотел выразить?
Danilka (2005-02-11 16:05:00) [11]SELECT L1.ID_KARTOCHKI, L1.FAM, L1.NAME, L1.OTCH, L1.DATE_ROZD, L1.ADRESS, L1.TELEFON, L2.ID_,L2.DATE_, L2.TIME_, L2.f1, , L2.f1, L2.f2, L2.PICTURE1, L2.PICTURE2, L2.L3.ID, L3.F1, L3.F2, L3.F3,L3.F4, L3.F5, L3.F6, L3.F7, L3.F8, L3.F9, L3.F10, L3.F11, L3.F12, L3.F13, L3.F14
FROM TBLMAIN L1
LEFT OUTER JOIN TBLSPR_1 L2 ON (L1.ID_KARTOCHKI = L2.ID_KARTOCHKI)
LEFT OUTER JOIN TBLSPR_2 L3 ON (L1.ID_KARTOCHKI = L3.ID_KARTOCHKI)
А это правильно, две точки?
Johnmen (2005-02-11 16:02:00) [12]Никакого криминала в запросе нет.
Но есть подозрение, что ты привел не НАСТОЯЩИЙ запрос, а упрощенный вариант...
Также неплохо бы посмотреть на структуру таблиц.