Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сделать UNION во VIEW в IB5.5 [D7, IB5.x]


Страницы:   1 2

jenya_d ©   (2004-02-13 11:13:00) 

Доброго времени суток профи!!!

Подскажите пожалста как можно заставить IB55 сохранить представление в котором есть объединение запросов с помощью
UNION?

Заранее благодарен.

P.S. в доке написано, что на DSQL не получется, а как можно это реально сделать?


jenya_d   (2004-02-13 15:40:00) [1]

>Val © (13.02.04 15:11)
естественно не получилось. Типа умный сервак-то.


Val   (2004-02-13 15:11:00) [2]

>jenya_d (13.02.04 14:51) [24]
попытаться обмануть сервер
create myview as
select * from (ваш запрос) - хотя сомневаюсь что получится - просто ради интереса.


jenya_d   (2004-02-13 15:09:00) [3]

Всем большое спасибо за помощь. Я кажется разобрался с этой проблемкой и решение получается очень неплохое - селективная процедура.

P.S. а вообще по этой проблемке как выяснилось есть статья на ibase.ru


Johnson™   (2004-02-13 15:02:00) [4]

Была такая проблемма решил установкой IB из 7 делфей, сложилось такое впечатление что 5.5 не понимает такую постановку вопроса.


jenya_d   (2004-02-13 14:51:00) [5]

>Кщд (13.02.04 14:36)
ну если уш переходить так по полной программе
>Кщд (13.02.04 14:39)
да вычистив и перелопатив при этом кучу исходников, а на это многовато времени надо, а его к сожалению нету.

>Val © (13.02.04 14:40)
ну если не трудно подскажите как, буду признателен.


Val   (2004-02-13 14:40:00) [6]

>jenya_d (13.02.04 14:26) [18]
вы о чем, уважаемый? вас затрудняет сделать внутренний запрос из всего этого добра с union?


Кщд   (2004-02-13 14:39:00) [7]

Johnmen © (13.02.04 14:36) [20] + предварительно вычистив новые ключевые слова в именах объектов, буде такие есть...


Кщд   (2004-02-13 14:36:00) [8]

смена диалекта при переходе - необязательна


Johnmen   (2004-02-13 14:36:00) [9]

>jenya_d (13.02.04 14:31) [19]

Никаких проблем с переходом нет.
Всё, что надо сделать, это backup под IB и restore под FB.


jenya_d   (2004-02-13 14:31:00) [10]

>Johnmen © (13.02.04 14:26)
я уже думал об этом (на FB1.5 например), но у меня тут пара больших комплекса работает под IB55, да плюс читал про проблемки с компонентом IBX TIBStoredProc - надо переводить все используемые процедуры на TIBQuery
(select * from procedure(...))
да плюс в другой диалект переход довольно напряжен на рабочих-то базах.


jenya_d   (2004-02-13 14:26:00) [11]

>Val © (13.02.04 14:21)
ну и как вы это себе представляете? Мне ведь нужно именно объединить разные наборы в один, чтобы потом одним запросом сделать группирование по вью.
А затеял я всю эту конитель с вью поскольку в IB55 нет поддержки группировки по UDF.


Johnmen   (2004-02-13 14:26:00) [12]

Через Embedded SQL, значит напрямую работать с IB API.
IB6 и клоны.
Может просто перейти на клон ?


jenya_d   (2004-02-13 14:22:00) [13]

>Johnmen © (13.02.04 14:18)
дело в том, что я уже указывал что IB55 не поддерживает union во вью на DSQL, однако в доке сказано, что можно это сделать только на Embedded SQL. А что это за хрень я не особо знаю.

P.S. а у вас какой IB?


Val   (2004-02-13 14:21:00) [14]

а если попытаться создать вью на основе
select * from(....)?


Johnmen   (2004-02-13 14:18:00) [15]

>jenya_d (13.02.04 14:11)

Единственное абстрактное предположение, что IB5 не поддерживает юнион во вью...


jenya_d   (2004-02-13 14:11:00) [16]

>Johnmen © (13.02.04 14:04)
нет не проходит, выдает ту же ошибку что я указывал в jenya_d (13.02.04 13:36). Создание вью выполняется в IB Expert 2.0-SQL редакторе


Johnmen   (2004-02-13 14:04:00) [17]

>jenya_d (13.02.04 13:45) [11]

А так проходит ?
CREATE VIEW TestView(DATREG)
AS
select datreg from dogovor
union
select datreg from dogovor

И откуда выполняется создание вью ?


jenya_d   (2004-02-13 13:45:00) [18]

>Johnmen © (13.02.04 13:42)
привожу:
CREATE VIEW ZP(
DATREG,
F_YEAR,
ID,
ZARP)
AS
select t1.datreg, f_year(t1.datreg), t1.id, t1.zarp from dogovor t1
where t1.reg_pal = "-" and t1.anulir = "-" and t1.datrast is null
and t1.datregrast is null and (t1.id_osnrast = 0 or t1.id_osnrast is null)
and (select count(t2.id) from dop_dog t2 where t2.id = t1.id) = 0
union
select t4.datreg, f_year(t4.datreg), t4.id, t4.zarp from dogovor t4
where t4.reg_pal = "-" and t4.anulir = "-" and t4.datrast is null
and t4.datregrast is null and (t4.id_osnrast = 0 or t4.id_osnrast is null)
and (select count(t5.id) from dop_dog t5 where t5.id = t4.id) > 0
and (select count(t6.id_dog) from uchet_par t6 where
t6.id_dog = t4.id and t6.id_param = 8 and t6.id_nar = -1 and t6.id_dop > -1) = 0
union
select t7.datreg, f_year(t7.datreg), t7.id, t9.zarp from dogovor t7 join uchet_par t8
on t7.id = t8.id_dog and t8.id_param = 8
and t8.id_nar = -1 join dop_dog t9 on t7.id = t9.id
where t7.reg_pal = "-" and t7.anulir = "-" and t7.datrast is null
and t7.datregrast is null and (t7.id_osnrast = 0 or t7.id_osnrast is null)
and t9.id_dop = (select max(t10.id_dop) from dop_dog t10 where t10.id = t7.id)

где f_year - UDF - возвращает год из даты


Johnmen   (2004-02-13 13:42:00) [19]

>jenya_d (13.02.04 13:36) [9]

Странно это... Приведи полностью код вью.


jenya_d   (2004-02-13 13:36:00) [20]

>Johnmen © (13.02.04 12:21)
не получается, все равно выдает:
"Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 11, char -1.
union."

>Fay © (13.02.04 12:46)
Имя(...) - это имя представления со списком полей в скобках


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо