Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Разработка корпоративных приложений в Access 2002 - Литвин П.

Литвин П. Разработка корпоративных приложений в Access 2002 — Спб.: Питер, 2002. — 848 c.
ISBN 5-314-00181-0
Скачать (прямая ссылка): razrabotkaprilojeniy2002.djvu
Предыдущая << 1 .. 51 52 53 54 55 56 < 57 > 58 59 60 61 62 63 .. 357 >> Следующая

Использование метода FindFirst
Существует один способ навигации и поиска записей, который в приложении клиент/сервер работает гораздо быстрее, чем в обычном настольном приложении Access. Речь идет о методе FindFirst. В Access обращение к нему всегда приводит к сканированию таблицы, а вот при работе с сервером Jet использует запрос, который сервер выполняет гораздо более эффективно. Вы можете воспользоваться этим преимуществом и разместить поля для задания условия отбора в заголовке или примечании формы, а когда пользователь сделает выбор - вызвать метод FindFirst, чтобы найти нужную запись для раздела данных.
Разработка отчетов
Отчеты в приложениях клиент/сервер - это постоянный источник проблем. В Access встроен мощный генератор отчетов с большим количеством инструментов анализа данных. Однако значительная их часть, ориентированная на локальные данные, в своей работе "не стесняется" запрашивать одни и те же записи по многу раз подряд.
Простейшим и вполне удовлетворительным решением этой проблемы во многих случаях может оказаться разделение процесса формирования отчета на две части. Сначала вы выполняете запрос, который получает от сервера все необходимые для отчета данные. Создавая этот запрос, не волнуйтесь об итогах, группировке и прочих подобных вещах. Получив данные, вы сможете делать
Разработка отчетов
139
с ними то, что нужно для отчета: создавать на базе своего первого запроса к серверу сколько угодно других, локальных запросов. Если же вы формируете несколько отчетов на базе одного и того же источника данных, сохраните загруженные с сервера данные в локальных таблицах Access и связывайте с ними все отчеты.
Описанный подход не годится только для двух случаев:
О когда создается итоговый отчет на основе очень большого количества данных;
О при создании отчета со статистическими сведениями, полученными с помощью специфических функций сервера, которых Access не поддерживает.
Группировка и сортировка
Access не может отправить запрос с группировкой по нескольким полям прямо на сервер. Поэтому, если вы не загрузите данные в таблицы Access с соответствующими индексами, Jet будет сама сортировать полученные от сервера данные (на клиентской машине). Смысла в этом никакого, поскольку генератор отчета все равно будет сортировать и группировать данные. Так что для получения данных с сервера создавайте самые простые запросы без каких бы то ни было предикатов GROUP BY.
Выбор источников данных для полей
Поскольку в отличие от форм отчеты по определению используются "только для чтения", для них гораздо чаще бывает целесообразным загружать данные с сервера для временного локального хранения. А еще оптимизации запросов помогает перенос из них всех опций форматирования в отчет.
Создание полей и выражений для верхнего и нижнего колонтитулов
При необходимости вывести в колонтитулах отчета итоговые поля старайтесь связывать их значения с полями раздела данных отчета, а не с выражениями, содержащими поля таблицы.
Диаграммы
Включая в отчет диаграмму, подумайте об источнике ее данных и местонахождении OLE-сервера. Обычно для каждой диаграммы используется отдельный источник данных. Постарайтесь предельно ограничить отбираемую для нее информацию, чтобы получать с сервера только то, что вам действительно нужно. Не используйте запрос для форматирования данных или добавления заголовков - лучше получить с его помощью сырые данные. Все форматирование, работы по созданию подписей и заголовков выполняйте с использованием средств автоматизации. Пусть сервер базы данных делает свое дело, а сервер автоматизации - свое. Лишь при этом условии каждый покажет лучшее, на что он способен, а Access получит заслуженные лавры.
140
Глава 3 * Разработка приложений клиент/сервер
Проблемы перехода на платформу клиент/сервер
Вполне вероятно, что при переносе существующего файл-серверного приложения на платформу клиент/сервер у вас возникнут некоторые проблемы. Информация этого раздела должна помочь в их решении.
Необновляемые запросы
Одна из первых проблем, с которой вы можете столкнуться, заключается в том, что некоторые запросы к базе данных Access, вполне допускающие обновление, сервер обновлять не позволит. В таких случаях Jet будет локально создавать объединения и локально обрабатывать все обновления, выполняемые вашим приложением, считывая и обновляя данные серверных таблиц с помощью отдельных запросов. Это не только намного менее эффективно по сравнению с обработкой обновлений на сервере, но и влечет за собой дополнительные конфликты, зависящие от того, как Access и ваш сервер определяют транзакции для таких обновлений. Поэтому вы, возможно, захотите переработать те компоненты приложения, в которых выполняется обновление объединенных данных. Впрочем, если сеть спроектирована правильно, а сервер достаточно быстрый, выполняемые Jet обновления могут вполне вас устраивать. Проблемы могут возникать лишь при повышенной сетевой нагрузке, которая иногда наблюдается в подобных системах.
Преобразование условий проверки
Условия, накладываемые на значения полей таблиц (validation rules), - это еще один вопрос, требующий внимательного отношения. Если ваш сервер поддерживает триггеры и хранимые процедуры, большинство определенных в Access условий можно будет преобразовать в серверные триггеры. В этом случае вам нужно будет написать собственный код для обработки ошибок и вывода сообщений, который заменит встроенный код Access. Протестируйте сервер, чтобы определить, как выполняется обработка ошибок, относящихся к хранимым процедурам и триггерам. Особенно будьте внимательны при переносе на сервер условий, действующих на уровне таблицы, и условий, в которых используются функции Access. Наборы встроенных функций у всех серверов разные, и если какой-то функции у сервера не окажется, ее нужно будет заменить собственной хранимой процедурой. В некоторых случаях контроль вводимых данных придется выполнять локально с помощью VBA и отправлять на сервер только гарантированно правильную информацию.
Предыдущая << 1 .. 51 52 53 54 55 56 < 57 > 58 59 60 61 62 63 .. 357 >> Следующая