Создание базы данных в InterBase
Создавать базу данных я буду для СУБД (Системы Управления Базами Данных) InterBase. ОкноFlameRobinвыглядит так:
Теперь нам необходимо создать локальный сервер. Для этого в основном меню нажимаем Server>Registerи в появившемся окне выбираемLocalServer. Затем ниже в областиLoginInformationв полеUserNameвводимSYSDBA, а в полеPasswordвводимMASTERKEYи нажимаемOk. Таким образом мы создаем локальный сервер СУБД.
Теперь необходимо создать базу данных. Для этого в главном меню IBConsoleвыбираемDatabase>CreateDatabase. Появляется окно создания базы данных:
В области Databasepathмы прописываем полный путь к базе данных вместе с тем именем базы, которую мы хотим создать. Например если мы хотим на дискеD, проходим на диск и прописываем в строке «D:\FBLIBRAR.FDB». В областиCharSetмы выбираем ту кодировку, которую будем использовать в нашей базе данных. В моей базе используется кодировкаWIN1251. Затем в областиSQLDialectвыбирается тот диалект языкаSQL, который будем использовать. В моей базе используется 3-ый диалект.
Теперь создаем базу данных с помощью сгенерированного нами ранее скрипта. Для этого клацаем правой кнопкой мыши на Tableи выбираем ‘Createnew…’. В открывшееся диалоговое окно вставляемSQL код отдельной таблицы:
Так мы создаем каждую таблицу и процедуру.
В итоге вот что у нас получилось:
Хранимые процедуры (англ.storedprocedures) позволяют реализовать значительную часть логики приложения на уровне базы данных и таким образом повысить производительность всего приложения . Хранимая процедура (ХП) – это часть метаданных базы данных, представляющая собой откомпелированную во внутреннее представлениеInterBaseподпрограмму, написанную на специальном языке, компилятор которого встроен в ядро сервераInterBase. ХП можно вызвать из клиенских приложений, из триггеров и других хранимых процедур. ХП выполняется внутри серверного процесса и может манипулировать данными в базе данных, а также возвращать ее клиенту (приложению) результаты своего приложения.
А вот и сам SQLкод сгенерированный вERStudio:
/*
* PROCEDURE: AvtorInsProc
*/
SET TERM !! ;
CREATE PROCEDURE AvtorInsProc
( v_ID_Avtor INTEGER,
v_First_Name VARCHAR(20),
v_Last_Name VARCHAR(20))
AS
BEGIN
INSERT INTO Avtor(ID_Avtor,
First_Name,
Last_Name)
VALUES(:v_ID_Avtor,
:v_First_Name,
:v_Last_Name);
END;!!
SET TERM ; !!
/*
* PROCEDURE: AvtorUpdProc
*/
SET TERM !! ;
CREATE PROCEDURE AvtorUpdProc
( v_ID_Avtor INTEGER,
v_First_Name VARCHAR(20),
v_Last_Name VARCHAR(20))
AS
BEGIN
UPDATE Avtor
SET First_Name = :v_First_Name,
Last_Name = :v_Last_Name
WHERE ID_Avtor = :v_ID_Avtor;
END;!!
SET TERM ; !!
/*
* PROCEDURE: AvtorDelProc
*/
SET TERM !! ;
CREATE PROCEDURE AvtorDelProc
( v_ID_Avtor INTEGER)
AS
BEGIN
DELETE
FROM Avtor
WHERE ID_Avtor = :v_ID_Avtor;
END;!!
SET TERM ; !!
Разработка клиентского приложения
Клиентское приложение создавалось мною в среде разработки Delphi2007. Мое клиентское приложение разработано с помощью технологииInterBaseи имеет 9 форм:AOTB,Avtor,Book,BookItem,BookJanre,DataModul,Inventarization,Janre,Purchase.
В форме DataModule:
реализуется соединение клиентского приложения с моей базой данных.
За соединение с базой данных отвечает компонент IBDatabase1, предназначенный для подключения к базу данных. Транзакцией управляет компонентIBTransaction1, предназначенный для явного управления транзакцией. Кроме того формаDataModuleимеет целый ряд компонентовTIBTableиTDataSourceдля взаимодействия с таблицами в базе данных.
Текст всех модулей представлен ниже в приложении.