- •Лекция Работа Access с данными на sql-сервере
- •Microsoft sql Server на локальном компьютере
- •Работа Access с sql Server через odbc
- •Определение внешних источников данных в odbc
- •Типы источников данных
- •Создание источника данных
- •Запросы на языке sql к базам данных sql Server
- •Создание запросов sql к серверу
- •Определение источника данных для запроса sql
- •Примеры запросов sql к серверу
- •Связь с таблицами баз данных sql Server
- •Создание связи с таблицами сервера
- •Примеры запросов со связанными таблицами
- •Импорт объектов из базы данных sql-сервера в Access
- •Экспорт объектов Access в базу данных sql-сервера
Примеры запросов sql к серверу
Рассмотрим несколько примеров.
Запрос на выборку данных из таблиц НАКЛАДНАЯ и ОТГРУЗКА, размещенных на SQL-сервере в базе данных Поставка товаров. Запрос возвращает таблицу с полями, указанными в первой строке запроса, и строками с данными об отгрузках, которые были выполнены в период, заданный условием отбора.
SELECT НАКЛАДНАЯ.*, ОТГРУЗКА.КОД_ТОВ, ОТГРУЗКА. К0Л_ОТГР
FROM НАКЛАДНАЯ INNER JOIN ОТГРУЗКА ON (НАКЛАДНАЯ.КОД_СК = ОТГРУЗКА.КОД_СК] AND (НАКЛАДНАЯ.НОМ_НАКЛ = ОТГРУЗКА.НОМ_НАКЛ)
WHERE ДАТА_ОТГР>='01.06.2007' ;
Запрос на обновление данных в таблице ПОКУПАТЕЛЬ. В записи с полем НАИМ_ПОК='Перспектива' наименование покупателя меняется на значение 'Компьютерный мир'.
UPDATE ПОКУПАТЕЛЬ
SET НАИМ_ПОК ='Компьютерный мир'
WHERE НАИМ_ПОК ='Перспектива';
Запрос на обновление данных в таблице ОТГРУЗКА. В записи с составным ключом НОМ_НАК='Н00Г, КОД_СК='С0Г и КОД_ТОВ= Т005' полю КОЛ_ОТГР присваивается значение 500.
UPDATE ОТГРУЗКА
SЕT КОЛ_ОТГР =500
WHERE НОМ_НАКЛ='Н001' AND КОД_СК='С01' AND КОД_ТОВ= 'Т005 ' ;
Запрос на добавление записи в таблицу ТОВАР. Добавляется запись со значениями полей, указанными в третьей строке запроса.
INSERT INTO ТОВАР (КОД_ТОВ,НАИМ_ТОВ,ЦЕНА,ЕИ,СТАВКА__НДС] VALUES ('T017','Микрокомпьютер',200,'штука' ,0.1);
Запрос на создание новой таблицы ТаЫе2 в базе данных сервера, в котором определяются поля Name_Pl и Name__P2.
CREATE TABLE Table2 ([Name_Pl] [char0] (3), [Name__Р2] [char] (2));
Если запрос не принадлежит к типу запросов, в которых возвращаются записи, для свойства Возврат записей (ReturnsRecords) нужно выбрать значение Нет. В противном случае после выполнения запроса выводится сообщение (рис. 8.15).
Рис. 8.15. Сообщение при выполнении запроса на добавление записи
Для запуска запроса со значением Нет в свойстве Возврат записей (Returns-Records) используется только кнопка Выполнить (Run). Для запроса к серверу, возвращающего записи, можно также нажать кнопку Режим (View).
Связь с таблицами баз данных sql Server
Другим способом использования в приложениях Access данных из баз данных SQL Server через ODBC является связь с таблицами. Связанные таблицы, оставаясь на сервере в формате источника, отображаются в окне базы данных Access. Эти таблицы могут быть использованы наряду с локальными таблицами базы данных Access при создании запросов, форм, отчетов привычными диалоговыми средствами Access. Связанные таблицы можно просмотреть и в режиме конструктора, однако никакие изменения структуры таблиц невозможны.
Создание связи с таблицами сервера
Для создания связи с внешними таблицами предназначена команда База данных ODBC (ODBC Database), размещенная на вкладке ленты Внешние данные (External Data) в группе Импорт (Import) в списке кнопки Дополнительно (More).
Рис. 8.16. Окно выбора способа использования данных источника
При выполнении этой команды открывается окно Внешние данные - База данных ODBC (Get External Data- ODBC Database) (рис. 8.16), в котором для создания связи с таблицами из внешних баз данных нужно выбрать переключатель Создать снизанную таблицу для связи с источником данных (Link to the data source by creating a linked table).
Затем в окне (см. рис. 8.12) выбирается источник данных ODBC, обеспечивающий подключение к нужному серверу и базе данных. Получив доступ к базе данных сервера, в окне Связь с таблицами (рис. 8.17) выбираются таблицы, которые будут использоваться в работе как связанные.
Рис.8.17
Рис. 8.18. Окно процесса установки связи
Процесс установления связи с таблицами сервера отображается в окне, представленном на рис. 8.18.
Рис. 8.19. Выбор ключа для связываемой таблицы
Если таблица базы данных сервера не имеет ключа, выводится окно выбора однозначного индекса (рис. 8.19). Выберите поля таблицы для создания ключа связанной таблицы. Этот ключ используется при работе со связанной таблицей на компьютере клиента и не создается в таблице, сохраняемой на сервере.
Внимание!
Если таблица, с которой устанавливается связь, не имеет ключа и при связывании не выполнен выбор однозначного индекса, через связанную таблицу невозможно обновление данных в таблице, добавление записей и не обеспечивается проверка целостности данных.
После выбора таблиц и выполнения процедуры связывания, выбранные таблицы сервера будут отображены в списке таблиц области переходов, рис. 8.20. Для обозначения связанных таблиц, хранящихся на сервере, используется специальный значок. Если удалить связанную таблицу, удаляется связь с таблицей, но не сама внешняя таблица на SQL-сервере.
При создании запросов, форм, отчетов связанные таблицы могут использоваться наряду с таблицами локальной базы данных. В окне добавления таблиц в запрос связанные таблицы отображаются наряду с локальными таблицами.
Связанные таблицы могут, также как локальные, отображаться в режиме таблицы и в режиме конструктора. Однако нельзя модифицировать структуру связанной таблицы.
Рис. 8.20. Список таблиц локальной базы данных и связанных таблиц SQL-сервера
Включение связанных таблиц в схему БД и установление между ними связи выполняется так же, как для локальных таблиц (рис. 8.21).
Рис. 8.21. Установление связи между связанными таблицами сервера
Как видно на рисунке, для связанных таблиц не могут быть установлены параметры обеспечения целостности, эти параметры устанавливаются на сервере.
Для разрыва связи с таблицей на сервере достаточно удалить ее, как удаляют любую другую таблицу локальной базы данных: выделите таблицу в области переходов и воспользуйтесь командой ее контекстного меню Удалить (Delete). При этом таблица на сервере удалена не будет. Сообщение о разрыве связи приведено на рис. 8.22.
Рис. 8.22. Сообщение о разрыве связи с таблицей сервера
Вся информация о связях с таблицами сервера сохраняется в базе данных и после ее закрытия. При открытии базы данных в следующий раз в ней отображаются связанные таблицы. Повторно проводить процедуру включения связанных таблиц не требуется. Очевидно, что работу со связанными таблицами можно выполнять только, если сервер доступен. Сведения об источниках данных для связанной таблицы сохраняются в общих свойствах таблицы в строке Описание (Description). Свойства можно просмотреть в режиме конструктора таблицы. Например, свойство связанной таблицы dbo.ОТГРУЗКА может иметь следующее значение:
0DBC; DSN=Поставка;Descriptiоm=База данных SQL Server; APP=2007 Microsoft Office system; DATABASE=ПоставкаТоваров; Trusted__Connection=Yes;
TABLE=dbo.ОТГРУЗКА
Все связанные таблицы и параметры их источников данных можно увидеть в окне Диспетчер связанных таблиц (Linked Tables Manager), которое открывается по одноименной команде, представленной в контекстном меню связанной таблицы. В этом окне можно обновить связь, если изменилось местоположение или другие параметры источника данных.
На рис. 8.23 представлено окно диспетчера связанных таблиц, в котором отображены связанные таблицы текущей базы данных. Эти таблицы являются связанными таблицами SQL-сервера и для каждой ИЗ них указаны параметры связи с источником данных через ODBC.
Если изменилось местоположение или другие параметры источника данных, связь можно обновить. Для обновления связи нужно установить флажок в строке таблицы, связь с которой должна быть обновлена. При этом строка выделяется и делается доступной кнопка ОК, по которой инициируется процесс обновления.
Рис. 8.23. Список связанных таблиц текущей базы данных
