|
Программирование >> Программный интерфейс приложений
Введение в программирование в СУБД MySQL в этой части книги мы узнаем, как создавать собственные программы, которые будут обрабатывать данные из баз данных в СУБД MySQL. СУБД MySQL поставляется с набором программных утилит. Например, утилита mysqldump экспортирует содержимое и структуры таблиц, утилита mysqlimport загружает данные из файлов в таблицы, утилита mysql позволяет взаимодействовать с сервером и выполнять произвольные запросы. Каждая утилита была задумана как маленькая программа с узкоспециализированными функциями. Это справедливо даже для более гибкой утилиты mysql в том смысле, что с ее помощью можно выполнить любое количество различных запросов. Цель ее - делать SQL-запросы и просматривать полученные результаты. Ограниченная природа клиентской программы СУБД MySQL не является недостатком - это было задумано при проектировании. Эта программа является утилитой общего назначения и не должна быть универ- сальным механизмом. Разработчики СУБД MySQL не могут подписаться под философией написания громадных и неповоротливых программ, выполняющих любой ващ каприз (это обычно заканчивается тем, что про-фаммируется множество функций, которые никому никогда не потребуются). Тем не менее, к приложениям иногда вьщвигаются требования, которые нельзя удовлетворить средствами стандартного клиента. Этим целям служит библиотека программ клиента. Она позволяет создавать собственные профаммы и дает в руки программисту гибкий инструмент, позволяющий удовлетворить любое фебование заказчика. Библиотека клиента открывает щирокие возможности, офаниченные только ващим воображением. Какие же специальные возможности вы получите, написав свои собственные профаммы? Давайте исследуем этот вопрос, просто сравнивая возможности клиента mysql и его интерфейса с помощью библиотеки. Настройка процедуры ввода данных. Клиент mysql позволяет вводить только обычные операторы SQL. Профамма собственного изготовления позволит создать более понятный и простой интерфейс для ввода данных. Такая профамма снимает необходимость знать как язык SQL, так и роль базы данных в выполнении задачи. Процедура ввода может представлять собой что-нибудь такое рудиментарное, как цикл подсказка-ответ или что-то более изощренное. Например, ввод в экранной форме, реализованный с помощью таких пакетов управления экранами как curses или S-Lang , X-Window с использованием Тс1/Тк или формы Web-броузера. Больщинство пользователей операторов SELECT предпочтет обьино-му вводу задавать парамефы поиска из формы. Например, любой агент по продаже недвижимости без дополнительной головной боли хочет найти дома определенного проекта, цена которых лежит в определенном диапазоне, удовлетворяющие определенному местоположению, задав при этом парамефЫ поиска и получив в ответ нужные варианты. Аналогичные соображения применимы и при добавлении новых записей или изменении существующих записей. Мащинистка, вводящая данные в отделе ввода данных, не должна знать синтаксиса операторов INSERT, REPLACE или UPDATE. Дополнительным доводом в пользу создания промежуточного этапа ввода между конечным пользователем и сервером СУБД MySQL является то, что на него можно возложить задачу проверки данных, введенных пользователем. Например, можно сделать проверку введенных календарных дат для того, чтобы убедиться, что они удовлетворяют формату календарных данных, принятому в СУБД MySQL. Возможность форматирования вывода. Утилита mysql выводит результаты в неформатированном виде, если таковым не считать имеющийся формат из столбцов, разделенных символом табуляции или табличную форму. Есть еще один случай, когда фебуется специальный формат, - полученные данные можно отформатировать самостоятельно. Здесь диапазон новаторских решений лежит от такого простого решения как напечатать отсутствует вместо null до более сложных требований к отчетам. Рассмотрим следующий отчет. state City Sales
TOTAL $274,749.06 Этот отчет содержит несколько специализированных элементов. Настроенные заголовки. Подавление вывода повторяющихся значений с таким расчетом, чтобы значение печаталось только при его изменении. Вычисление промежуточных и общих итогов. Форматирование чисел, таких как 94384.24, в виде денежных сумм $94,384 24. При решении задач определенного типа вывод результатов может вообще не потребоваться. Предположим, что в одной таблице требуется найти данные, которые будут использованы в вычислениях результата В свою очередь, полученный результат будет добавлен в другую таблицу. Может понадобиться перенаправить вывод результатов куда-то на другое устройство, а не на экран пользователя, запустившего запрос. Например, задача выборки имен и адресов электронной почты для автоматического процесса генерации писем для рассьшки по почте генерирует вывод, содержащий сообщения, рассылаемые по электронной почте, а не тому, кто непосредственно работает с программой. Возможность обойти ограничения, вытекающие из самой природы SQL. Язык SQL не является процедурным языком и не имеет набора структур управления выполнения программ, таких как условные операторы, циклы и подпрофаммы. Сценарии SQL состоят из набора операторов, выполняемых одновременно от начала до конца с минимальной проверкой на ошибки. При запуске запросов SQL с помощью утилиты mysql в пакетном режиме, mysql завершит выполнение после первой же ошибки или, если mysql была запущена с ключом -force, выполнит все
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |