|
![]() |
#1 |
Moderator
|
SQL-запросы вещь полезная, но dll для этих целей создавать необязательно, достаточно обойтись ADO.
Кстати часто возникающая ситуация для использования таких запросов: есть таблица, для примера возьмем, скажем, протокол взаимодействий. есть задача: вывести на экран список взаимодействий выбранного департамента. Понятно, что есть три типичных варианта действий: 1. Перебираем все записи таблицы "Протокол взаимодействий" и смотрим, попадает ли указанный там сотрудник в нужный нам департамент 2. Перебираем всех сотрудников департамента и по каждому их них фильтруем таблицу "Протокол взаимодействий" 3. Завести в протокол взаимодействий вычисляемое поле "Департамент", по которому собственно и фильтровать. Недостаток у все этих вариантов один - большое количество генерируемых навижн sql-запросов, а следовательно большое время выполнения (особено при существенном количестве записей). Третий вариант, например, отпадает сразу - сами знаете как работает фильтрация по вычисляемому полю. Какой вариант выбрать из двух оставшихся - сильно зависит от количества записей в протоколе, а также от количества сотрудников. Но есть и еще один вариант, самый скоростной, подходящий правда только SQL-версии (которой думаю пользуется большинство): прямой SQL-запрос через ADO. Для демонстрации такого варианта я написал кодюнит, на вход которому подается текст -SQL запроса. На выходе кодюнит возвращает таблицу отфильтрованную согласно тексту запроса. Демка содержит два объекта - форму 90000 и кодюнит 90000. Форма предназначена исключительно для визуализации - пишем там запрос, нажимаем кнопочку, получаем результат. В качестве примера используется "План Счетов" (G/L Account) [attachment=481:attachment] |
|