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

Вниз

Можно ли получить соединение наборов данных двух TQuery?   Найти похожие ветки 

 
wHammer ©   (2002-12-26 14:02) [0]

Именно, не реальных таблиц, и не просмотров (VIEW), а то что отобрал Select в TQuery.

С наилучшими...
Александр.


 
Johnmen ©   (2002-12-26 14:05) [1]

Если имеется в виду JOIN, то нет...


 
Lady D ©   (2002-12-26 14:09) [2]

Соединение двух запросов в TQuery:

SELECT ...
UNION ALL
SELECT ...


 
Johnmen ©   (2002-12-26 14:15) [3]

>Lady D © (26.12.02 14:09)

Маша, не надо путать соединение с объединением...


 
wHammer ©   (2002-12-26 14:21) [4]

Спасибо, теперь полностью убежден, а так были сомнения. Еще один вопрос - при закрытии программы происходит автоматически DROP VIEW для просмотра или нет.

С наилучшими...
Александр.


 
Val ©   (2002-12-26 14:24) [5]

>wHammer © (26.12.02 14:21)
????


 
passm ©   (2002-12-26 14:26) [6]

wHammer © (26.12.02 14:21)> Нет, конечно.


 
Johnmen ©   (2002-12-26 14:27) [7]

Нет, конечно ! Ведь это объект БД !


 
Val ©   (2002-12-26 14:30) [8]

>passm © (26.12.02 14:26)
без пояснения автора обсуждение бесполезно.
поскольку, например, я могу в OnClose главной формы сделать это удаление - чем не автоматическое? ;)


 
wHammer ©   (2002-12-26 14:32) [9]

to Johnmen © (26.12.02 14:27)

Прошу прощения, просто никогда не приходилось использовать. Но ведь просмотр это не реальная таблица в БД, а виртуальная, в моем представлении, это таблица в памяти????? И что тогда происходит, если я закрываю приложение не выполнив DROP?

С наилучшими...
Александр.


 
Lady D ©   (2002-12-26 14:33) [10]

Johnmen © (26.12.02 14:15)
>Lady D © (26.12.02 14:09)
Маша, не надо путать соединение с объединением...


Ув. Johnmen, что Вы этим хотели сказать? Это синонимы. И не только в русском языке:
join
2. сущ.
1)
а) соединение линия, плоскость соединения
Syn:
joint 1.
б) стык, паз, шов и т. п. (место соединения)
в) линия (соединяющая точки), плоскость соединения
2) объединение; пересечение
Syn: union


 
wHammer ©   (2002-12-26 14:35) [11]

Еще раз прошу прощения, не кидайте сильно в меня камнями, в литературе кот. у меня имеется не все ясно, а спросить не у кого, т.к. коллеги пишут кто на чем, но только не на Delphi.


 
passm ©   (2002-12-26 14:39) [12]

Val © (26.12.02 14:30)> В данном случае это будет для пользователя автоматическое удаление, но никак не для программиста.


 
Val ©   (2002-12-26 14:40) [13]

>wHammer © (26.12.02 14:32)
следует почитать теорию БД - view это реальные метаданные, являющеся, как срезами отдельных таблиц/просмотров, так и "собранными" из нескольких, а не таблица в памяти.
IB, кстати, имеет относительно небольшое разрешение на количество пересозданий объектов метаданных, восстанавливается счетчик только после backup\restore.
Так что оставьте просмотры в покое :)


 
Val ©   (2002-12-26 14:42) [14]

>passm © (26.12.02 14:39)
это была шутка, кстати тут не шла речь о том, для кого это действие автоматическое также , поэтому, собственно, я и просил пояснения у автора вопроса.


 
Johnmen ©   (2002-12-26 14:46) [15]

>Lady D ©

По жизни они синонимы, а вот в программировании - нет !
Абсолютно разные вещи...)))

>wHammer ©

Просто тебе надо разобраться, что такое VIEW.
Почитай документацию по IB. Там достаточно понятно...:)))


 
passm ©   (2002-12-26 14:48) [16]

Val © (26.12.02 14:40)> IB, кстати, имеет относительно небольшое разрешение на количество пересозданий объектов метаданных, восстанавливается счетчик только после backup\restore
:-\ С IB не приходилось работать,.. но интересно было бы узнать чем обосновано такое ограничение.



 
Lady D ©   (2002-12-26 14:55) [17]


> >Lady D ©
>
> По жизни они синонимы, а вот в программировании - нет !
> Абсолютно разные вещи...)))

Я знаю что такое Join и Union в SQL, Johmen, но из вопроса этого не было видно. Вы представили свою версию, а я свою. Вот и все. Зачем так напрягаться и обучать меня прописным истинам? Кстати, что Вы скажете насчет этого?
http://delphi.mastak.ru/cgi-bin/forum.pl?n=1&look=1&id=1040867978&from=20
Вы, кажется там тоже участвовали?


 
wHammer ©   (2002-12-26 15:00) [18]

to Val © (26.12.02 14:40)
В данный момент работаю с форматом Paradox.
То есть просмотр это НЕ ВИРТУАЛЬНАЯ ТАБЛИЦА (хотя так написано в книге "Delphi 5 Руководство разработчика баз данных. Шумаков П.В., Фаронов В.В."). Тогда пожалуй проще будет создать реальную "временную" таблицу CREATE TABLE и затем ее удалить, чем пользоваться VIEW, вообщем как раньше, например в PAL.

С наилучшими...
Александр.


 
passm ©   (2002-12-26 15:07) [19]

wHammer © (26.12.02 15:00)> Грубо говоря, просмотр - некий SELECT, лежащий в БД. И, когда идет запрос к просмотру, фактически исполняется
SELECT...
FROM (SELECT...) AS VIEW_NAME
...


 
Val ©   (2002-12-26 15:12) [20]

>passm © (26.12.02 14:48)
Отрывок..:
В таблице RDB$FORMATS есть счетчик изменений, но он ограничен количеством 256. Когда счетчик достигнет этого значения, то дальнейшие изменения метаданных будут невозможны, пока не будет выполнена операция backup/restore.
Полнее вам расскажут более искушенные в работе с данным сервером люди.
>wHammer © (26.12.02 15:00)
в топике есть упоминание о IB5. вы говорите о drop view - из этого следуют однозначные выводы что речь о IB, поскольку в Local SQL, с помощью которого вы работаете(мое предположение) с Парадоксом, понятие просмотра...кхе, посмотрите сами в хелпе к нему(Local SQL) и убедитесь, что там предлагается по поводу view.
Но, коллеги, кажется мы отошли от темы вопроса, каждый в своем споре.
Уважаемый автор, конкретизируйте пожалуйста, стоящую перед вами задачу, дабы можно было предлагать решения.


 
wHammer ©   (2002-12-26 15:25) [21]

to Val © (26.12.02 15:12)

> Уважаемый автор, конкретизируйте пожалуйста, стоящую перед вами задачу, дабы можно было предлагать решения.

ОК. С помощью нескольких операторов Select, каждый в своем TQuery, сделана выборка данных, причем в некоторых из них сделана группировка, эти данные, в свою очередь используются для различных расчетов и т.д. Заказчик попросил для удобства вывести все эти Select в одну таблицу (т.е. просто Grid) read only. Общие (по структуре) во всех таблицах три поля NameIzd, IDFilial, DDate. Мне нужно соеденить эти таблицы(а по сути это не таблицы, а результаты выборки Select) по этим полям. Сделать это для меня не проблема, только каким путем пойти, что будет оптимальней??? Еще раз повторюсь, формат таблиц Paradox.

С наилучшими...
Александр.


 
Lady D ©   (2002-12-26 15:30) [22]


> Заказчик попросил для удобства вывести все эти Select в
> одну таблицу (т.е. просто Grid) read only. Общие (по структуре)
> во всех таблицах три поля NameIzd, IDFilial, DDate.

Так вот на этот раз я оказалась права :-) UNION ALL.
Johnmen! Жду извинений.


 
passm ©   (2002-12-26 15:37) [23]

Lady D © (26.12.02 15:30)> <Johnmen © (26.12.02 14:05)> прав.


 
Val ©   (2002-12-26 15:39) [24]

>wHammer © (26.12.02 15:25)
действительно, тогда прислушайтесь к предложению Lady D ©.


 
wHammer ©   (2002-12-26 15:40) [25]

to Lady D © (26.12.02 15:30)

Прошу прощения но UNION это совсем не то, в моем случае. Во первых все-таки Join, а во-вторых UNION объеденяет только ОДИНАКОВЫЕ по структуре данные.


 
Lady D ©   (2002-12-26 15:40) [26]

2passm © (26.12.02 15:37)>
В чем это он прав? В том, что JOIN не подойдет? Я говорю о правильном толковании вопроса и выдаче ответа.


 
Reindeer Moss Eater   (2002-12-26 15:42) [27]

В том, что JOIN не подойдет?

Ни разу не подойдет.

Именно, не реальных таблиц, и не просмотров (VIEW), а то что отобрал Select в TQuery.


 
Val ©   (2002-12-26 15:43) [28]

опять предположения разошлись :))
>wHammer © (26.12.02 15:25)
покажите нам на небольшом примере с данными, что ли, что точно нужно :)



 
Lady D ©   (2002-12-26 15:44) [29]

2 Reindeer Moss Eater (26.12.02 15:42)>

> В том, что JOIN не подойдет?
>
> Ни разу не подойдет.

Это Вы мне? Или все таки Johnmen"у ...


 
passm ©   (2002-12-26 15:45) [30]

wHammer © (26.12.02 15:40)> Можно попробовать привести данные в отдельных запросах к одинаковой структуре.
Lady D © (26.12.02 15:40)> Когда говорят соединение подразумевается JOIN; когда говорят объединение подразумевается UNION.


 
Reindeer Moss Eater   (2002-12-26 15:45) [31]

Вам Вам, Lady D


 
Lady D ©   (2002-12-26 15:48) [32]

2 passm © (26.12.02 15:45)>

> Lady D © (26.12.02 15:40)> Когда говорят соединение подразумевается
> JOIN; когда говорят объединение подразумевается UNION.

Ну, вот, еще один "учитель".
Цитирую себя еще раз: Lady D © (26.12.02 14:33)


 
Reindeer Moss Eater   (2002-12-26 15:49) [33]

Ну, вот, еще один "учитель".
У Вас дни трудные, леди?


 
Lady D ©   (2002-12-26 15:50) [34]


> Reindeer Moss Eater (26.12.02 15:45)
> Вам Вам, Lady D

Вы вообще веточку то эту читали? Укажите мне где я советовала JOIN.


 
Lady D ©   (2002-12-26 15:51) [35]


> Reindeer Moss Eater (26.12.02 15:49)
> Ну, вот, еще один "учитель".
> У Вас дни трудные, леди?

Это у Вас трудные. Ягель видимо снегом засыпало :-)


 
Reindeer Moss Eater   (2002-12-26 15:53) [36]

У меня их не бывает по определению


 
MsGuns ©   (2002-12-26 15:55) [37]

>wHammer ©
Для выполнения многошаговых запросов в Paradox нельзя, к сожалению, использовать транзакции, а как следствие, теряют свой смысл хранимые процедуры. Я в таких случаях использую суррогатные скрипты, т.е. есть модуль, который делает многоступенчатые расчеты, берет очередной запрос из некоего текстового файла, подготовленного заранее в определенном формате (кроме SQL там есть "мои" операторы, например, для подстановки параметров). Модуль тупо выполняет все запросы из этого скрипта-файла и возвращает (или не возвращает, если была коррекция БД) НД, который я и "засовываю" в грид.
Трудно этот метод назвать оптимальным, но для парадокса ничего лучшего я не нашел.


 
passm ©   (2002-12-26 15:56) [38]

Lady D © (26.12.02 15:48)> Вобщем, ты права, по образованию я учитель. Но. Сначала был вопрос: Можно ли получить соединение наборов данных двух TQuery?. В котором не встречается слово JOIN. Таким образом Johnmen опирается на слово
соединение .


 
wHammer ©   (2002-12-26 16:01) [39]

Ребят не ругайтесь пожалуйста из-за меня.
Не буду показывать все запросы (5), покажу лишь 2 Query, которые нужно соеденить.

TQuery1.SQL

select IDFilial, DateOtgr, NameIzd, sum(Kol) as KolSum
from PlanProdajFilial
where (IDFilial = :fFilial) and (DateOtgr = :fDate)
group by IDFilial, DateOtgr, NameIzd


TQuery1.SQL

select * from OstatkiFilialF
where (IDFilial = :fFilial) and (DateR = :fDate)


Нужно показать пользователю следующее (выборка(фильтр) данных по IDFilial и по DateXXXXX), шапка:

NameIzd | Ostatok | PlanProdaj |

С наилучшими...
Александр.


 
Lady D ©   (2002-12-26 16:04) [40]

2 passm © (26.12.02 15:56)>

> Таким образом Johnmen опирается на слово
> соединение .

Соединяйтесь...

In nomine Patris, et Filli, et spiritus Sancti... Amen



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

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

Наверх




Память: 0.57 MB
Время: 0.014 c
14-72487
$erega
2003-01-06 00:08
2003.01.23
Просьба


7-72555
BJValentine
2002-11-06 19:44
2003.01.23
Система


1-72216
MyNameIsVova
2003-01-14 13:14
2003.01.23
аналог функции Format


8-72419
Link
2002-10-06 14:54
2003.01.23
Распечатка графика


1-72337
kofman
2003-01-12 00:10
2003.01.23
Изменение цвета строки в ListBox`е