Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций по Б/Д.doc
Скачиваний:
19
Добавлен:
25.04.2019
Размер:
389.63 Кб
Скачать

Создание многоуровневых приложений

Приложение клиент-сервер в отношении баз данных выглядит следующим образом:

Интерфейс

“Сервер” приложения

“Сервер” БД

Сервер приложения предназначен для создания и работы обрабатывающих программ.

Сервер БД – это программа, которая занимается хранением, автоматизацией поиска и формированием ответов на запросы для клиентской программы. Всё программное подключение, рассмотренное выше, разбивается на 2 части: серверную и клиентскую.

Существует 2 варианта их взаимодействия:

  1. С подключенной БД;

  2. С отключенной БД.

Для создания серверного приложения необходимо:

  1. Добавить в проект компонент Remote Data Module (File → New → Other, вкладка Multitier).

  2. Добавляются стандартные компоненты, как в однопользовательском приложении (ADOConnection, ADOTable).

  3. В этот модуль добавить компонент DataSetProvider с вкладки DataAccess, который поставляет данные клиентским приложениям (на каждый ADOTable). Сервер должен быть зарегистрирован на компьютере. Для этого надо в меню Run → Parameters в поле Parameters ввести /regserver.

  4. Создать новое, клиентское приложение.

    1. Добавить DataModule

    2. На вкладке DataSnap добавить DCOMConnection, который устанавливает связь с любым сервером приложений, зарегистрированным по технологии COM на данном компьютере. Свойство ServerName – имя сервера для связи, Server GUID – № зарегистрированного сервера на компьютере.

    3. Чтобы добраться до нужных данных, надо с вкладки DataAccess добавить компонент Client DataSet.

      1. Свойство Remote Server – выбрать Connection.

      2. Свойство Provider Name – имя провайдера, который находится на сервере – таблица.

      3. Для записи изменений в БД: ClientDataSet->ApplyUpdates(количество ошибок);

Чтобы изменить тип доступа (через Интернет, удалённый доступ), вместо DCOMConnection надо использовать SocketConnection из той же вкладки. Файл с сервером сохраняется в Borland/Builder/bin/scklsrvr.exe. В результате появится иконка Borland Socket Server, которая позволяет создать доступ к серверу. Она запускается на сервере 1 раз.

Недостаток Socket Connection – отсутствие возможности кодирования, а основное преимущество – высокая скорость. Чтобы устранить этот недостаток, надо использовать компонент Web Connection, у которого можно указать свойство URL-адрес – localhost. В момент передачи можно запустить процедуру обработки, которая зашифрует текст и передаст его.

Д Fill оступ к данным в c# (Visual Studio 2005)

Update

Data Adapter

Dataset

Connection

Data Source

Data Adapter является средством связи между Dataset и Connection. С Dataset он связан посредством команд Fill – загрузить данные, Update – записать изменения. В момент записи создаётся список ошибок (Error Collection). Data Adapter работает с Connection с помощью реляционного метода. Команды взаимодействия с БД (Command) можно создавать как вручную, так и автоматически.

Для подключения к своему проекту БД необходимо:

  1. Добавить к своему проекту компонент DataSet.

  2. Связать его с помощью мастера с созданной ранее БД. Если все шаги были проделаны верно, то в этом компоненте должна появиться схема данных.

  3. На форму из вкладки Data панели Toolbox добавить компоненты: Dataset, BindingSource, DataGrid, BindingNavigator (два последних являются визуальными компонентами).

    1. При добавлении Dataset в мастере необходимо выбрать пункт Types Dataset, недавно созданный прототип Dataset’а.

    2. В элементе BindingSource необходимо выбрать в свойстве Data Source именно тот Dataset, который расположен на одной форме с этим компонентом. В поле DataMember нужно выбрать имя таблицы, связанной с этим компонентом. Если всё сделано верно, то в списке невидимых компонентов должен появиться TableAdapter.

    3. В DataGrid нужно свойство Data Source установить BindingSource (появятся заголовки столбцов таблицы). В компоненте BindingNavigator необходимо установить свойство BindingSource на соответствующий компонент формы.

Элемент TableAdapter предназначен для заполнения dataset формы с помощью команды Fill, а также для сохранения этого набора данных в БД (команда TablAdapter.Update(dataset1)). Кроме того с помощью этого компонента можно создавать команды для добавления записей (TablAdapter.Insert(…)) и их удаления (TablAdapter.Delete(…)).

Все операции над записями в программе происходят через BindingSource:

  1. Сортировка: BindingSource.Sort =”Поле таблицы” asc/desc – по возрастанию/убыванию.

  2. Фильтрация: BindingSource.Filter = “Условие фильтра”.

  3. Получение текущей записи: DataRowView row; row = ((DatarowView)BindingSource.Current).Row; row.Item(“Название поля”);

  4. Перемещение по записям: BindingSource.MoveNext, …

  5. Сохранить данные в БД: BindingSource.EndEdit(); tableAdapter.Update(this.DataSet);

Для создания поля со списком в DataGrid необходимо зайти в режим мастера редактирования колонок (Edit Columns). Затем добавить новое, несвязанное поле, тип – поле со списком. Указать свойства на вкладке Data (у компонента ComboBox): DataProperty Name – поле, содержащее значение в основной таблице, куда будет производиться запись, Data Source – это BindingSource, из которого данные будут выводится на экран, Display Member – поле из Data Source, которое будет отображаться на экране,Value Member – ключевое поле из DataSet, которое записывается в Data Property Name.