Форум: "Начинающим";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];
ВнизВопрос по SQL Найти похожие ветки
← →
Monk © (2005-10-13 10:55) [0]Посоветуйте, как быть.
Существует таблица 1(TTable1). Из таблицы 1 делается выборка по SQL-запросу и помещается в компонент TQuery(TQuery активен). Нужно теперь из этой выборки сделать еще SQL-запрос (например, подсчитать сумму каких-нибудь полей. В общем не важно, любой SQL-запрос). Как это сделать? При ссылке на TQuery происходит ошибка, т.к. ищется физически существующая таблица.
← →
Sergey13 © (2005-10-13 10:58) [1]В БДЕ вроде можно сохранить текст запроса в файл и обращаться в другом запросе к нему. Подробности не помню, но есть в хелпе.
ЗЫ: Это не очень хороший подход в целом. ИМХО.
← →
Monk © (2005-10-13 11:00) [2]Посоветуйте лучше. С удовольствием учту
← →
ANB © (2005-10-13 11:02) [3]
> Monk © (13.10.05 10:55)
Распарсить исходный запрос, докрутить его и еще раз выполнить. Так все и делают. Для удобства запрос можно хранить не в квери а отдельными строками по кусочкам (например : поля, таблицы, условие, сортировка, группировка) и собирать его перед выполнением.
← →
Sergey13 © (2005-10-13 11:02) [4]2 [2] Monk © (13.10.05 11:00)
Может и посоветую, если буду знать о чем речь. 8-)
← →
Digitman © (2005-10-13 11:03) [5]
> Из таблицы 1 делается выборка по SQL-запросу
это как ?
← →
Desdechado © (2005-10-13 11:12) [6]выборка делается из БД, а не из компонента
и причем тут Table1? Query и без него работает
← →
Monk © (2005-10-13 11:15) [7]Вот текст запроса для таблицы:
DataModule1.Query1.SQL.Add("SELECT sum(NumberOfDisks) AS Expr");
DataModule1.Query1.SQL.Add("FROM Genres INNER JOIN FilmsBD ON Genres.ID = FilmsBD.GenreID;");
Думал, что пройдет аналогичный запрос и для активного query:
DataModule1.Query1.SQL.Add("SELECT sum(NumberOfDisks) AS Expr");
DataModule1.Query1.SQL.Add("FROM Genres INNER JOIN Query ON Genres.ID = Query.GenreID");
Но обломался.
← →
Sergey13 © (2005-10-13 11:25) [8][7] Monk © (13.10.05 11:15)
SELECT FilmsBD.GenreID,sum(NumberOfDisks) AS Expr
FROM Genres INNER JOIN FilmsBD ON Genres.ID = FilmsBD.GenreID
Group By FilmsBD.GenreID
Не то?
← →
msguns © (2005-10-13 11:26) [9]Сабж интересный ;))
Именно из-за него я в свое время кинул интербэйз и перешел на акцесс+адо.
Просто надоело в каждом случае для сортировок и поисков юзать всякие индексы, фильтры и прочие "навороты". Или писать супергромоздкие парсеры.
В Access есть замечательная штукенция - вложенные запросы (Select from Select), с помощью которых можно исходный запрос вывернуть как угодно, в т.ч. организовать "выбор из выбранных".
← →
Digitman © (2005-10-13 11:37) [10]
> Monk © (13.10.05 11:15) [7]
я не понял - компонент Table1 тут причем ?
← →
Johnmen © (2005-10-13 11:48) [11]>msguns © (13.10.05 11:26) [9]
Хм... странно это как-то....
Бросать из-за надуманных проблем...:)
ЗЫ Селект из вью или хп и есть селект из селекта.
← →
Monk © (2005-10-13 11:55) [12]To Digiman: это я просто сначала обобщить хотел :)
← →
ANB © (2005-10-13 12:39) [13]
> Digitman © (13.10.05 11:37) [10]
- похоже у автора так таблица называется.
Автору - откуда движок СУБД знает о твоем компоненте в твоей программе ? Тем более, что в рантайме это просто кусок памяти и чисто делфовое RTTI.
← →
ANB © (2005-10-13 12:41) [14]ЗЫ. Ветку ща прикроют, так как тема не оформлена
← →
msguns © (2005-10-13 13:25) [15]>Johnmen © (13.10.05 11:48) [11]
>ЗЫ Селект из вью или хп и есть селект из селекта.
Дадада ! Есть БД с 100 справочниками (для примера).
Пишу ОДИН модуль, работащий со всеми справочниками (в смысле любым из них). Для того, чтобы узер мог сортануть, фильтрануть или искать в гриде (датасете), мне надо сообразить 100 ХП.
Спасибо, кушайте сами-с ;)
← →
Johnmen © (2005-10-13 13:40) [16]>msguns © (13.10.05 13:25) [15]
>...мне надо сообразить 100 ХП.
Странно... Мне достаточно одной...:)
И не совсем понятно, причём тут селект из селекта?
М.б. мы говорим о разных вещах?
← →
Seg (2005-10-13 13:50) [17]TQuery нельзя использовать для выборки запроса.
Можно только запустить по нему цикл и посчитать то, что нужно.
Чтобы не бегать по всему запросу, можно предварительно поставить фильтр.
← →
ANB © (2005-10-13 14:12) [18]
> Seg (13.10.05 13:50) [17]
- нехорошее решение.
Для нормальных субд есть вложенные запросы.
← →
msguns © (2005-10-13 14:40) [19]>Johnmen © (13.10.05 13:40) [16]
>Странно... Мне достаточно одной...:)
Поясни, как можно хранимкой выбирать данные из произвольной таблицы
← →
Johnmen © (2005-10-13 15:28) [20]>msguns © (13.10.05 14:40) [19]
>Поясни, как можно хранимкой выбирать данные из произвольной таблицы
А, вот ты о чём.
Контрвопрос - а как тебе в этом помогает Аксес ?
← →
evvcom © (2005-10-13 16:47) [21]
> Поясни, как можно хранимкой выбирать данные из произвольной
> таблицы
А о понятии динамического SQL ты когда-нибудь слышал? Только нужно ли это?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.036 c