- •Лабораторная работа №5
- •InterBase - это система управления реляционными базами данных, поставляемая корпорацией borland для построения приложений с архитектурой клиент-сервер произвольного масштаба.
- •Задание 1. Создание базы данных типа InterBase.
- •Задание 2. Доступ к базе данных типа InterBase.
- •Задание 3. Ввод значений в таблицу InterBase.
Задание 2. Доступ к базе данных типа InterBase.
Запустите Delphi. Поместите на форму компоненты со страницы InterBase: TIBDatabase, TIBTransaction, TIBTable и компоненты TDataSource со страницы Data Access, TDBGrid со страницы Data Control. Установите следующие свойства в инспекторе объектов:
IBDatabase1
DatabaseName=C:\workwithinterbase\IB_basa.gdb (путь к файлу БД)
DefaultTransaction=IBTransaction1
IBTransaction1
DefaultDatabase=IBDatabase1
IBTable1
Database=IBDatabase1
TableName=Needs (имя таблицы)
DataSource1
DataSet=IBTable1
DBGrid1
DataSource= DataSource1
Транзакция - это набор действий с базой данныхвыполняемых по правилу «либо все, либо ни чего». Если во время выполнения данного набора действий, на каком-то этапе невозможно произвести очередное действие, то нужно выполнить возврат базы данных к начальному состоянию (произвести откат транзакции). Таким образом (при правильном планировании транзакций), обеспечивается целостность базы данных. Клиентская программа управляет транзакциями с помощью трех методов компонента TIBTransaction:
StartTransaction - начинает транзакцию;
Commit - подтверждает транзакцию;
Rollback - откат транзакции (отмена всех изменений, сделанных с момента старта транзакции).
Задание 3. Ввод значений в таблицу InterBase.
Поместите на форму два компонента Tеdit и TButton. В Edit1 будем вводить значение поля PartID (поле имеет числовой тип), в Edit2 будем вводить значение поля Info (поле имеет cтроковый тип). В обработчике щелчка на кнопке пропишем заполнение полей таблицы:
procedure TForm1.Button1Click(Sender: TObject);
begin
if (Edit1.Text<>'')and(Edit2.Text<>'') then
begin
//начало транзакции
IBTransaction1.Active:=false;
IBTransaction1.StartTransaction;
try
//дополнительная проверка, открыта ли нужная таблица
if not IBTable1.Active then IBTable1.Open;
//вставка записи
IBTable1.Insert;
IBTable1.Fields[0].AsInteger:=StrToInt(Edit1.Text);
IBTable1.Fields[1].AsString:=Edit2.Text;
//информация записывается в таблицу
IBTable1.Post;
//успешное завершение транзакции
IBTransaction1.Commit;
except
//ошибка
IBTransaction1.Rollback;
end;
end;
IBTransaction1.Active:=true;
IBTable1.Active:=true;
end;
Примечание. При запуске программы пользователю каждый раз прниходится вводить имя и пароль. Чтобы этого избежать, необходимо в инспекторе объектов для компонента IBDatabase1задать свойства:
LoginPrompt=False;
В свойстве Params указать две строки:
user_name=SYSDBA
password=masterkey.