Средства
для работы с базами данных
Среда Kylix предоставляет
набор драйверов, необходимых для работы с базами данных, которые описаны выше.
Кроме того, Kylix предоставляет программисту несколько компонентов, обеспечивающих
работу с базами данных. Мы их кратко рассматривали в восьмой главе книги. Попробуем
рассмотреть методику использования этих средств для создания простого приложения.
Для этого воспользуемся файлом примера, который поставляется вместе со средой
Kylix. Его можно найти в каталоге /kylix/demos/db/fishfact/.
Итак, запустим Kylix и
откроем проект Fishfaet.dpr. Данный проект представляет собой простой просмотрщик
содержимого базы данных. Как вы можете видеть, он написан практически без использования
кода. Есть лишь одна команда, которая активизируется при показе главной формы
приложения. В листинге 15.1 представлен код главного модуля Ffactlin
этого приложения.
Листинг 15.1.Модуль
Ffactlin
unit Ffactlin;
interface
uses
SysUtils,
Types, Classes, QGraphics, QControls, QForms, QDialogs,
QExtCtrls,
QDBCtrls, QStdCtrls, DB, DBClient, QGrids, QDBGrids, QButtons;
type
TForm1
= class (TForm)
Panel1:
TPanel;
DBImage1:
TDBImage;
DBText1:
TDBText;
ClientDataSet1:
TClientDataSet;
DataSource1:
TDataSource;
Panel2:
TPanel;
Label1:
TLabel;
DBText2:
TDBText;
Panel3:
TPanel;
Panel4:
TPanel;
DBGrid1:
TDBGrid;
BitBtn1:
TBitBtn;
DBMemo1:
TDBMemo;
procedure
FormCreate(Sender: TObject);
private
{ Private declarations
}
public
{ Public declarations
}
end;
var
Form1:
TForm1;
implementation
{$R *.xfm}
procedure TForm1.FormCreate(Sender:
TObject);
begin
// Указываем файл таблицы базы данных
ClientDataSet1.LoadFromFile('biolife.cds');
end;
end.
Внешний вид формы представлен
на рис. 15.4.
Рис.
15.4. Форма приложения базы данных
Мы не будем вдаваться в
подробности пользовательского интерфейса этого приложения. Рассмотрим лишь те
особенности, которые относятся к работе с таблицей базы данных.
Итак, на форме располагаются
компоненты DataSource1
и ClientDataSet1
. Первый компонент
обеспечивает взаимосвязь между компонентом ClientDataSet1
и компонентами,
отображающими данные. Компонент ClientDataSet1
нужен для указания
имени файла таблицы, из которой будут браться записи. Для отображения данных,
находящихся в таблице, применяются компоненты DBImage1, DBText1, DBText2,
DBMemo1
и DBGrid1
.
Компонент DBImage1
будет отображать картинки, содержащиеся в таблице. Для этого в его свойство
DataField
помещено значение Graphic
, обозначающее,
что будет отображаться содержимое поля с именем Graphic
. Компоненты
DBText1
и DBText2
служат для отображения текста (длиной
не более одной строки). В их свойства DataField
помещено значение
CommonName
, также обозначающее название поля таблицы, значение
которого будет отображать компоненты. Компонент DBMemo1
предназначен
для отображения нескольких строк текста и может содержать горизонтальные и вертикальные
полосы прокрутки. Данные берутся из поля Notes
таблицы, т. к. именно
это значение указано в свойстве DataField
этого компонента. Наконец,
компонент DBGrid1
— самый важный компонент в данном приложении.
Он отображает полную запись таблицы и с помощью него происходит перемещение
по записям. Запустим приложение. В результате появится форма с заполненными
компонентами (рис. 15.5).
Рис.
15.5. Приложение в работе
При перемещении по записям
с помощью компонента DBGrid1
вы можете видеть, как изменяется содержимое
компонентов. Таким образом, для просмотра данных из таблиц практически не требуется
написание кода. Важным является лишь задание нужных свойств компонентов. Изучением
этих свойств мы и займемся в главе 16.