Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.14;
Скачать: CL | DM;

Вниз

Как сделать UNION во VIEW в IB5.5   Найти похожие ветки 

 
jenya_d   (2004-02-13 11:13) [0]

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

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

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

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


 
jenya_d   (2004-02-13 11:37) [1]

неужели никто не знает как?? а может это вообще невозможно??


 
Жук ©   (2004-02-13 11:40) [2]

У меня ИБ6 - всё нормально сохраняет.
Запрос-то сам нормально работает, может он кривой ?


 
Johnmen ©   (2004-02-13 11:42) [3]

Все нормально с юнион.
Что имеется в виду под "сохранить представление" ?


 
jenya_d   (2004-02-13 12:04) [4]

>Жук © (13.02.04 11:40)
у меня IB 5.5, а сам запрос я проверял без предстваления - работает отлично!

>Johnmen © (13.02.04 11:42)
я имею ввиду
CREATE VIEW Имя(...)
AS
select ...
union
select ...
union
select ...


 
Val ©   (2004-02-13 12:17) [5]

>jenya_d (13.02.04 12:04) [4]
вы имеете ввиду, что не можете выполнить эту команду?


 
jenya_d   (2004-02-13 12:21) [6]

>Val © (13.02.04 12:17)
да я немогу ее выполнить ни в IB Exprert ни в SQL Explorer ни в InterBase Windows ISQL


 
Johnmen ©   (2004-02-13 12:21) [7]

>jenya_d (13.02.04 12:04) [4]

А попробуй с UNION ALL
:)


 
Fay ©   (2004-02-13 12:46) [8]

>> Имя(...)
Это чё?


 
jenya_d   (2004-02-13 13:36) [9]

>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)
Имя(...) - это имя представления со списком полей в скобках


 
Johnmen ©   (2004-02-13 13:42) [10]

>jenya_d (13.02.04 13:36) [9]

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


 
jenya_d   (2004-02-13 13:45) [11]

>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 14:04) [12]

>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 14:11) [13]

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


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

>jenya_d (13.02.04 14:11)

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


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

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


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

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

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


 
Johnmen ©   (2004-02-13 14:26) [17]

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


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

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


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

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


 
Johnmen ©   (2004-02-13 14:36) [20]

>jenya_d (13.02.04 14:31) [19]

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


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

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


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

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


 
Val ©   (2004-02-13 14:40) [23]

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


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

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

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


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

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


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

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

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


 
Val ©   (2004-02-13 15:11) [27]

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


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

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



Страницы: 1 вся ветка

Текущий архив: 2004.03.14;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.019 c
1-43517
Grinder
2004-02-22 15:56
2004.03.14
высота колонки в list view


3-43374
hursand
2004-02-13 08:45
2004.03.14
DBgrid


1-43474
JIruaasgyy
2004-02-29 13:33
2004.03.14
Изменение ширины фиксированной колонки в StringGrid


1-43647
RDen
2004-03-02 09:16
2004.03.14
Почему не видна созданная TLabel?


1-43638
GrTik
2004-03-02 13:02
2004.03.14
TCheckListBox - событие checked