Кент Рейсдорф. BORLAND C++BUILDER. Раздел 4
Кент Рейсдорф. BORLAND C++BUILDER. Страница 445
? Как устроена архитектура доступа к базам данных в C++Builder
? Какие компоненты необходимы для построения приложений, работающих с базами данных
? Для чего предназначен компонент TSession
? Ключевые элементы компонента TDatabase
? Как использовать компонент TDataSource
? Свойства, события и основные методы компонентов TTable, TQuery и TStoredProc
? Как использовать компонент TBatchMove для копирования строк и создания таблиц
Некоторые термины, которые необходимо знать
На протяжении всей главы я буду ссылаться на различные составляющие архитектуры баз данных C++Builder. В связи с этим необходимо предварительно определить некоторые термины, чтобы вы понимали, о чем идет речь. Одни из них относятся к C++Builder, другие — к базам данных. С частью этих терминов вы можете быть знакомы, какие-то, вероятно, будут для вас абсолютно новыми. Ключевые термины сегодняшнего дня сведены в таблицу 16.1.
Таблица 16.1. Стандартные термины, относящиеся к базам данных в C++Builder
Термин | Описание | ||
Таблица (table) | Совокупность строк (или объектов) в базе данных. Например, вы можете создать таблицу INVOICE для хранения счетов. | ||
Строка (row) | Запись или объект таблицы. Например, таблица CUSTOMER может содержать строки данных о покупателях. Каждая строка в этой таблице будет соответствовать отдельному покупателю. | ||
Столбец (column) | Поле или атрибут, содержащийся в строках таблицы. Например, ваша таблица INVOICE может содержать столбец CustomerNumber (код покупателя). Поле CustomerNumber будет присутствовать в каждой строке таблицы. | ||
Borland Database Engine | Набор DLL и вспомогательных файлов, которые обеспечивают доступ к базам данных в C++Builder и других продуктах фирмы Borland. Borland Database Engine (BDE) сильно облегчает работу с базами данных, предоставляя высокоуровневый интерфейс прикладного программирования баз данных (database API), одинаковый для всех СУБД, которые он поддерживает. Этот дружественный по отношению к разработчику интерфейс обеспечивает в C++Builder управление базами данных таким образом, что вам редко придется работать напрямую с самим BDE. | ||
IDAPI | Независимый интерфейс прикладного программирования баз данных, разработанный фирмой Borland (Independent Database Application Programming Interface). Различные приложения (в том числе приложения С-1—(-Builder) взаимодействуют с BDE через этот интерфейс. Поскольку почти все необходимые вызовы IDAPI выполняются за вас компонентами C++Builder, вам редко придется писать код, напрямую обращающийся к IDAPI. Вместо этого вы будете иметь дело с методами, свойствами и событиями компонентов C++Builder, предназначенных для работы с базами данных. | ||
Драйвер BDE (BDE Driver) | DLL (или набор DLL), обеспечивающая взаимодействие BDE с конкретной СУБД. C++Builder в версии клиент/сервер включает в себя драйверы для работы с Sybase, Microsoft, Oracle, InterBase, Informix, DB2, Paradox, dBASE и любыми 32-разрядными источниками данных ODBC. Программы Сн—HBuilder не работают напрямую с драйверами BDE. Вместо этого они используют псевдонимы (aliases) BDE, которые основаны на драйверах BDE. | ||
Псевдоним BDE (BDE Alias) | Совокупность конфигурационных параметров, которые сообщают BDE, как обращаться к конкретной базе данных. Псевдонимы основаны на драйверах баз данных BDE. Вы можете создавать псевдонимы с помощью конфигурационной программы BDE или Database Explorer C++Builder. Для каждой базы данных обычно используются отдельный псевдоним. Например, вы можете создать один псевдоним для обращения к базе данных Northwind в формате Microsoft Access, а другой - для обращения к базе данных Orders в том же формате. Оба псевдонима будут основаны на драйвере Access ODBC, поскольку они работают с базой данных Access. Однако эти псевдонимы не будут одинаковыми, т.к. используются для обращения к различным базам данных Access. В этом и заключается разница между драйверами и псевдонимами BDE - драйверы обращаются к СУБД, а псевдонимы - к конкретной базе данных, с которой работает СУБД. | ||
Термин | Описание | ||
Драйверы SQL Links | Высокопроизводительные драйверы для доступа к базам данных, используемые BDE для работы с СУБД типа клиент/сервер. C++Builder в версии клиент/сервер включает в себя SQL-драйверы для СУБД Sybase, Microsoft, Oracle, InterBase, Informix и DB2. Поскольку эти драйверы включены в C++Builder, вам не требуется использовать альтернативные методы типа ODBC для доступа к перечисленным СУБД, хотя это и не возбраняется. | ||
Драйверы ODBC | Драйверы для доступа к базам данных, основанные на спецификации Open Database Connectivity фирмы Microsoft. C++Builder может использовать 32-разрядные драйверы ODBC для связи с внутренними компонентами баз данных. Настройка источников данных ODBC (которые похожи на псевдонимы BDE) и управление ими осуществляется через стандартную программу ODBC Administrator в панели управления Windows. | ||
Компонент доступа к данным (data access control) | Невизуальный (невидимый во время выполнения программы) компонент, который обеспечивает вашему приложению доступ к базе данных. Компоненты доступа к данным расположены во вкладке Data Access палитры компонентов C++Builder. К ним относятся TDatabase, TTable и TDataSource. | ||
TDataSet | Класс СН—(-Builder, обеспечивающий доступ к таблицам баз данных, а также результатам запросов, имеющих структуру таблицы. Поскольку компоненты TTable, TQuery и TStoredProc косвенно произведены от класса TDataSet, я часто буду ссылаться на них вместе как на TDataSet. | ||
TTable | Компонент C++Builder, обеспечивающий доступ к таблицам базы данных. Свойство TableName этого компонента используется для выбора конкретной таблицы, к которой вы хотите обратиться. | ||
TQuery | Компонент C++Builder, позволяющий создавать, выполнять и обрабатывать ваши собственные запросы SQL. | ||
TStoredProc | Компонент C++Builder, позволяющий запускать откомпилированные процедуры SQL, которые находятся на сервере базы данных. Такие процедуры называются хранимыми процедурами (stored procedures). | ||
Интерфейсный элемент (data-aware control) | Визуальный (видимый во время выполнения программы) компонент, который позволяет пользователю просматривать и изменять данные в базе, используя компоненты доступа к данным. Интерфейсные компоненты расположены во вкладке Data Controls палитры компонентов C++Builder. В большинстве случаев они будут казаться вам «интеллектуальными» версиями компонентов из вкладки Standard. Примерами интерфейсных компонентов служат TDBGrid, TDBNavigator и TDBEdit. | ||
TDataSource | Компонент СН—(-Builder, который обеспечивает связь компонентов TDataSet с интерфейсными элементами. Интерфейсные элементы обращаются к компонентам TDataSource, которые, в свою очередь, обращаются к компонентам TDataSet. | ||
TField | Класс СН—(-Builder, обеспечивающий доступ к полям таблицы базы данных. СН—(-Builder создает производные этого класса, такие как TStringField и TlntegerField, когда вы используете редактор полей для добавления нового поля в форму. Владельцем компонентов TField, помещенных в форму, является сама форма, а не связанный с ними TDataSet. | ||