Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Vedenie_v_spetsialnost.docx
Скачиваний:
19
Добавлен:
14.04.2015
Размер:
141.36 Кб
Скачать

Общие компоненты

Компонент отображения данных, например, DBGrid <- DataSource <- Table <- База Данных

<- Query < - >

Основные компоненты, используемые при программировании приложений БД:

TDatabase – представляет БД как единое целое (совокупность таблиц);

TTable – предоставляет доступ к таблице из БД (проверяет существование, получает структуру таблицы (поля и их атрибуты), открывает таблицу);

TQuery – позволяет выполнять произвольные запросы (выполняет запрос из свойства TQuery.SQL).

DataSource – связывает компонент Table, соединённый с реальной таблицей БД, и визуальные компоненты для отображения интерфейса (DBGrid, DBNavigator)

Визуальные компоненты для отображения и редактирования данных (DBGrid, DBText, DBEdit, DBMemo, DBImage, ...)

Основные компоненты, используемые в технологии BDE:

Table – обеспечивает взаимодействие с таблицей БД;

Свойство DataBaseName – указывает путь к БД

Свойство TableName – указывает имя таблицы в БД

Свойство Active – открывает набор данных (true)

DataSource – связывает компонент Table, соединённый с реальной таблицей БД, и визуальные компоненты для отображения интерфейса (DBGrid, DBNavigator)

Свойство DataSet – указывает на Table

DBGrid – отображает содержимое таблицы БД в виде сетки, в которой столбцы соответствуют полям таблицы, а строки – записям.

DBNavigator – позволяет перемещаться по таблице, редактировать, вставлять и удалять записи. DBGrid и DBNavigator связываются с источником данных – компонентом DataSource – через свойство DataSource.

Для создания интерфейса может быть использован мастер Database Form Wizard.

  1. Технологии BDE

BDE (Borland Database Engine) - Процессор баз данных фирмы Borland. Основная технология для доступа к базам данных компании Borland (и ранних версий С++ Builder). Основан на стандарте IDAPI (Integrated Database API).

В BDE для каждого формата определяется свой драйвер, отвечающий за работу с этим форматом.

Приложение

п

п

IDAPI32.DLL

Local SQL

QBE

iddbas32.dll – драйвер dBase;

idpdx32.dll – драйвер Paradox;

sqlmss32.dll – драйвер SQL Link для Microsoft SQL Server;

... (и т.д.)

При централизованной архитектуре (локальная БД) драйвер формата сам работает с файлами БД.

При рассмотренной (клиент-серверной) архитектуре вызовы транслируются с помощью SQL Link в вызовы функции API клиентской части конкретного SQL-сервера.

При работе с ODBC драйвер (IDFPTOR) аналогично SQL Link транслирует вызовы BDE в вызовы ODBC.

При переключении программы на другую СУБД, в проекте достаточно изменить единственное свойство – тип драйвера доступа.

Псевдоним (alias) – содержит всю информацию, необходимую для обеспечения доступа к базе данных. Задаётся один раз – при создании псевдонима.

Для создания, просмотра и редактирования псевдонимов в Borland C++ Builder могут использоваться:

  • Database Desktop;

  • BDE Administrator;

  • Database Explorer.

Базовое понятие BDE – набор данных:

Набор данных – набор записей фиксированной структуры, составленных из одинакового набора полей.

Физически – копия реальной таблицы БД или результат работы SQL-запроса.

Логически набор данных реализуется абстрактным классом TDataSet.

Для работы с БД используются его потомки: TTable, TQuery, TStoredProc.

Иерархия:

TDataSet \

TBDEDataSet | абстрактные классы

TDBDataSet /

TTable TQuery TStoredProc - не абстрактные

Основные свойства и методы, наследуемые от TDataSet:

bool Active – открывает или закрывает набор данных

Аналогично этому свойству действуют методы:

void Open (void); - открывает набор данных

void Close (void); - закрывает набор данных

Способы доступа к данным подразделяются на:

  • Навигационные – каждая запись таблицы обрабатывается отдельно (Table или Query)

  • Реляционный (SQL-ориентированный) – сразу обрабатывается группа записей (Query)

Навигационный способ доступа основан на концепции указателя набора данных.

Указатель набора данных – системный элемент, который отслеживает местонахождение текущей записи таблицы базы данных.

Основные методы и свойства, наследуемые от TDataSet:

void Next (void); - переход к следующей записи

void Prior (void); - переход к предыдущей записи

void First (void); - переход к первой записи

void Last (void); - переход к последней записи

int MoveBy (int Distance); - переход на Distance записей относительно текущей записи; возвращает количество записей на сколько был совершен переход.

Пример.

Table1 → MoveBy (42); - переход на 42 записи вперёд

Table1 → MoveBy (-5); - переход на 5 записей назад

bool Eof; - (End-of-file) достигнута последняя запись

bool Bof; - (Beginning-of-file) достигнуто начало таблицы

int RecNo; - задаёт номер текущей записи

int RecordCount; - количество записей в наборе данных

Для ускорения работы с набором данных.

void DisableControls (void); - отключает отображение данных в связанных с набором данных визуальных компонентах

void EnableControls (void); - включает отображение

bool IsEmpty (void); - указывает на то, что набор данных не содержит данных

Работа с полями текущей записи:

TFields Fields; - совокупность полей текущего набора записей;

TFieldDefs FieldDefs; - параметры полей текущего набора записей;

int FieldCount; - общее количество полей записи текущего набора данных;

System∷Variant FieldValues [AnsiString FieldName] – предоставляет доступ к полям текущего набора данных по их именам;

Пример.

Animals → FieldValues [“Name”] = Edit1 → Text;

Работа с полями текущей записи:

TField FieldByName (const AnsiString FieldName); - доступ к полю по его имени;

Пример.

Animals → Fields → Fields[0] → AsString = “jaguar”;

Animals → FindField (“Name”) → AsString = “jaguar”;

void GetFieldNames (Classes ∷ TStrings* List); - возвращает список имён полей набора данных;

TDataSetState State; - возвращает текущее состояние набора данных;

enum TDataSetState {

dsInactive, - набор данных закрыт;

dsBrowse, - данные можно просматривать, но не редактировать;

dsEdit, dsInsert, - активная запись редактируется / вставляется;

dsSetKey, dsCalcField, - поиск или вычисление записи;

dsFilter, dsNewValue, dsOldValue, dsCurValue, dsBlockread, dsInternalCalc, - внутренние состояния набора данных;

dsOpening – набор данных открывается;

};

Редактирование:

bool CanModify; - возможно ли редактирование;

void Edit (void); - переводит набор данных в режим редактирования;

void Post (void); - сохраняет сделанные изменения (вызывается автоматически при переходе к следующей записи)

void Cancel (void); - отменяет все изменения, сделанные после последнего вызова Post();

void Append (void); - добавляет новую пустую запись в конец набора данных;

void Insert (void); - добавляет новую пустую запись на место текущей;

void Delete (void); - удаляет текущую запись;

void ClearFields (void); - очищает содержимое всех полей текущей записи;

bool Modified; - редактировалась ли текущая запись;

void Refresh (void); - обновляет содержимое набора данных (не для всех потомков TDataSet, с SQL-запросом работать не будет);

Навигационный подход чаще всего реализуется с помощью компонента TTable, который предоставляет доступ к определённой таблице базы данных.

Для доступа к таблице используются свойства:

AnsiString DatabaseName; - задаёт имя базы данных, доступ к таблицам которой требуется;

AnsiString TableName; - имя таблицы в БД, которая будет связана с этим компонентом

Реляционный подход чаще всего реализуется при помощи компонента TQuery. TQuery представляет собой набор данных, полученный при выполнении одного SQL-запроса DDL или DML.

Для компонента TQuery установка свойства Active в true приводит к выполнению SQL-запроса. К тому же приводит вызов методов Open() и ExecSQL().

Текст запроса задаётся свойством TStrings SQL;

Метод ExecSQL() используется в том случае, если не требуется возвращать набор данных (удаление, изменение).

Пример.

Query1 → Active = false; // Query1→Close();

Query1 → DatabaseName = “c:\\ProgramFiles\\CommonFiles\\BorlandShared\\Data”;

Query1 → SQL → Clear();

Query1 → SQL → Add ( “SELECT * FROM animals.db” );

Query1 → Active = true; // Query1 → Open();

  1. Технология ODBC

ODBC(Open Database Connectivity) – технология доступа к данным, разработанная фирмой Microsoft.

ODBC 1.0 – август 1993.

По функциональности ODBC – подмножества BDE. Но открытость стандарта и наличие ODBC SDK, позволяющего любой фирме написать свой драйвер потеснили BDE.

  1. Технология dbExpress

dbExpress – набор легковесных драйверов, обеспечивающих доступ к серверам SQL на основе единого интерфейса.

  • меньший размер кодов, чем при использовании BDE;

  • ориентирована на SQL-запросы;

  • допускает легкую переносимость между Windows и Linux;

  • не требует установки дополнительного ПО для работы приложения БД – только копирование DLL с драйвером.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]