Доступ к данным через компоненты Table и Query

Для получения данных из баз данных BDE в программе на C++ Builder используются два компонента с вкладки BDE: Table и Query. Обеим компонентам необходимо проставить свойство DatabaseName (имя базы данных), компоненту Table также необходимо проставить свойство TableName (имя таблицы). Я не рекомендую ставить атрибут Active = true для таблиц на этапе создания формы, лучше активировать таблицу позже при запуске программы.

Пример работы с компонентом Query: перебор всех записей из таблицы t1 с полями A и B:

Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("SELECT a, b FROM t1");
Query1->Open();

Query1->First();
while (!Query1->Eof) {
ShowMessage(Query1->FieldByName("a")->AsString);
Query1->Next();
}

В первой части примера подготавливается запрос и отправляется СУБД для исполнения. После вызова Query1->Open() выборка оказывается «внутри» компонента Query и можно получить доступ к данным перебором, как показано в примере (цикл while). Для текущей записи получить значение любого поля можно при помощи метода FieldByName. Возможные преобразования: AsInteger, AsString,AsDateTime и прочие (используйте Ctrl+пробел для вывода всех вариантов).

В запросах INSERT, DELETE, UPDATE вместо Query1->Open() необходимо использовать Query1->ExecSQL(), т.к. эти запросы не возвращают никакую выборку, а лишь выполняют соответствующее действие.

Перебор записей таблицы Table производится аналогично.

Используя Borland C++ Builder, можно создать приложения, работающие как с однопользовательскими базами данных (БД), так и с серверными СУБД, такими как Oracle, Sybase, Informix, Interbase, MS SQL Server, DB2, а также с ODBC-источниками. Возможности C++ Builder, связанные с созданием приложений, использующих базы данных, весьма обширны для того, чтобы описать их в одной статье. Поэтому сегодня мы рассмотрим лишь простейшие возможности работы с таблицами баз данных.

Набор данных в C++ Builder - это объект, состоящий из набора записей, каждая из которых, в свою очередь, состоит из полей, и указателя текущей записи. Набор данных может иметь полное соответствие с реально существующей таблицей или быть результатом запроса, он может быть частью таблицы или объединять между собой несколько таблиц.

Набор данных в C++ Builder является потомком абстрактного класса TDataSet (абстрактный класс - это класс, от которого можно порождать другие классы, но нельзя создать экземпляр объекта данного класса). Например, классы TQuery, TTable и TStoredProc, содержащиеся на странице палитры компонентов Data Access, - наследники TDBDataSet, который, в свою очередь, является наследником TDataSet. TDataSet содержит абстракции, необходимые для непосредственного управления таблицами или запросами, обеспечивая средства для того, чтобы открыть таблицу или выполнить запрос и перемещаться по строкам.

1.02.13


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: