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

Доступ к данным в Visual Basic 6.0

Для подключения к своему проекту БД необходимо, чтобы на панели инструментов Toolbox были доступны компоненты: ADO Data Control, DataGrid, DataCombo и некоторые другие. В среде VB 6.0 основным компонентом для доступа к данным является ADODC: в него включено и Connection, и DataSet, и Datasource. Его основные свойства:

  1. ConnectionString – строка для доступа к БД. При вызове мастера создания строки подключения пользователю предоставляется возможность выбора

    1. Use Link FileUse ODBC Source – при этом выбирается один из псевдонимов БД, зарегистрированных на данном компьютере.

    2. Use Connection String – для прямого подсоединения к БД. Для этого необходимо нажать на Build и выполнить все действия пошагово (для подключения БД MS Access выбрать источник драйвера MS Jet 4.0).

Данное свойство рекомендуется заполнять исключительно с помощью мастера, а не вручную.

  1. RecourdSource – свойство, в которое записывается таблица, подключаемая к ADODC. Каждый источник данных ADODC подключается только к одной таблице. При этом выбирается тип источников данных для ADODC:

    1. SQL запрос, возвращающий данные (необходимо написать текст запроса).

    2. Таблица из БД.

    3. Хранимая процедура (Stored Procedure)

Для отображения записей, содержащихся в ADODC, используются некоторые стандартные компоненты:

  1. Label. В нём отражается значение выбранного поля для активной записи. Свойства, используемые для подключения данных:

    1. Data Source – имя компонента, к которому подключена БД (ADODC).

    2. Data Field – имя поля из таблицы, которое будет отображаться в надписи.

  2. Text. Позволяет выводить содержимое поля и редактировать это содержимое.

    1. Data Source – имя компонента, к которому подключена БД (ADODC).

    2. Data Field – имя поля из таблицы, которое будет отображаться в текстовом поле.

Данные поля хранятся в свойстве Text.

Работа с записями

Перемещение по записям может осуществляться следующим образом:

  1. С помощью соответствующих кнопок на ADODC.

  2. С помощью программной обработки нажатия пользовательских кнопок: Me.Adodc1.RecordSet.MoveNext – перемещение на следующую запись. Me.Adodc1.RecordSet.MovePreview – перемещение на предыдущую запись. Me.Adodc1.RecordSet.MoveLast – перемещение на последнюю запись. Me.Adodc1.RecordSet.MoveFirst – перемещение на первую запись. Me.Adodc1.RecordSet.EOF –равен true,если текущая запись находится после последней. Me.Adodc1.RecordSet.BOF – равен true,если текущая запись находится перед первой.

Добавление записи осуществляется командой Me.Adodc1.RecordSet.AddNew. При этом запись добавляется только в Dataset приложения, а не в саму БД. Для того чтобы обратиться к полю активной записи, необходимо ввести следующую конструкцию: Me.Adodc1.RecordSet.Fields(“НазваниеПоля”) = Значение;

Чтобы занести изменения в БД, необходимо выполнить следующие команды:

Me.Adodc1.RecordSet.Update – записывает во временную копию БД.

Me.Adodc1.RecordSet.UpdateBach – сохраняет значения в БД.

Me.Adodc1.RecordSet.Refresh – перечитывает БД.

Me.Adodc1.RecordSet.ReQuery – перезапрашивает данные, заново запускает запрос, если форма работает с запросом.

Для отображения записей из таблицы БД существует стандартный компонент DataGrid. Подключить его к ADODC можно с помощью свойства DataSource. Для настройки DataGrid удобнее использовать диалоговое окно Properties, которое вызывается из контекстного меню этого элемента. Редактирование колонок происходит на вкладке Columns, где можно установить заголовки столбцов и привязать к ним данные из таблицы. Для добавления или удаления колонок необходимо в контекстном меню выбрать Edit, а затем открыть контекстное меню ещё раз и нажать на кнопку Append( или Insert) для добавления новых столбцов, Delete – для их удаления.

Сортировка записей осуществляется в компоненте ADODC. Для организации стандартного интерфейса сортировки таблицы (при нажатии на заголовок столбца) необходимо использовать событие DataGrid HeadClick. В обработчике этого события необходимо прописать:

Me.Adodc1.RecordSet.Sort = “Название поля”

Часто в визуальных компонентах работы с БД используется поле со списком. В VB 6.0 этот компонент называется DataCombo при работе с ADO. Основные свойства этого компонента:

  1. RowSource – источник данных для вывода на экран (ADODC).

  2. ListField – имя поля из RowSource, которое будет отображаться на экране.

  3. DataSource – источник данных, в который будет производиться запись (ADODC).

  4. DataField – поле из DataSource, в которое будет записываться выбранное значение.

  5. BoundColumn – поле из RowSource, которое будет записываться в DataSource.

Для фильтрации данных используется соответствующее свойство ADODC:

Me.Adodc1.RecordSet.Filter = “условие фильтра”

Отчёты в VB 6.0

Для использования отчётов необходимо произвести следующие действия:

  1. Подключить компонент DataEnvironment: Project → Add DataEnvironment. Если этого пункта меню нет в списке, то нужно выбрать пункт Components, вкладка Designers и отметить компоненты DataEnvironment и DataReport. Если эти компоненты отсутствуют и здесь, то необходимо добавить их в пункте меню References. Затем необходимо добавить Connection (или использовать существующий) и подключить к нему БД с помощью диалогового окна Properties из контекстного меню. Затем в этот Connection добавляется элемент Command, к которому подключается таблица или запрос, на котором будет основан отчёт.

  2. Подключить компонент DataReport, который представляет собой непосредственно отчёт. В свойствах этого отчёта указывается DataSource (в нашем случае это DataEnvironment) и DataMember (это Command, созданный ранее). Основные поля отчёта:

    1. Заголовок страницы,

    2. Заголовок страницы,

    3. Заголовок полей,

    4. Содержание отчёта – область данных,

    5. Примечания,

    6. Имеется возможность добавить также заголовок группы, область данных группы, примечание группы при создании группировки.

Для добавления данных в поле данных используется компонент Text, в свойствах (DataField) которого указывается поле, которое будет в нём отображаться. Кроме того отчёты в VB 6 допускают вычисляемые поля, расположенные в примечаниях (компонент Function). В нём указывается поле (DataField), по которому производится вычисление, и вид агрегирования (свойство FunctionType). Для создания группировки необходимо в DataEnvironment → Command добавить Children Command, в котором содержаться данные группировки.

Доступ к данным в C++ Builder

Для организации доступа к данным в C++ Builder используется компонент DataModule – невидимая форма доступа к данным, на которой располагаются основные компоненты работы с БД. Её добавление в проект осуществляется следующим образом: File → New → DataModule. В C++ Builder имеется несколько вкладок с компонентами, предназначенными для работы с данными. Одной из них является Data Access, основные компоненты которой приведены ниже:

  1. DataSource обеспечивает синхронность работы таблицы с визуальными компонентами. Этот компонент располагается на форме вместе с Grid.

  2. ClientDataSet используется для работы с удалёнными БД. Его основные свойства: имя компьютера/программы-сервера и имя провайдера, поставщика данных. В данном случае обращение к программе осуществляется через IP-адрес компьютера и имя провайдера.

  3. DataSetProvider – компонент на сервере, который обеспечивает доступ от реальных клиентских программ к БД.

  4. XML Transformer – преобразует набор данных в XML текст.

На вкладке ADO расположены основные компоненты, используемые для доступа к БД.

  1. ADO Connection – предназначен для подключения к БД. Его необходимо располагать в Data Module. Основные свойства:

    1. ConnectionString – строк доступа к БД. Подключение осуществляется аналогично вышеописанным примерам. Для того чтобы осуществить подключение к БД, расположенной в одном каталоге с проектом, необходимо удалить полный путь к файлу и оставить только его название.

    2. Connected – позволяет подключать приложение к БД и отключать от неё.

    3. LoginPrompt – запрашивать ли при подключении к БД логин и пароль пользователя.

  2. ADO Command – используется для выполнения SQL команд для ADO. Выполняет запрос (управляющий), не возвращающий набора данных. Основные свойства:

    1. Command Text – текст запроса.

    2. Connection – созданный ранее ADO Connection.

    3. Connection String – строка для подключения вручную.

    4. Parameters – параметры для запроса.

  3. ADO DataSet – базовый компонент, который позволяет хранить любые данные.

  4. ADO Table – таблица, Dataset которой хранит данные. Основные данные: Connection, TableName – имя таблицы.

При организации простого однопользовательского приложения на визуальной форме из всех вышеперечисленных компонентов размещается DataSource. Все остальные размещаются на DataModule: ADO Connection, ADO Table.

Сортировки, как таковой, в C++ Builder нет. В нём создаются индексированные поля по требуемым критериям:

DataModule->AdoTable->IndexFieldNames = ”имяПоля”.

Если в таблице уже есть индексы, то используется имя индекса:

DataModule->AdoTable->IndexName = ”имяИндекса”.

Для создания фильтра используется соответствующее свойство ADO Table:

DataModule->AdoTable->Filter =”условие фильтра”.

DataModule->AdoTable->Filtered = true.

Условие фильтра аналогично условию в Access.

Визуальные компоненты для работы с БД содержаться на вкладке DataControl.

Поле со списком может быть добавлено в компонент ADO Table. Для этого необходимо выбрать Fields Editor из контекстного меню. В нём необходимо добавить все существующие поля. Затем добавить новое поле, в свойствах которого выбрать тип Lookup.

KeyField – поле, содержащее значение в основной таблице, куда будет производиться запись.

DataSet – это ADOTable, из которой данные будут выводится на экран.

Lookup Keys – ключевое поле из DataSet, которое записывается в KeyField.

Result Field – поле из DataSet, которое будет отображаться на экране.

Чтобы создать поле со списком, необходимо сделать таблицу неактивной (свойство Active = false). Если БД была подключена корректно, то на форме (в DBGrid) должны отразиться записи из таблицы.

Отчёты в C++ Builder

Существует несколько компонент для создания отчётов в C++ Builder. Наиболее простым в использовании является компонент QReport (Quick Report), который расположен на одноимённой вкладке (QReport – расположены все компоненты для работы с данным видом отчётов). Чтобы создать отчёт необходимо:

  1. Создать форму.

  2. Расположить на ней источник данных, который потребуется в отчёте.

  3. Расположить на ней элемент QReport и подключить его к источнику данных. Для этого необходимо прописать соответствующие include директивы в заголовочном файле формы с отчётом.

Чтобы программно показать отчёт, нужно выполнить следующую команду:

Form->QuickReport1->Preview();

Для формирования отчёта необходимо на нём расположить полосы QRBand. Её тип по умолчанию (свойство BandType) – Title – заголовочная область отчёта. Для того чтобы сформировать другие области отчёта, необходимо расположить соответствующее количество полос и изменить их тип в соответствии с типом данных.

  • Title – заголовок отчёта.

  • Detail – данные отчёта.

  • GroupFooter – примечание группы.

  • Summary – примечания отчёта.

  • SubDetail – внутренняя группировка.

Для формирования отчёта на полосу Detail располагается компонент DBText, у которого устанавливается свойство DataSet (таблица или запрос, на основании которого строится отчёт), DataField (поле, которое будет отображаться в этом элементе). Для создания вычисляемых полей используется компонент QRExpress, у которого устанавливается свойство Expression. Чтобы данные в отчёте изменялись при изменении информации в БД, нужно каждый раз при загрузке отчёта перезагружать данные в его источнике (ADOTable или ADOQuery):

AdoTable->Open();

AdoTable->Close();

Для группировки данных в отчёте используется элемент QRGroup.