Технологии доступа к данным Поля и типы данных

Теоретическая механика
Цифровые сети
Группообразование
Методы передачи
Коммутационная схема
Интеграция
Эксплуатация систем передачи
Помехи
Функцией времени
Структуры сигнала
Техническиепреимущества
Стоимость преобразования
Радиовещание
Анализ трафика
Цифровое оборудование
Аналоговое оборудование
Преобразование речевых сигналов в цифровую форму
Область преобразования
Дискретизация сигнала
Дискретные моменты
Сигнал-шум
Кодер
Квантование
Компандер
Шаги квантования
ИКМ
Дискрет входного сигнала
ДИКМ
Корреляция между дискретами
Алгоритмы кодирования
Кодер с разделением на полосы
Цифровые передача
Передача импульсов
Асинхронная и синхронная передача
Ограничение кода источника
Преобразование к коду передачи
Биполярное преобразование кода
Парно-селективный троичный код
Биполярный код
Многоуровневые сигналы
Вероятность ошибки
Синхронизация
Цифровая коммуникация
Сети связи
Точки коммутации
коммутационные схемы
Многозвенные коммутационные схемы
Аналоговые Коммутационные схемы
Устройства сопряжения
Примеры цифровые ЗУ
Вход-выход
Вероятность блокировки
Цифровая радиосвязь
Модуляция цифровыми сигналами
Цифровая передача
Частотная манипуляция
Мобильный Internet
модуляция сигналов
Квадратурная амплитудная модуляция
Манипуляция со сдвигом
Расчет фильтрации
Проектирование радиосистем
Администрирование баз данных
Адаптивная коррекция
Синхронизация сети, контроль и управление
Разнос по частоте
Домашняя мастерская
Монтаж и демонтаж на печатных платах
Теоретические основы передачи данных
Предотвращение загрязнения окружающей среды выбрасами АЭС
Конструирование радиоэлектронной аппаратуры
Материалы и инструменты
Техническое обслуживание персонального компьютера
Математические системы Mathematica
Производительность вашего компьютера
Стилевые направления
История эротического искусства
Технологии доступа к данным
О проектировани интерьера

Поля и типы данных

    • Каждая таблица БД и, следовательно, каждый набор данных приложения имеет собственную структуру, которая определяется совокупностью полей. Каждое поле набора данных представляет собой объект, содержащий описание типа данных, которому должно соответствовать значение, находящееся в записи на определенном месте.
    • Объекты полей инкапсулируют свойства и методы полей различных типов данных. Они функционируют совместно с набором данных и очень тесно связаны с ним.
    • Статические и динамические поля Динамические поля используются программой в случае, если разработчик не создал для них объекты явным образом на этапе разработки. Каждый не заданный явно объект поля автоматически создается при открытии набора данных в соответствии со структурой связанной таблицы БД.
    • Класс TField Как уже говорилось выше, в большой иерархии классов для полей различных типов данных класс TField является базовым, он инкапсулирует свойства и методы абстрактного поля данных.
    • Виды полей Теперь рассмотрим классификацию полей набора данных в зависимости от их функционального назначения. Самыми распространенными полями являются поля данных, базирующиеся на реальных полях таблицы БД.
    • Поля синхронного просмотра При создании для исходного набора данных нового поля синхронного просмотра необходимо использовать перечисленные ниже свойства.
    • Вычисляемые поля существенно облегчают разработку приложений баз данных, т. к. позволяют получать новые данные на основе существующих, не изменяя при этом структуру таблиц БД.
    • Внутренние вычисляемые поля Помимо простых вычисляемых полей существуют внутренние вычисляемые поля (FieidKind = fkinternaicaic).
    • Агрегатные поля предназначены для выполнения вычислительных операций со значениями полей набора данных с использованием агрегатных функций SQL.
    • Объектные поля Наряду с обычными типами данных (строковым, целочисленным и т. д.), при работе с полями набора данных можно использовать более сложные типы, представляющие собой совокупность более простых типов.
    • Типы данных В среде разработки Delphi можно создавать приложения для работы с самыми разными базами данных. Такая универсальность подразумевает необходимость применения средств, которые бы обеспечили возможность работы со многими типами данных, используемыми в этих базах данных.
    • Ограничения Контроль вводимых в поля набора данных в Delphi возложен на объекты полей, а не на компоненты отображения данных. Именно в рамках этого вопроса мы рассмотрим работу методов-обработчиков событий базового класса TField.

Механизмы управления данными

    • Наряду с описываемыми в предыдущих главах свойствами и методами, стандартный набор данных Delphi инкапсулирует ряд дополнительных механизмов, облегчающих управление записями и полями.
    • Связанные таблицы В рамках одного проекта таблицы БД можно связывать отношениями "один- ко- многим" и "многие- ко- многим", при этом отношения обязательно устанавливаются между индексированными полями двух таблиц.
    • Отношение "один-ко-многим" Для установления отношения "один- ко- многим" в наборе данных предназначены два свойства — Mastersource и MasterFieids, которые задаются для подчиненной таблицы.
    • Отношение "многие-ко-многим" отличается тем, что подчиненная таблица еще раз связывается в качестве главной с другой подчиненной таблицей аналогичной последовательностью действий, как и в отношении "один- ко- многим".
    • Поиск данных В наборе данных реализованы два способа поиска записей по заданным значениям полей.
    • Поиск по индексам Для организации индексного поиска к набору данных должен быть подключен индекс (свойства IndexName ИЛИ IndexFieldNames).
    • Поиск в диапазоне Индексный поиск можно организовать группой методов, подобно созданию диапазонов. Метод setKey переводит набор данных в состояние dsSetKey, затем должно следовать присваивание ключевым полям значений для поиска.
    • Поиск по произвольным полям Для поиска по произвольной выборке полей можно использовать методы Locate и Lookup.
    • Фильтры Наиболее эффективным способом отбора записей в набор данных (особенно из больших таблиц) является создание и выполнение соответствующего запроса SQL.
    • Быстрый переход к помеченным записям Закладки, как инструмент работы с записями набора данных, позволяют осуществлять быстрое перемещение на нужную запись.
    • Диапазоны В наборе данных, помимо фильтров, имеется еще одно средство отбора записей. Группа методов позволяет на основе использования индексов отбирать в набор данных только те записи, значения индексированных полей которых (для текущего индекса) соответствуют диапазону заданных величин.

Компоненты отображения данных

    • Навигация по набору данных Перемещение или навигация по записям набора данных может осуществляться несколькими путями. Например, в компонентах TDBGrid и TDBCtrlGrid, которые отображают сразу несколько записей набора данных, можно использовать клавиши вертикального перемещения курсора или вертикальную полосу прокрутки.
    • Представление отдельных полей Большинство компонентов отображения данных предназначено для представления данных из отдельных полей. Для этого все они имеют свойство DataField, которое указывает на требуемое поле набора данных.
    • Компонент TDBText Этот компонент представляет собой статический текст, который отображает текущее значение некоторого поля связанного набора данных. При этом данные можно просматривать в режиме "только для чтения".
    • Компонент TDBEdit Компонент представляет собой стандартный однострочный текстовый редактор, в котором отображаются и изменяются данные из поля связанного набора данных.
    • Компонент TDBCheckBox Компонент представляет собой почти полный аналог обычного флажка (компонент TCheckBox) и предназначен для отображения и редактирования любых данных, которые могут иметь только два значения.
    • Компонент TDBRadioGroup Компонент представляет собой стандартную группу переключателей, состояние которых зависит от значений поля связанного набора данных. В поле можно передавать фиксированные значения, связанные с отдельными переключателями в группе.
    • Компонент TDBListBox Компонент отображает текущее значение связанного с ним поля набора данных и позволяет изменить его на любое фиксированное из списка.
    • Компонент TDBComboBox Компонент отображает текущее значение связанного с ним поля набора данных в строке редактирования, при этом значение поля должно совпадать с одним из элементов разворачивающегося списка.
    • Компонент TDBMemo Компонент представляет собой обычное поле редактирования, к которому подключается поле с типом данных Memo или BLOB.
    • Компонент TDBImage Компонент предназначен для просмотра изображений, хранящихся в базах данных в графическом формате.
    • Компонент TDBRichEdit Компонент предоставляет возможности полноценного текстового редактора для просмотра и изменения текстовых данных, хранящихся в связанном поле набора данных.
    • Синхронный просмотр данных При разработке приложений для работы с базами данных часто возникает необходимость в связывании двух наборов данных по ключевому полю.
    • Механизм синхронного просмотра Непосредственным предком компонентов синхронного просмотра данных является класс TDBLookupControl, который инкапсулирует список значений для просмотра и сам механизм синхронного просмотра.
    • Компонент TDBLookupListBox Компонент представляет собой список значений поля синхронного просмотра для поля, заданного свойством DataField, из набора данных DataSource.
    • Компонент TDBLookupComboBox Компонент представляет собой комбинированный список значений поля синхронного просмотра для поля, заданного свойством DataField, из набора данных DataSource.

Технологии доступа к данным

  • Процессор баз данных Borland Database Engine
    • Любое приложение баз данных имеет в своем составе или использует сторонний механизм доступа к данным, который берет на себя подавляющее большинство стандартных низкоуровневых операций работы с базами данных
    • Архитектура и функции BDE BDE представляет собой набор динамических библиотек, которые "умеют" передавать запросы на получение или модификацию данных из приложения в нужную базу данных и возвращать результат обработки.
    • Псевдонимы баз данных и настройка BDE Для успешного доступа к данным приложение и BDE должны обладать информацией о местоположении файлов требуемой базы данных. Задание маршрута входит в обязанности разработчика.
    • Интерфейс прикладного программирования BDE Как уже говорилось выше, любое приложение Delphi, работающее с базами данных и написанное с использованием стандартных компонентов доступа к данным, обращается к данным и получает результат при помощи BDE.
    • Соединение с источником данных Все обращения из приложения к таблицам одной базы данных осуществляются через одно соединение, на которое замыкаются все компоненты доступа к данным, имеющие соответствующие значения свойства DatabaseName (см. ниже).
    • Компоненты доступа к данным, используемые при разработке приложений BDE, располагаются на странице BDE Палитры компонентов.
      • Класс TBDEDataSet Этот класс является потомком класса TDataSet, его значение трудно переоценить: именно TBDEDataSet обеспечивает работоспособность важнейших механизмов набора данных за счет обращения к функциям BDE
      • Класс TDBDalaSet является непосредственным предком основных компонентов доступа к данным ттаblе, TQuery и TstoredProc.
    • Компонент ТТаblе инкапсулирует таблицу реляционной базы данных, причем независимо от типа базы данных. Для доступа к данным компонент использует функции BDE
      • Компонент TQuery реализует все основные функции стандартного компонента запроса, описанные в гл. 12. Прямым предком компонента является класс TDBDataSet.
      • Компонент TStoredProc обеспечивает использование в приложениях BDE хранимых процедур. Прямым предком компонента является класс TDBDataSet.
  • Технология dbExpress
    • Одной из проблем различных технологий доступа к данным, используемым в приложениях Delphi, является трудность распространения готовых приложений. Для BDE требуется отдельная установка, которая занимает порядка 15 Мбайт дискового пространства, а также специальная настройка псевдонимов
    • Драйверы доступа к данным Технология dbExpress обеспечивает доступ к серверу баз данных при помощи драйвера, реализованного как динамическая библиотека.
    • Соединение с сервером баз данных Для создания соединения с сервером в рамках технологии dbExpress приложение должно использовать компонент TSQLConnection.
    • Управление наборами данных Компонент TSQLConnection позволяет выполнять некоторые операции с подключенными наборами данных и следить за их состоянием.
    • Транзакции Подобно своим аналогам в BDE и ADO компонент TSQLConnection поддерживает механизм транзакций и делает это сходным образом.
    • Использование компонентов наборов данных Набор компонентов dbExpress, инкапсулирующих набор данных, вполне обычен и сравним с аналогичными компонентами BDE, ADO, InterBase Express. Это компоненты TSQLDataSet, TSQLTable, TSQLQuery, TSQLStoredProc.
    • Компонент TSimpleDataSet обеспечивает кэширование полученных данных и сделанных изменений на стороне клиента и последующую передачу их на сервер для фиксации.
    • Способы редактирования данных Несмотря на декларированные недостатки технологии dbExpress — однонаправленные курсоры и невозможность редактирования — существуют программные способы уменьшить масштаб проблемы или даже решить ее.
    • Интерфейсы dbExpress Технология dbExpress основана на использовании четырех базовых интерфейсов, методы которых применяются во всех компонентах dbExpress.
    • Интерфейс ISQLDriver инкапсулирует всего три метода для обслуживания драйвера dbExpress. Экземпляр интерфейса создается для соединения и обеспечивает его связь с драйвером.
    • Интерфейс ISQLConnection обеспечивает работу соединения. Он передает запросы серверу и возвращает результаты, создавая экземпляры интерфейса iSQLCommand; управляет транзакциями; поддерживает передачу метаданных при помощи интерфейса ISQLMetaData.
    • Интерфейс ISQLCommand Так как общим предком компонентов dbExpress объявлен класс TDataSet, то задачей класса TCustomSQLDataSet является не столько внесение новой
    • Интерфейс ISQL Cursor Компонент TSQLDataSet является универсальным и позволяет выполнять запросы SQL (подобно TSQLQuery), просматривать таблицы целиком (подобно TSQLTable)или выполнять хранимые процедуры (подобно TSQLStoredProc).
  • Сервер баз данных InterBase и компоненты InterBase Express
    • На странице InterBase Палитры компонентов содержатся компоненты доступа к данным, адаптированные для работы с сервером InterBase и объединенные названием InterBase Express. Компоненты из набора InterBase Express предназначены для работы с сервером InterBase версии не ниже 5.5
    • Механизм доступа к данным InterBase Express Для компонентов InterBase Express соединение с сервером БД осуществляет компонент TIBDatabase.
    • Компонент TIBDatabase Так как для доступа к базе данных компонентам InterBase Express не требуется BDE, то для создания соединения используется всего одно свойство DatabaseName.
    • Компонент TIBTransaction Компонент TIBTransaction инкапсулирует средства управления транзакцией при работе с сервером InterBase. Для этого он должен быть связан с компонентом TiBDatabase при помощи своего свойства
    • Компоненты доступа к данным Так как компоненты InterBase Express используют для получения набора данных собственный механизм, то иерархия классов-предков включает только обязательный для всех наборов данных TDataSet класс TiBCustomDataSet, который, собственно, и инкапсулирует механизм доступа InterBase Express
    • Область дескрипторов XSQLDA Запрос может иметь собственные параметры, которые должны содержаться в свойстве Params. Однако, в отличие от обычного компонента запроса, в InterBase Express это свойство представляет собой экземпляр класса TIBXSQLDA
    • Структура XSQLVAR Рассмотренная выше область дескрипторов содержит возвращаемый результат запроса. Массив значений каждого возвращаемого поля сохраняется в отдельной структуре XSQLVAR.
    • Компонент TIBTable реализует все возможности стандартного компонента, инкапсулирующего таблицу
    • Компонент TIBQuery выполняет все стандартные функции компонента запроса и наследует возможности класса TiBCustomDataSet.
    • Компонент TIBStoredProc полностью соответствует стандартному прототипу, описываемому в гл. 12.
    • Компонент TIBDataSet Компонент TIBDataSet предназначен для представления в приложениях наборов данных от сложных запросов
    • Компонент TIBSQL предназначен для быстрого выполнения запросов SQL, поэтому не обеспечивает связи с компонентами представления данных
    • Обработка событий Клиентское приложение Delphi, работающее с сервером InterBase, имеет возможность отслеживать события, происходящие в базе данных и вызываемые другими процессами или приложениями.
    • Информация о состоянии базы данных В процессе отладки и выполнения клиентских приложений для сервера InterBase разработчик может получать подробную информацию об этих процессах.
    • Компонент TIBDatabaselnfo обладает большим числом свойств и методов, содержащих разнообразные сведения о состоянии БД
    • Компонент TIBSQLMonitor Компонент TIBSQLMonitor позволяет получать в клиентском приложении сообщения от сервера о выполняемых им операциях.
  • Использование ADO средствами Delphi
    • Наряду с традиционными инструментами доступа к данным Borland Database Engine и ODBC в приложениях Delphi можно применять технологию Microsoft ActiveX Data Objects (ADO), которая основана на возможностях СОМ, а именно интерфейсов OLE DB.
    • Основы ADO Технология Microsoft ActiveX Data Objects обеспечивает универсальный доступ к источникам данных из приложений БД.
    • Перечислители Объекты- перечислители обеспечивают поиск любых объектов ADO, которые имеют доступ к источникам данных. При этом другие перечислители также видны в данном перечислителе.
    • Объекты соединения с источниками данных Внутренний механизм ADO, обеспечивающий соединение с хранилищем данных, использует два типа объектов. Это объекты-источники данных и объекты-сессии.
    • Сессия Из объекта-источника данных можно создавать объекты-сессии.
    • Транзакции Управление транзакциями в OLE DB реализовано на двух уровнях. Во-первых, всеми необходимыми методами обладает объект сессии.
    • Наборы рядов Объект-набор рядов является основным объектом ADO, обеспечивающим работу с данными. Он инкапсулирует совокупность рядов из источника данных, механизмы навигации по рядам и поддержания рядов в актуальном состоянии.
    • Команды Программные средства ADO были бы неполными, если бы не имели возможности использовать для работы с данными язык SQL. Операторы DML и DDL, ряд специальных операторов ADO носят общее название текстовых команд.
    • Провайдеры ADO обеспечивают соединение приложения, использующего данные через ADO, с источником данных (сервером SQL, локальной СУБД, файловой системой и т. д.).
    • Реализация ADO в Delphi Механизм доступа к данным через ADO и многочисленные объекты и интерфейсы реализованы в VCL Delphi в виде набора компонентов, расположенных на странице ADO
    • Компоненты ADO Компонент TADOConnection вобрал возможности перечислителя, источника данных и сессии с возможностями обслуживания транзакций.
    • Механизм соединения с хранилищем данных ADO Компоненты доступа к данным ADO могут использовать два варианта подключения к хранилищу данных. Это стандартный метод ADO и стандартный метод Delphi.
    • Компонент TADOConnection предназначен для управления соединением с объектами хранилища данных ADO. Он обеспечивает доступ к хранилищу данных компонентам ADO, инкапсулирующим набор данных
Система с сохранением заблокированных вызовов