Программирование >>  Проектирование интерфейса пользователя 

1 ... 87 88 89 [ 90 ] 91 92 93 ... 153


14: 15: 16: 17 18: 19 20 21:

23 :

26: 27:

Publishers.MoveFirst

Po While RecordSet.EOF = False

Debug.Print Publishers( Artist

Publishers.MoveNext

Loop

Publi shers.Close

Set Publishers = Nothing Set Command = Nothing

Set Catalog = Nothing Set Connection = Nothing

End Sub

Многие строки кода вам уже знакомы, поэтому остановимся лишь на главном. Вам следует выделить объекты соединения и каталога. Обратите внимание, что в строке 11 не создается новый объект Recordset - в нем нет необходимости, поскольку данный объект возвращается командой Command.Execute в строке 14. Поэтому дополнительные операпии выделения памяти в строке не нужны. В строке определяется значение Parameters объекта Command, а в строке 14 вызывается метод Execute, возвращающий набор данных, которые являются результатом

выполнения запроса хранимой процедуры

Полученный в выполнения команды строки 14 набор данных, может при-

меняться, как и любой другой - мы неоднократно выполняли подобные операции ранее.

Создание запросов в базах данных формата SQL Server

В проектах Access SQL можно использовать тремя способами: создавать соединения с SQL-базами данных, преобразовывать базы данных Access в формат SQL Server, устанавливать связь с SQL-таблипами, используя команду ФайлоВнешние данныеСвязь (File=>Get Extemel DataOLink). Выбор зависит от пелей проекта и условий его разработки. Для повышения надежности, вероятно имеет смысл использовать формат SQL Server. А если для работы требуется всего лишь некоторые данные из другой базы данных, достаточно создать связь с таблицей или использовать объект

Connection.

Если вы планируете устанавливать связь с таблицами SQL Server, рекомендуется создать объект источника данных. Либо же использовать OLE DB и ADO для непосредственного указания информации о провайдере (Provider). Эти операции были

описаны в предыдущих главах.

После того как доступ к данным SQL Server обеспечен, работа с такой базой данных, по большому счету, не будет отличаться от работы с данными Access. Необходимо получить объект Recordset, определить запрос в зависимости от требуемой операции и открыть набор записей. С этого момента управление данными происходит так же, как и в Access - с помощью SQL или VBA-кода либо их комбинации.

11: Dim Publishers As ADODB.Recordset 12 : Pim RecordsAffected As Dong

Command.Parameters ( [APublisher] ).Value = Elektra Set Publishers = Command.Execute()



Вам необходимо лишь помнить, что SQL Server - другой сервер баз данных, поэтому текст запросов может несколько отличаться в зависимости от используемой версии SQL Server. Разобраться с подобными тонкостями поможет хорошая книга по работе с применяемой версией сервера баз данных, эксперименты, и, конечно же, терпение.

Резюме

Да, это был серьезный и продолжительный урок. Вам пришлось много потрудиться.

Впрочем, в этой книге изложены лишь общие концепции программирования на SQL. Если вы нуждаетесь в более подробной информации, настоятельно рекомендуем обратиться к пособиям, специально посвященным SQL, - например, к книг Стефенза (Ryan Stephens) Sams Teach Yourself SQL in 24 Hours. SQL - это мощн1й самостоятельный язык программирования, имеющий достаточно глубокие исторические традиции. Почти каждая

система управления базами данных снабжена собственным диалектом SQL. Если, помимо

Access, вы предполагаете работать с другими системами, будет лучше воспользоваться специальными руководствами и фирменной документацией.

В ходе этого занятия вы ознакомились с различными конструкциями одной из основных команд SQL - SELECT, включая возможности объединения таблиц (предложение JOIN) и запросов (UNION), а также построения подчиненных (вложенных) запросов. Мы кратко рассмотрели средства добавления (INSERT), обновления (UPDATE) и удаления (DELETE) данных. Вы научились пользоваться предложением WHERE

(поддерживаемым почти во всех названных командах) для фильтрации данных.

Механизмы создания и использования хранимых процедур весьма серьезны и заслуживают особого внимания. Теперь, благодаря объектам ADO, доступ к ним получили и программисты, работающие с Access. Достаточно хорошо освоить базовые конструкции SQL - и хранимые процедуры станут вашим надежным помощником.

А теперь сделайте еще одно усилие и ознакомьтесь с оставшимися разделами этой главы.

Вопросы и ответы

Вопрос. Действительно ли SQL, как и VBA, обладает собственн1м набором служеб-н1х слов и синтаксических правил?

Ответ. Да. Все языки (и языки программирования в том числе) обладают собственным словарем и грамматикой. Словарь перечисляет допустимые (значимые) слова, а грамматика диктует правила их употребления. Теперь вы знакомы уже с двумя языками программирования (речь не идет о более опытных читателях). Осталось лишь научиться с их помощью понятно выражать свои мысли.

Вопрос. Существуют ли какие-либо ограничения, связанные с объемом единого запроса на языке SQL?

Ответ. Нет. Вы можете создавать настолько сложные и широкие запросы, насколько это необходимо и целесообразно. Но SQL - это, как говорят, монолитный язык. Каждый запрос всегда содержит только одно выражение, пусть даже весьма обширное. Впрочем, и для SQL справедливо общее эмпирическое правило - чем проще, тем лучше.

Вопрос. Что вы можете сказать о стиле программирования на SQL?

Ответ. Правила хорошего тона в программировании едины. Не пытайтесь втиснуть решение всей задачи в рамки одного выражения SQL. Старайтесь представить ее в виде последовательности частных подзадач, решаемых с помощью простых



конструкций SQL и связанных командами на язык ВА. Этим вы существенно упростите обязанности по дальнейшему развитию и сопровождению программного проекта.

Вопрос. Где я могу найти информацию об определенной версии SQL?

Ответ. Посетите Web-сайт ANSI (http: www.ansi.org) либо обратитесь за литературой к поставщику той системы управления базами данных, которой пользуетесь.

Задания

Ниже приведены тестовые задания и упражнения, которые помогут вам самостоятельно проверить уровень освоения материала, изложенного в этой главе. Ответы на вопросы вы найдете в приложении.

Тесты

1. Что такое подчиненный (вложенный) запрос?

2. С какой целью употребляется служебное слово ALL, используемое совместно с

UNION?

3. Можно ли применять вложенный запрос в контексте команды DELETE? Если да, то зачем?

4. Ограничиваются ли возможности хранимых процедур использованием команды SELECT?

Упражнения

1. Напишите предложение WHERE с предикатом IN, позволяющее отобрать все записи таблицы MUSIC, в поле PUBLISHER которых содержатся значения Elektra или Empire.

2. Исправьте команду UPDATE, приведенную в строке 2 листинга 16.6, таким образом, чтобы в верхний регистр были переведены первые символы имени и фамилии исполнителя.

3. Создайте хранимую процедуру, позволяющую удалить из таблицы MUSIC запись по заданному значению поля LAST NAME.



1 ... 87 88 89 [ 90 ] 91 92 93 ... 153

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика