Прога уменьшает кол-во лишних движение мышью. Подводим к нижнему краю экрана - вылазит сверху. К правому - слева... Не загружает систему и мало места занимает.
SQL
»»» Merle Corey (07.07.00 12:36) Существует следующая проблема: есть 4 таблицы в БД ORACLE -- Карточки, Пересылки, Исполнители и Департаметы. Связь сл. : К каждому департаменту привязаны исполнители. С исполнителями связаны пересылки. Ну а Пересылки связаны с карточками. Необходимо подсчитать кол-во карточек для каждого департамента. Как это сделать пошустрее.
»»» kingdom - kingdom@tepkom.ru (08.07.00 21:27) У меня были похожие проблемы, пришлось делять вложенный СКуЛь запрос типа select ... from (select .. from (select ...)) ну и применить соответсвующую функцию для подсчета (если очень дано могу позже написать как сейчас не помню), ... ну млм же вот в Access можно делать запросы прямо в самой MS-Access к которым можно обращаться как к обычным таблицам только понятно их физически нет, так вот в запрос включить все столбцы Карточек и столбец
с ID из Департамента тогда все должно быть быстро, попробуй...
-= Из конференции сайта MASTERS OF DELPHI (http://delphi.mastak.com) =-
Прикольно, но чуваки забывают, что есть еще понятие view, которое как раз и реализует то же, что и "ну млм же вот в Access можно делать запросы прямо в самой MS-Access к которым можно обращаться как к обычным таблицам только понятно их физически нет" т.е. пишется просто - create view test as select ... и дальше select ... from test, ... ну а в крайнем случае можно написать хранимую процедуру.
Комментарий от "Vladimir Krinitsin" (vvkrinitsin@hotmail.com) обычно делают так:
select count(Карточки.*), Деп.Имя from Карточки join Пересылки on ... join Исп. on... join Деп on... group by Деп.Имя
Комментарий
от "Grigory V Dutikov" (dutikov@accum.kursk.ru) Правильно для ORACLE:
create view CountCard as select count( k.*), d.DepName from Департамент d, Исполнители e, Пересылки p, Карточки k where d.DepName = e.DepName and e.ExeName = p.ExeName and p.KardName = k.KardName
P.S. Если на сервере русская кодировка, то имена таблиц и полей можно писать по русски и без кавычек!!! в Oracle8i и выше
---- Комментарий от Michael Strelkov ---- В запросе от "Grigory V Dutikov" пропущен group by d.DepName. То есть, должно быть так:
create view CountCard as select d.DepName, count( k.*) as Number_of_Kards from Департамент d, Исполнители e, Пересылки p, Карточки k where d.DepName = e.DepName and e.ExeName = p.ExeName and p.KardName = k.KardName group
by d.DepName.
Но если эти таблички достаточно большие, то работать это может довольно медленно. Но можно слегка оптимизировать: 1) если поля связи не описаны явно как foreign keys, или по ним нет индексов, то создайте их. 2) в предл. from разместите таблицы по убыванию их размеров. 3) в предл. where разместите условия по and, так, чтобы в конце были те, по которым производится максимальный отсев лишних записей, т.к and обрабатываются справа налево.
Если все это не поможет, то надо поработать над исходными таблицами. Возможно, они не нужны целиком в данном запросе, и есть возможность что-то из них выбросить (наверняка есть лишние столбцы, т. к. из каждой таблицы нужны только столбцы для связи, и, особенно лишние строки). Тогда в запросе в предл. from, вместо указания имен таблиц XXXXXXXX x, напишете такие некореллированные подзапросы: (select YYYYY from
XXXXXX where <условие, которое оставляет только нужные строки>) x. Если Вам удастся таким образом существенно уменьшить размеры используемых в запросе таблиц, скорость выполнения может увеличиться на 1-3 порядка.
Создание компонентов в Run-Time.
Итак, рассмотрим на первый взгляд сложный вопрос о создании компонентов в Run_time (то есть во время работы программы). Но на самом деле этот вопрос довольно просто решается. Давайте вместе попробуем написать код, чтобы при нажатии на кнопку на форме появлялось ...
Сборник задач по программированию
Программирование — процесс творческий и увлекательный. Этому обучают в школах, в техникумах, в вузах и других учебных заведениях. Но не всегда на занятиях есть время отработать изученное на практике. Научиться программированию, можно только решая конкретные задачи. Этот сборник содержит более 1500 задач по всем основным темам программирования. Краткая теоретическая часть в начале каждого раздела поможет изучающим Турбо Паскаль разобраться в применении того или иного алгоритма, а тем, кто изучает другой язык программирования, — без особых сложностей перевести приведенное решение на нужный язык. Освещение основ языка Паскаль позволяет использовать книгу как справочник, но это ни в коей мере не говорит о ее узкой направленности только на Паскаль, так как практически все приведенные задачи могут быть решены с помощью других языков программирования. Основная цель
этой книги — помочь читателям: в практическом овладении языков программирования; в изучении и освоении основных методов и приемов программирования; в получении навыков в отладке и тестировании приложений.
Автор: Гуденко Д. А., Петроченко Д. В.
Бесплатная замена для Делфи :) На этом сайте можно скачать оболочку для Freepascal :) Используя бесплатную оболочку плюс бесплатный компилятор - можно писать коммерческие дельфийские проги :) там GPL лицензия сам ...
» Оценка сайта: 2
Опрос населения :)
Новый журнал для программистов "RSDN Magazine". За какую сумму вы готовы его покупать?
Афоризмы
Наука – знание того, как правильно организовать своё незнание.
Фраза дня
Человеку свойственно ошибаться. И он пользуется этим свойством часто и с удовольствием.
Дурацкие законы (информация предоставлена сайтом kurilka.com)
В Мичигане (США) женщина не может постричь волосы без предварительного согласия мужа.
В Пенсильвании (США) всем водителям, оказавшимся на сельских дорогах ночью, предписывается- останавливаться через каждую милю и стрелять из ракетницы, ждать 10 минут пока с дороги уйдет скот, который мог на ней оказаться, и затем ехать дальше..
И на закуску коротенький анекдот
Добрый молодец Пяткин тщательно продумал, как он убьёт жену и спрячет тело... Только после этого он сделал первый шаг - женился.