Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.03.14;
Скачать: [xml.tar.bz2];

Вниз

Как сделать 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.012 c
14-43768
Mox Fulder
2004-02-19 12:52
2004.03.14
BDE


1-43476
Mishenka
2004-02-29 13:38
2004.03.14
Как определить каталог у файла?


1-43431
Layner
2004-03-01 09:50
2004.03.14
Как редактировать строки в ListView?


14-43819
Кен
2004-02-19 03:16
2004.03.14
Куда будут дальше развиваться DVD-приводы ? Уже сейчас за 100 с


7-43924
SkySlider
2003-12-22 13:14
2004.03.14
Обращение к принтеру





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский