Главная страница

Краткое содержание 29 Об этих стрелках 30 о сочетаниях клавиш 32 о щелчках кнопкой мыши 33 Примеры 33


Скачать 19.64 Mb.
НазваниеКраткое содержание 29 Об этих стрелках 30 о сочетаниях клавиш 32 о щелчках кнопкой мыши 33 Примеры 33
АнкорAccess_2007.doc
Дата16.03.2017
Размер19.64 Mb.
Формат файлаdoc
Имя файлаAccess_2007.doc
ТипКраткое содержание
#3862
страница60 из 65
1   ...   57   58   59   60   61   62   63   64   65

Преобразование БД
У программы Access есть удобный Мастер преобразования в формат SQL Server (Upsizing wizard), который превращает любую БД Access в БД SQL Server. Этот мастер аналогичен мастеру разделения БД — когда вы закончите, у вас будет серверная и клиентская части БД. Клиентская часть — файл Access, содержащий ваши формы, отчеты, макросы и программный

к
од. Серверная часть — это данные (и обычно запросы), которые хранятся в надежных руках программы SQL Server.

Вот как взять в оборот Мастер преобразования.

1. Откройте БД, которую хотите преобразовать.

Выберите на ленте Database ToolsMove DataSQL Server (Работа с базами данных Переместить данные SQL-Server)1.

2. На экране появится первое окно Мастера преобразования (рис. 20.5).
Рис. 20.5. Обычно мастер преобразования применяется для переноса данных из файла БД Access в замечательную новую БД SQL Server

3. Выберите переключатель Create new database (создать базу данных) и затем нажмите кнопку Next (Далее).

Если вы уже создали БД SQL Server на компьютере с программой SQL Server (например, с помощью другого средства управления БД), можно было бы выбрать пере­ключатель Use existing database (использовать существующую базу данных) для пере­носа ваших таблиц Access в эту БД. Но почти всегда имеет смысл создавать новую БД. Помимо всего прочего процессор БД, такой как SQL Server, может хранить практически неограниченное число БД.

4. На следующем этапе (рис. 20.6) необходимо сообщить программе Access, где искать сервер вашей БД. Сначала введите в поле в верхней части окна имя сервера.

Имя сервера состоит из имени компьютера, на котором запущена программа SQL Server, за которым следует обратный слэш, а затем слово SQLEXPRESS. Если компьютер, вы­полняющий программу SQL Server, назван FudgeServer, вы найдете свою БД на FudgeServer\SQLEXPRESS. Если вы подключаетесь к полной версии программы SQL Server

1 В данной главе рассматривается нерусифицированная версия программы Access. — Ред.

(не к версии Express), вторая часть имени, как правило, не нужна, достаточно Fudge-Server. Обратитесь за помощью к вашему администратору БД.




Р
ис. 20.6.
В этом окне программа Access собирается подключиться к компьютеру, названному MYSERVER, на котором выполняется программа SQL Server Express
Примечание

Для выяснения имени вашего компьютера, найдите пиктограмму Мой компьютер (My Computer) (на вашем рабочем столе или в программе Проводник (Windows Explorer)), щелкните ее правой кнопкой мыши и выберите строку Свойства (Properties). Далее перейдите на вкладку Имя компьютера (Computer Name). Вы увидите имя вашего компьютера и полезную кнопку Изменить... (Change), которой можно воспользоваться для изменения этого имени.

5. Оставьте установленным флажок Use Trusted Connection (Доверительное соединение).

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

6. Введите имя вашей БД и щелкните мышью кнопку Next (Далее).

Пользуйтесь теми же правилами, которым вы следовали при именовании объектов БД - имена должны быть короткими, без пробелов и знаков пунктуации.

Примечание

Когда создается БД, программа SQL Server не сообщает вам имя реального файла БД (как пра­вило, это несколько файлов). Имена файлов не так важны. Вам следует знать имя, которым вы наградили вашу БД (например, BoutiqueFudge). За кадром программа SQL Server хранит ваши данные в соответствующих файлах, поэтому вам беспокоиться об их именах, не стоит.

7
. Выберите таблицы, которые хотите перенести в вашу БД (рис. 20.7), и щелкните мышью кнопку Next (Далее).

Программа Access не разрешит выбрать запросы, которые вы хотите перенести в БД. Вместо этого она перенесет все запросы, связанные с выбранными вами таблицами. Дру­гие объекты, такие как формы и отчеты, никогда не переносятся.
Рис. 20.7. Щелкните мышью кнопку > для переноса одной таблицы в список Export to SQL Server или кнопку » для переноса всех таблиц

8. Следующие этапы позволят управлять способом создания ваших таблиц в программе SQL Server (рис. 20.8). Измените нужные параметры и щелкните мышью кнопку Next (Далее).

В главе 2 вы узнали об индексах, а в главе 4 познакомились со значениями по умолчанию и условиями на значения. Обычно, если вы потратили время на определение этих со­ставляющих БД в программе Access, вам захочется сохранить их и в экспортируемых в SQL Server таблицах, поэтому оставьте соответствующие флажки установленными. Да­лее перечислены остальные параметры, которые можно использовать.

□ Флажок Table relationships (связи таблиц). Оставьте его установленным, что гаран­тирует сохранение в программе SQL Server связей между таблицами, которые вы оп­ределили. В этом случае у вас есть два варианта для выбора. Переключатель Use DRI (DRI), где DRI — сокращение для data relational integrity (ссылочная целостность данных), — обычная практика, обеспечивающая невозможность создания подчинен­ных или дочерних записей, ссылающихся на несуществующую главную или роди­тельскую запись. Переключатель Use triggers (Триггеры) заставляет программу SQL Server применять менее распространенные средства каскадного удаления и каскадно­го обновления записей.


Раскрывающийся список Add timestamp fields to tables? (Добавлять поля штампа времени в таблицы?) позволяет создавать поле с текущими датой и временем — до­полнительное поле, основная цель которого фиксировать момент времени внесения изменения. Данное поле иногда применяется для запрета накладывающихся измене­ний, т. к. оно позволяет проверить, не сделал ли кто-то еще изменений в записи с тех пор, как вы последний раз ее просматривали. Обычно поля с датой и временем не до­бавляются. Лучше вставить их в таблицу позже, когда вы решите, что хотите восполь­зоваться этой возможностью.
Рис. 20.8. Если вас пугают все параметры в этом окне, просто щелкните мышью кнопку Next, чтобы оставить все, как есть. Стандартные установки — как правило, то, что вам нужно

  • Флажок Only create the table structure... (создать только структуру таблицы...). С помощью этого параметра можно создать все таблицы в программе SQL Server, но не переносить данные. Этот вариант удобен, если в данный момент файл БД Access тестируется и в нем много не реальных, а тестовых данных.

9. На последнем этапе решается, как поступить с исходным файлом Access. Обычно выбирается вариант Create a new Access client/server application (Создать новое приложение Access).

Далее описывается назначение каждого из трех возможных вариантов.

  • Вариант Create a new Access client/server application (создать новое приложение Access). Если выбран этот вариант, создается файл Access специального типа, назы­ваемый проектом Access. Вы заметите разницу, т. к. у этого файла расширение adp. Данный файл — клиентская БД, содержащая все ваши отчеты, формы, программный код и специальный набор ссылок, позволяющих взаимодействовать с таблицами, находящимися на сервере. (Исходный файл БД Access остается, но вы, наверное, просто удалите его, потому что все ваши данные есть в программе SQL Server.)

    • Вариант Link SQL Server tables to existing application (связать таблицы SQL Server с существующим приложением). Этот вариант аналогичен созданию проекта Access за исключением того, что он модифицирует файл текущей БД, превращая его в клиентскую БД. Все таблицы, которые только что были перенесены, переименовываются добавлением в конец имени слова "local" (локальная) (таким образом, таблица Products становится таблицей Products_iocal). Кроме того, вы получите новый набор связанных таблиц с исходными именами. Каждая связанная таблица позволяет обращаться к соответствующей таблице в программе SQL Server. После того, как
      убедитесь, что связи таблиц действуют, вероятно, стоит удалить локальные таблицы, чтобы не путаться. (Дополнительную информацию о связанных таблицах см. в примечании "На профессиональном уровне. Проекты Accessno сравнению со связанными таблицами" далее в этом разделе.)

    • Вариант No application changes (не изменять приложение). При выборе этого варианта данные переносятся, но ваша БД Access не изменяется. Это означает наличие двух наборов данных: один набор в файле БД Access и другой в файле SQL Server (который можно просматривать и корректировать в программе Access). Такой результат обычно не то, что вам нужно.

10. Щелкните мышью кнопку Next (Далее).

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

11. Щелкните мышью кнопку Finish (Готово) для того, чтобы начать процесс преобразования.

П
рограмма Access подключается к SQL Server и начинает переносить все данные. Во время ее работы вы видите индикатор выполнения процесса (рис. 20.9).

Когда Access закончит, программа выведет на экран отчет со сводными данными о за­вершенном процессе. Отчет можно напечатать или выбрать на ленте Print Preview Close PreviewClose Print Preview (Предварительный просмотр Закрыть Закрыть окно предварительного просмотра) для возврата к вашей БД.
Рис. 20.9. Процесс может занять какое-то время, зависящее от количества данных

Процесс преобразования обычно выполняется без проблем. Но не все данные переживут преобразование. Далее перечислены ингредиенты, которые могут быть потеряны.

Поля гиперссылок. Они превращаются в обычные текстовые поля.

  • Поля типа Вложение. Они становятся обычными текстовыми, полями, но в этих полях содержатся только имена файлов, которые вы поместили в БД как вложения.

  • Многозначные поля. Вы получите список значений, разделенных точкой с запятой. Такой результат содержит верные данные, но в форме, которую не может использовать программа SQL Server. Любые отношения или запросы, использующие эти данные, потерпят неудачу.

Если создается проект Access (а не просто связанные таблицы), ваши запросы тоже пре­образуются. В результате потеряются следующие составляющие, поскольку программа SQL Server их не поддерживает:

  • запросы на изменение (см. главу 8) с параметрами;

  • перекрестные запросы;

  • запросы, ссылающиеся на значения, хранящиеся в форме. (Форма находится в вашей клиентской БД, поэтому после переноса запроса у него не будет доступа к данной информации.);

  • нестандартные запросы, которые были созданы в режиме SQL-команды, а не в Конструкторе, например запросы на объединение.



На профессиональном уровне.

Проекты Access по сравнению со связанными таблицами
Проекты Ассеss и связанные таблицы выглядят как два похожих варианта. Они позво­ляют создавать клиентские БД Access, работающие с данными, хранящимися в БД SQL Server. Но у этих вариантов есть несколько важных различий.

  • Обновляемостъ. Несмотря на то, что для изменения данных можно применять оба варианта, структуру связанной таблицы изменять нельзя. Таким образом, если нужно добавить поля, установить отношения и т. д., необходимо использовать проект Access.

  • Обработка запросов. Когда создается проект Access, ваши запросы преобразуются в объекты SQL Server и хранятся на сервере. Когда создается связанная таблица, запросы остаются в клиентской БД. Трудно сказать, какой подход лучше. Обычно у проектов Access более высокая производительность обработки запроса, поскольку большую часть работы выполняет сервер. (Это особенно справедливо, если выполняется запрос, который отбирает несколько записей из большой таблицы.) Связанные таблицы позволяют продолжать применять хорошо знакомый конструктор запросов программы
    Access и устраняют возможность ошибок преобразования запроса.

  • Тип файла. Связанные таблицы помещаются в обычный файл Access. (Вы даже можете поместить их рядом с обычными таблицами.) Проект Access всегда должен сохраняться в специальном файле с расширением adp.

Вы узнали о связанных таблицах в главе 19. В оставшейся части данной главы предпола­гается, что создается проект Access.

Подсказка

Хотите вернуться назад другим путем и переслать данные из SQL Server в Access? Если так, воспользуйтесь средствами импорта и экспорта в программе Access, о которых вы узнали в главе 19.

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

Во время редактирования данных и применения форм и отчетов вы не заметите разницы между новой преобразованной БД и вашей исходной БД (за исключением, возможно, неко­торого снижения быстродействия). Однако разница станет заметной, когда вы создадите новую таблицу или запрос, либо когда вы измените дизайн существующей таблицы или за­проса. Все потому, что таблицы и запросы на самом деле хранятся в БД SQL Server, а эти БД спроектированы несколько иначе, чем их дубликаты в Access.

Вы начнете рассматривать различия в разд. "Добавление объектов в БД SQLServer" далее в этой главе. Но сначала стоит рассмотреть, как управлять только что созданной БД SQL Server.

Управление вашей БД
На территории Access легко удалять, перемещать, создавать резервную копию БД. Нужно всего лишь найти соответствующий файл с расширением accdb и использовать средство управления файлами, например программу Проводник ОС Windows.

Программа SQL Server работает иначе. Как вы уже узнали, она обрабатывает файлы за кадром, не раскрывая имен этих файлов. Но даже если вы знаете, где искать файлы БД, вы мало что сможете с ними сделать. Например, если нужно перенести БД SQL Server с одного сервера на другой, простая операция вырезания и вставки в Проводнике не сработает. Ис­ходный сервер будет продолжать искать БД, которую вы перенесли, а новый сервер будет продолжать ее игнорировать.

Если вы хотите выполнять задачи управления, такие как удаление, перенос или копиро­вание БД, необходимо работать с программой SQL Server, т. к. она может перемещать фай­лы и изменять каталог БД. Один из вариантов — загрузить из Интернета бесплатное про­граммное средство SQL Server Management Studio (см. рис. 20.2), которое поможет выполнять широкий круг задач администрирования. (Например, это средство понадобится, если у вас грандиозные планы, и вы начинаете настраивать параметры безопасности SQL Server для того, чтобы дать разрешения одним пользователям и отказать другим.) Однако самые распространенные задачи управления можно выполнять и прямо в программе Access. Секрет кроется в применении кнопки Office Server (Office Сервер) (меню Server (Сервер) появляется, только если открыт проект Access).

У вас в меню есть следующие варианты.

Connection (Подключение). Выводит на экран диалоговое окно Data Link Properties (Свойство связи с данными), в котором можно изменять параметры подключения для вашего файла проекта Access. Обычно к этому окну обращаются при возникновении проблем подключения к вашей БД SQL Server. Например, если кто-то переместил или переименовал БД SQL Server или изменили имя пользователя и пароль, нужные вам для регистрации, именно в этом окне можно обновить ваши параметры. Задайте новый сер­вер, новое имя БД или сведения о пароле и щелкните мышью кнопку ОК для повторного подключения.

Подсказка

Если вы открыли файл проекта Access и не видите никаких таблиц, а в строке заголовка появ­ляется сообщение "Disconnected" ("Нет соединения"), программа Access не смогла подключить­ся к вашей БД. Если имя БД или сервера были изменены недавно, выберите кнопку Office Server Connection (Office Сервер Подключение) для устранения проблем.

  • Server Properties (Свойства сервера). Отображает диалоговое окно с базовыми сведениями о вашей БД, включая программу, которая выполняется (SQL Server), ее версию (у SQL Server 2005 номер версии 9), расположение сервера и текущей БД. В этом окне нельзя изменять никакие данные.

  • Link Tables (Связь с таблицами). Позволяет добавить одну или несколько связанных таблиц к вашему текущему проекту Access. Как правило, суть заключается в добавлении связанных таблиц из другой БД (или даже другого сервера БД). Таким образом, вы можете видеть все, используя один файл Access.

  • Back Up SQL Database (Резервная копия базы данных). Создает резервную копию вашей БД SQL Server в файле с расширением dat, который можно поместить куда угодно (на серверный или на свой компьютер). Специалисты SQL Server обычно предпочитают применять средство, позволяющее создавать резервные копии автоматически, например SQL Server Agent (это средство входит только в полную версию SQL Server).

  • Restore SQL Database (Восстановление базы данных Microsoft SQL Server из резервной копии). Берет файл с расширением dat, который был создан командой Office Server Back Up SQL Database (Office Сервер Резервная копия базы данных), и создает заново соответствующую БД SQL Server.

  • Transfer Database... (Перенос базы данных...). Позволяет переместить БД с одного компьютера на другой. (На обоих компьютерах должна быть программа SQL Server.) Программа Access сохраняет новое расположение сервера в вашем файле проекта, поэтому можно продолжать использование БД, находящейся на ее новом месте. Это средство

■ удобно, если вы тестировали БД SQL Server на своем компьютере и теперь хотите пере­нести ее на сетевой сервер, где любые пользователи смогут обращаться к ней.

  • Copy Database File... (Копирование базы данных...). Если вы запускаете программу SQL Server на своем компьютере, этот вариант позволяет создать копию файла БД, которую можно взять на другой компьютер. (Если вы подключены к копии программы SQL Server на другом сервере, эта команда работать не будет.) Обычно легче использовать команду Office Server Transfer Database... (Office Сервер Перенос базы данных...), поскольку она делает все за один шаг.

  • Drop SQL Database (Удаление базы данных SQL Server). Стирает БД в программе SQL Server и удаляет ее.

  • Set Logon Password (Задание пароля входа в систему). Если применяется смешанный режим аутентификации, эта команда позволяет изменить пароль SQL Server.



Создание БД SQL Server вручную
Программа Access разрешает создать пустую новую БД SQL Server и затем добавить в нее таблицы, которые нужны. Вот как это делается.

1. Выберите Office New (Office Создать) (или просто запустите программу Access, не открывая файл БД, и щелкните кнопкой мыши пиктограмму Blank Database (Новая база данных)).

На экране появится окно Getting Started (Приступая к работе).

2. В правой части окна щелкните кнопкой мыши пиктограмму папки, расположенную рядом с именем файла БД.

На экране вы увидите диалоговое окно New Database (Файл новой базы данных).

3. В списке Save as type (Тип файла) выберите строку Microsoft Office Access Projects

(*.adp) (Проекты Microsoft Office Access (*.adp)).

4. Выберите папку, в которую хотите поместить клиентскую БД (adp-файл), введите имя в поле File name (Имя файла) (например, ZooAnimals.adp) и затем щелкните мышью кнопку ОК.

Программа Access вернет вас на страницу Getting Started (Приступая к работе) с вашей информацией на панели New Project (Новый проект) в правой части окна.

5. Щелкните мышью кнопку Create (Создать), чтобы узаконить выполненные действия.

Программа Access поинтересуется вашим желанием использовать существующую БД SQL Server.

6. Щелкните мышью кнопку No (Нет) для создания собственной новой БД.

Появится окно с вопросом о местонахождении вашего сервера и имени создаваемой БД. Этот этап вы уже видели раньше в мастере преобразования БД (см. рис. 20.6).

7. Введите расположение сервера вашей БД и имя БД, которую хотите создать, и затем щелкните мышью кнопку Finish (Готово).

Программа Access создаст пустую БД SQL Server (и adp-файл вашего проекта). После небольшой задержки на экране появится окно Access с пустой областью переходов.

  1. Когда будете готовы к созданию вашей первой таблицы, переходите к следующему разделу.



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

Создание таблицы
Создать таблицу можно в любом проекте Access (файл с расширением adp), будь то новая БД, созданная вами с нуля, или существующая БД, с которой вы работаете, в любом случае процесс одинаков.

Сначала выберите на ленте Create Tables Table Design (Создание Таблицы Конструктор таблиц). В режиме таблицы создать таблицу нельзя. Всегда следует начинать в режиме Design View (Конструктор). Можно также обычным способом редактировать имеющуюся таблицу в конструкторе. Просто щелкните ее правой кнопкой мыши и выбери­те режим Design View (Конструктор).

Когда на экране появится окно конструктора, вы заметите, что оно выглядит несколько иначе, чем, конструктор для обычных таблиц Access. К счастью, работает режим в основном так же. Вы добавляете список полей сверху вниз и настраиваете имя, тип данных и размер

каждого поля. (В программе SQL Server они называются столбцами, а не полями, но на са­мом деле это не имеет значения.)

У каждого поля есть пять столбцов информации (рис. 20.10), которые вы должны запол­нить.

  • Column Name (Имя столбца). Этот столбец идентифицирует поле (так же как в обычной таблице Access). Во избежание неприятностей не используйте пробелы и специальные символы.

  • D
    ata Type (Тип данных). Этот столбец определяет тип данных, которые может хранить поле (так же как это делается в обычной таблице Access). Но набор типов данных, предоставляемый программой SQL Server, отличается от набора типов, используемых программой Access.


Рис. 20.10. В этом примере показан режим Design View в стиле SQL Server для уже знакомой таблицы Customers из БД BoutiqueFudge

Length (Длина). Этот столбец в грубом приближении соответствует свойству Field Size

(Размер поля) в Access. Для основанных на тексте типов данных длина равна количеству допустимых символов. Для большинства типов данных размер поля служит лишь для сведения; он отображает количество байтов, занятых значением поля, и не может быть изменен.

Allow Nulls (Разрешить пустые значения). Этот столбец соответствует свойству Required (Обязательное поле) в программе Access. Если в столбце установлен флажок, вы сообщаете программе SQL Server о том, что пустые значения разрешены, т. е. пользователь БД может пропустить это поле.

Description (Описание). В этом столбце приводится описание вашего поля на обычном английском. Заполнять его или нет — ваше дело.

При проектировании таблицы также необходимо задать первичный ключ. Обычно для этого используется поле, хранящее автоматически сгенерированный код. Для обозначения поля как первичного ключа щелкните его кнопкой мыши для выделения и затем выберите на ленте Table Tools | Design Tools Primary Key (Работа с таблицами | Конструктор Сервис Ключевое поле). Вы увидите пиктограмму ключа, отображаемую у левого края строки.

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

Примечание

Возможно, вы заметили, что проекты Access медлительнее, чем обычные файлы БД. Все дело в том, что программе Access за кадром приходится взаимодействовать с программой SQL Server, запрашивая создание таблиц, выполнение операций над данными и т. д.

Типы данных SQL Server
Было бы чудесно, если бы программы SQL Server и Access применяли один и тот же набор типов данных. Но у этих приложений разное происхождение и порой их отличия заметны.

К счастью, между большинством типов данных программ есть близкое соответствие. Это означает, что у большей части типов данных Access есть соответствующий тип данных SQL Server, очень близкий к типу Access. (Когда БД преобразуется, программа Access, как пра- вило, способна подобрать хорошее соответствие.) В табл. 20.1 приведены типы данных про-граммы SQL Server, которые вы получаете для разных типов данных Access.
Примечание

У программы SQL Server есть еще много типов данных, не приведенных в этой таблице и не имеющих близких аналогов в программе Access. Но типы данных, которые включены в таблицу, — несомненно, самые распространенные.
Таблица 20.1. Сравнение типов данных SQL Server и Access

Тип данных Access

Эквивалент SQL Server

Текстовый (Text)

nvarchar (способен хранить до 4000 сим­волов, в отличие от Текстового типа данных Access, у которого верхний предел составляет 255 символов)


Тип данных Access

Эквивалент SQL Server

Поле Memo (Memo)

ntext

Числовой (Number) (со значением в свойстве Размер поля (Field Size) — Целое (Integer))

smallint

Числовой (Number) (со значением в свойстве Размер поля (Field Size) — Длинное целое (Long Integer))

int

Числовой (Number) (со значением в свойстве Раз­мер поля (Field Size) — Одинарное с плавающей точкой (Single))

real

Числовой (Number) (со значением в свойстве Размер поля (Field Size) —Двойное с плавающей точкой (Double))

float

Числовой (Number) (со значением в свойстве Размер поля (Field Size) —Действительное (Decimal))

decimal

Числовой (Number) (со значением в свойстве Размер поля (Field Size) — Байт (Byte))

tinyint

Числовой (Number) (со значением в свойстве Размер поля (Field Size) — Код репликации (ReplicationID))

uniqueidentifier

Дата/время (Date/Time)

datetime

Денежный (Currency)

money

Счетчик (AutoNumber)

int (с параметром Identity равным Yes (Да))

Логический (Yes/No)

bit

Гиперссылка (Hyperlink)

nvarchar

Вложение (Attachment)

nvarchar (сохраняется только имя файла)
Таблица 20.1 (окончание)

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

  1. Когда создаете поле ID (Код), задайте для него тип данных int.

  2. На вкладке Columns (Столбцы), расположенной под списком полей, задайте свойство Identity равным Yes(Да).

Значение параметра Identity — это имя поля типа Счетчик в программе SQL Server. Это имя программа присваивает автоматически и гарантирует его уникальность.

3. Вы также можете задать свойства Identity Seed (Начальное значение IDENTITY) и Identity Increment (Приращение IDENTITY).

□ Значение Identity Seed (Начальное значение IDENTITY) — начальное значение. Это свойство — досадное упущение программы Access, которая всегда начинает считать с 1.

  • Значение Identity Increment (Приращение IDENTITY) — величина, на которую про­грамма SQL Server увеличивает очередное значение. Например, если Identity Increment — 5, вы увидите числа 1, 6, 11, 16 и т. д. Конечно, программа SQL Server может по разным причинам, как и программа Access, пропустить очередное значение.



Подстановки
Конструктор SQL Server лишен удобного мастера подстановки, который применяет про­грамма Access. Вместо него вы должны выбрать поле, куда хотите поместить подстановку, щелкнуть кнопкой мыши вкладку Lookup (Подстановка) в нижней части окна конструктора (рис. 20.11) и затем заполнить все данные подстановки. Далее приведены ключевые пара­метры, необходимые для создания подстановки.

  • В поле параметра Display Control (Тип элемента управления) следует задать ComboBox(Поле со списком), раскрывающийся список, позволяющий выбрать нужное значение.

  • В поле параметра Row Source Type (Тип источника строк) нужно задать Tables/Views/Functions(Таблицы/представления/функции), если хотите создать подстановку, применяющую данные из связанной таблицы. (Если хотите предоставить просто список значений, можно использовать значение ValueList(Список значений).)



Р
ис. 20.11
. Подготовленная полностью подстановка для поля CreditCardID в таблице Orders

■ В поле параметра Row Source (Источник строк) указываются данные для подстановки. Если данные извлекаются из другой таблицы, применяется SQL-команда SELECT, которая извлекает два поля — поле с описательной информацией и поле со значением ID (Код). Например, можно использовать команду SELECT ID, ProductName FROM Products ORDER BY ProductName для создания отсортированного по названию товара списка подстановки, который получает ID и название каждого товара из таблицы Products.

Подсказка

Если вы не хотите писать оператор SELECT самостоятельно, щелкните кнопкой мыши в этом поле и затем щелкните мышью кнопку с многоточием, открывающую окно запроса, в котором можно выбрать таблицу и поля. Это окно запроса немного отличается от Конструктора запро­сов программы Access, который вы использовали до этого.



  • Параметр Bound Column (Связанный столбец) обозначает, какой столбец (из параметра Row Source (Источник строк)) должен быть добавлен в поле, когда выбрано значение из списка значений подстановки. Например, если первое поле в вашей команде SELECT — ID (как в предыдущем примере), нужно задать значение 1.

  • В параметре Column Count (Число столбцов) задается количество столбцов, отображаемых в списке подстановки. Обычно задается значение 2 (для отображения обоих столбцов), но ширина первого столбца с номером ID задается бесконечно малой, поэтому вы его практически не видите.

  • Параметр Column Heads (Заголовки столбцов) определяет, выводить ли заголовки в первой строке столбцов в списке подстановки. Обычно задается значение No(Нет). Однако если создается подстановка, отображающая несколько порций связанной информации, можно применить заголовки столбцов для того, чтобы легче было понять, что есть что, при просмотре списка подстановки.

  • Параметр Column Width (Ширина столбцов) задает ширину каждого столбца в списке подстановки. Каждое значение в дюймах отделяется точкой с запятой. Например, значение 0 ";1" скрывает из вида первый столбец и делает второй столбец шириной 1 дюйм.

К сожалению, создание подстановки не формирует связь между двумя таблицами. Если вы хотите создать отношение, необходимо сделать это самостоятельно, как описано в сле­дующем разделе.
Примечание

Когда БД преобразуется, программе Access хватает изобретательности, чтобы сохранить все ваши подстановки.

Отношения

Как вы узнали в главе 5, у каждой заслуживающей уважения БД есть множество отношений, В программе Access существуют два способа быстрого построения отношения: с помощью схемы данных и созданием подстановки в поле. Но в проекте Access ни одно из этих средств не доступно. Вместо этого вам придется определять отношения вручную в окне Конструк­тора для вашей таблицы.

Вот как это делается.

1. Откройте подчиненную или дочернюю таблицу в Конструкторе.

У этой таблицы есть поле, связанное с родительской таблицей. (Например, Products — дочерняя таблица для ProductCategories. Поле ProductCategorylD — связующее звено, которое присутствует в таблице Products.)

2. Выберите на ленте Table Tools | DesignShow/HideProperty Sheet (Работа с таб­лицами | Конструктор Показать или скрыть Страница свойств).

Э
то действие выводит на экран диалоговое окно Properties (Свойства) (рис. 20.12), ко­торое выглядит совсем не так, как Property Sheet (Окно свойств), которое вы применяли раньше в БД Access.
Рис. 20.12. Показано установленное отношение, связывающее таблицу OrderDetails (как дочернюю) с таблицей Products (как родительской). В каждой записи таблицы OrderDetails поле ProductID указывает на заказанный товар

  1. Щелкните кнопкой мыши вкладку Relationships (Схема данных).

  2. Щелкните кнопкой мыши кнопку New (Создать) для определения нового отношения.

  1. В списке, расположенном под заголовком Primary key table (Таблица первичного ключа), выберите родительскую таблицу.

  2. В первой строке, расположенной под именем таблицы, выберите однозначно определенное поле в родительской таблице.

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

7. В списке, находящемся под заголовком Foreign key table (Таблица внешнего ключа), выберите дочернюю таблицу.

В первой строке, расположенной ниже, выберите поле в дочерней таблице, которое ука­зывает на связанную родительскую запись.

8. Если хотите убедиться в том, что существующие данные удовлетворяют данному отношению, установите флажок Check existing data on creation (Проверять существующие данные при создании).

Если не хотите проверять имеющиеся записи на соответствие правилам данного отношения, не устанавливайте этот флажок. Если в вашей таблице еще нет данных, ваш вы­бор не играет роли.

9. Установите флажок Enforce relationships for INSERTS and UPDATES (Обеспечить отношение для INSERT и UPDATE), если хотите обеспечить ссылочную целостность при добавлении и изменении записей.

Это действие не позволит нарушать правила отношения при добавлении и редактиро­вании записей. Например, будет запрещена вставка дочерней записи, указывающей на несуществующую родительскую запись. Если вы решите не применять ссылочную це­лостность, можно использовать один из вариантов, расположенных ниже, для переклю­чения на каскадные обновления или удаления.

10. Когда закончите, закройте окно.

0 запросах
Таблицы данных — не единственные объекты БД, хранящиеся в БД SQL Server. Ваша БД SQL Server может также содержать запросы, бесконечно полезные процедуры для поиска (или изменения) нужных записей.

У объектов, которые приверженцы программы Access называют запросами, совсем иное существование в SQL Server. Там, где вы видите запросы, программа SQL Server видит три объекта разных типов.

  • View (Представление). Представление — приблизительный аналог запроса на выборку (select query) — он выбирает записи (возможно, из связанных таблиц) и отображает их на листе данных.

  • User-defined function (Пользовательская функция). Пользовательская функция аналогична запросу на выборку с параметрами. (Как вы уже знаете, параметры позволяют запрашивать порцию информации сразу перед выполнением запроса. Эту информацию затем можно применить для отбора записей и выполнения вычисления.)

  • Stored procedure (Хранимая процедура). Хранимая процедура — тяжеловес среди объектов БД SQL Server. Она может выполнять целый ряд задач, таких как выбор записей, фиксация изменений, выполнение транзакций. Вы не будете использовать большую часть этих возможностей, когда создадите хранимую процедуру в программе Access. Вместо этого вы будете применять хранимые процедуры для создания аналога запроса на изменение в SQL Server, который фиксирует в БД одиночную операцию обновления, добавления или удаления.

В следующем разделе вы попытаетесь приложить руки к созданию базового представления.

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

1. Выберите на ленте Create Other Query Wizard (Создание Другие Мастер запросов).

На экране появится диалоговое окно New Query (Новый запрос), предлагающее помощь в создании запросов SQL Server разных типов. В данном случае нужно просто создать обычный запрос, отбирающий некоторые полезные данные.

  1. Выберите режим Design View (Конструктор) и щелкните мышью кнопку ОК.
    Отображается диалоговое окно Add Table (Добавить таблицу).

  2. Выберите таблицу (или таблицы, которые хотите использовать) и затем щелкните мышью кнопку Add (Добавить), чтобы включить ее в ваш запрос. Когда закончите, нажмите кнопку Close (Закрыть).

Н
а экране появится Конструктор запросов (query designer). Теоретически он работает более или менее так же, как Конструктор запросов программы Access с теми же парамет­рами. Однако выглядит он немного иначе (рис. 20.13).
Рис. 20.13. Когда в запрос добавляется несколько таблиц, и у них есть определенные в БД отношения, Конструктор запросов включает объединенные строки. В данном примере запрос отображает список заказанных товаров с дополнительной информацией о товарах из таблицы Products

4. Выберите поля, которые хотите включить в результаты запроса.

Д
ля включения поля в ваши результаты, установите флажок, находящийся рядом с полем. Поля вставляются в перечень в нижней части окна, каждое в отдельную строку (рис. 20.14). Это похоже на окно Конструктора запросов в Access, но повернутое вокруг своей оси. (Программа Access создает отдельный столбец для каждого поля в запросе.)
Рис. 20.14. Данный пример демонстрирует четыре поля, все с установленным флажком в столбце Output, что означает их отображение в таблице результатов

К этому моменту у вас есть полнофункциональный запрос. Но, возможно, вы захотите добавить сортировку, фильтрацию и вычисляемые выражения, как описывается далее.

5. Если хотите отсортировать поле, выберите в поле Sort Type (Тип сортировки) вариант Ascending(по возрастанию) или Descending(по убыванию).

Если хотите сортировать по нескольким полям, задайте параметр Sort Type (Тип сорти­ровки) для каждого поля, которое хотите использовать. Кроме того, надо указать число в столбце Sort Order (Порядок сортировки), чтобы сообщить Конструктору запросов, ка­кую сортировку выполнять первой. Например, если сортируется группа фамилий и имен сначала по фамилии, а затем по имени, следует задать в параметре Sort Order (Порядок сортировки) число 1 для поля LastName (фамилия) и число 2 для поля FirstName (имя).

Подсказка

Если хотите использовать поле для сортировки или фильтрации, но не хотите выводить его в таблице результатов, сбросьте флажок в столбце Output (Вывод).

6. Если хотите применить фильтрацию, задайте условие отбора в столбце Criteria (Усло­вия) в строке соответствующего поля.

Д
ля числовых значений выполнить эту задачу довольно просто, поскольку выражения для фильтра точно такие же, как в программе Access. Можно использовать те же опера­ции (например, знаки +, -, /, * для вычислений и знаки =, < и > для сравнения чисел). Но если хотите работать с текстом или датами, ознакомьтесь с синтаксическими отличиями в программах SQL Server и Access в примечании "Для тех, кто понимает. Синтаксиче­ские различия" далее в этом разделе.

Условия отбора можно применять к любому количеству полей. Если хотите задать не­сколько разных условий и отобразить записи, удовлетворяющие любому из них, допол­нительные условия определите в столбце Or (Или), как показано на рис. 20.15.
Рис. 20.15. Это поле соответствует любым ценам менее 10 и более 50 долларов

7
. Если хотите применить вычисляемое поле, добавьте его в конец списка, заполнив поля в столбцах Column (Столбец) и Alias (Псевдоним) (рис. 20.16).
Рис. 20.16. Вы заметили, что в именах полей применяются странные имена, состоящие из трех частей (имя Price становится dbo.OrderDetails.Price). Это имя означает, что поле Price находится в таблице, названной OrderDetails, которая была создана владельцем БД (dbo) (Программа SQL Server применяет в выражениях такие имена, чтобы устранить возможную неоднозначность. Но не беспокойтесь — Конструктор запросов преобразует обычные имена в трехчастные автоматически.)

Синтаксис вычисляемого поля в Конструкторе запросов SQL Server несколько отлича­ется. Вместо синтаксической записи ColumnName: Expression (ИмяСтолбца: Выражение)

имя поля помещается в поле Alias (Псевдоним), а выражение в поле Column (Столбец).

Несмотря на то, что можно ввести выражение, используя просто имена полей, Конст­руктор запросов автоматически преобразует их в трехчастные имена. На рис. 20.16 пока­зано, что вы увидите, если введете простое вычисляемое выражение Price*Quantity, вычисляющее стоимость одной строки заказа.

Если хотите создать вычисляемое выражение, использующее текст или даты, прежде по­знакомьтесь с синтаксическими отличиями в программах SQL Server и Access.

Для тех, кто понимает.

Синтаксические различия
Если запрос создается с применением проекта Access, он становится на самом деле объ­ектом БД SQL Server. Именно программа SQL Server хранит запрос и выполняет его. Это важно, поскольку разновидность языка SQL (структурированный язык запросов), которая применяется в программе Access, немного отличается от букета, который вы найдете в программе SQL Server. Эти незначительные различия могут заставить спо­ткнуться большую часть искушенных создателей запросов.

К счастью, можно избежать множества проблем, просто зная о нескольких ключевых различиях.

• В текстовых значениях используют одинарные кавычки (апострофы), а не двойные. Таким образом, для поиска записи какого-либо товара по имени применяйте строку

'Maple Magic', а не"Maple Magic".

  • В датах также применяют одинарные кавычки, не знаки решетки. Поэтому ищите заказы, сделанные до '1/30/2008',а не до #1/30/2008#.

  • При слиянии двух фрагментов текста используйте символ +, а не символ &. Итак, для получения полного имени в вычисляемом выражении применяйте строку FirstName + ' ' + LastName,а не строку FirstName &+ " " & LastName.

Вы не можете применять функции Access. У программы SQL Server есть собственная библиотека функций и, несмотря на то, что многие из них такие же или похожи на зна­комые и любимые вами функции Access, различия присутствуют в изобилии. Самый безопасный подход — найти функцию, которую хотите использовать, в справочном ру­ководстве SQL Server Books Online (см. на рис. 20.2, как его загрузить из Интернета). В этом случае вы сможете проверить функцию и увидеть, действует ли она так же, как ее дубликат в программе Access.
8. Когда создание запроса закончено, щелкните правой кнопкой мыши заголовок вкладки и затем выберите строку Datasheet View (Режим таблицы) (или выберите на ленте Function & View Tools | Design Tools Run (Работа с функциями и представлениями Конструктор Сервис Выполнить)).

Программа Access предложит сохранить ваш запрос. Когда вы сделаете это, то увидите ваши результаты на привычном листе данных, так же как в случае выполнения запроса в БД Access. Затем можно напечатать или отредактировать полученные результаты.

1   ...   57   58   59   60   61   62   63   64   65


написать администратору сайта