Розробка інформаційної системи відомостей про вулиці м. Києва

Розробка інформаційної системи для виконання перегляду відомостей про вулиці м. Києва, їх розташування, параметри та історію. Концептуальна і даталогічна модель бази даних. Зв’язки між сутностями. Oпис реалізації клієнтських застосувань та інтерфейсу.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 26.07.2013
Размер файла 498,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Зміст

1. Опис предметного середовища та постановка задачі

2. Концептуальна модель бази даних

3. Даталогічна модель бази даних

4. Словник даних

5. Зв'язки між сутностями

6. Функціональні залежності

7. Опис реалізації проекту бази даних

Висновки

Список використаної літератури

Документація

Додатки

1. Опис предметного середовища та постановка задачі

Необхідно розробити інформаційну систему, яка дозволяла б виконувати перегляд відомостей про вулиці м. Києва, їх розташування, параметри та історію.

До головних задач, які повинна виконувати система, відносяться:

· Ведення обліку вулиць, тобто інформація про розташування, код, назву, тип, хронологію перейменувань вулиці.

· Ведення обліку об'єктів, які розташовані на відповідних вулицях - номер, назва, тип, точні координати розташування.

Перелік вхідної інформації, що повинна зберігатися в БД

· Район: код району (унікальний), назва району.

· Вулиця: код вулиці (унікальний), назва вулиці, тип вулиці, коротка назва типу, кількість об'єктів (споруди розташовані на даній вулиці), код району (унікальний).

· Хронологія: номер запису (унікальний), нова назва, дата створення, код вулиці (унікальний).

· Геометрія: координати вулиці (X, Y), код вулиці (унікальний).

· Об'єкт: номер (унікальний), назва (якщо є, в іншому випадку взяти назву вулиці), тип об'єкта, координати об'єкта (Х, Y), код вулиці (унікальний).

2. Концептуальна модель БД

На етапі концептуального проектування визначаються основні типи даних, що підлягають збереженню у базі даних, виділяються об'єкти (сутності) предметного середовища, визначаються характеристики (атрибути) об'єктів, структурні зв'язки між об'єктами, які дають можливість реалізувати усю множину запитів до БД.

Рисунок 1 - Концептуальна модель

3. Даталогічна модель БД

Фізична модель відображає розміщення даних, методи доступу до даних і техніку індексування, що будуть реалізовані в рамках обраної СУБД.

Нижче наведена структура таблиць та їх взаємозв`язок у вигляді діаграми.

Рисунок 2 - Даталогічна модель

4. Словник даних

Необхідно виділити основні сутності. Для сутностей визначити атрибути, що потрібно включити до складу інформаційної моделі.

Таблиця 1 - Атрибути інформаційної моделі

Сутність

Атрибути

Ідентифікатор

Ключі

Тип даних

Розмір

Район

Код району

Назва району

ID_Part

Name_Part

Pk

Числовий(і)

Текстовий(А)

ціле

50

Вулиця

Код вулиці

Назва вулиці

Тип

Коротка назва типу

Кількість об'єктів

Код району

ID_St

Name_St

Type_St

Type_Short

Count_St

ID_Part

Pk

Fk

Числовий(і)

Текстовий(А)

Текстовий(А)

Текстовий(А)

Числовий(і)

Числовий(і)

ціле

20

15

5

ціле

ціле

Хронологія

Номер запису

Нова назва

Дата створення

Код вулиці

Num_H

Name_New

Date_Create

ID_St

Pk

Fk

Числовий(і)

Текстовий(А)

Дата

Числовий(і)

ціле

20

Date

ціле

Геометрія

X

Y

Код вулиці

X_St

Y_St

ID_St

Fk

Числовий(і)

Числовий(і)

Числовий(і)

ціле

ціле

ціле

Об'єкт

Код

Назва

Тип об'єкта

Номер

X

Y

Код вулиці

Num_Obj

Name_Obj

Type_Obj

Nomer_Obj

X_Obj

Y_Obj

ID_St

Pk

Fk

Числовий(і)

Текстовий(А)

Текстовий(А)

Числовий(і)

Числовий(і)

Числовий(і)

Числовий(і)

ціле

20

10

ціле

ціле

ціле

ціле

5. Зв'язки між сутностями

Далі необхідно визначити зв`язки між сутностями, які включені до моделі.

Таблиця 2 - Зв'язки між сутностями

Сутність

Тип звязку

Зміст звязку

Район

Вулиця

1:М

В одному районі знаходиться багато вулиць, вулиця входить до одного району.

Вулиця

Хронологія

1:М

Вулиця має багато історичних відомостей, історичні відомості притаманні окремій, одній вулиці.

Вулиця

Геометрія

1:М

Вулиця представляє собою складну геометричну фігуру з унікальними координатами, які відповідають тільки одній вулиці.

Вулиця

Об'єкт

1:М

На вулиці розташовано багато об'єктів, об'єкт розташований на відповідній вулиці.

6. Функціональні залежності

Інформаційні об'єкти:

Район (Part) - (ID_Part , Name_Part);

Вулиця(Street) - (ID_St, Name_St, Type_St, Type_Short, Count_St);

Об'єкт(Object) - (Num_Obj, Name_Obj, Type_Obj, X_Obj, Y_Obj);

Хронологія(History) - (Num_H, Name_New, Date_Create);

Геометрія(Geometry) - (X_St, Y_St).

Аналіз даних дозволяє визначити наступі функціональні залежності:

ID_Part ®-- Name_Part

ID_St--® Name_St, Type_St, Type_Short, Count_St, ID_Part

Num_Obj ® Name_Obj, Type_Obj, X_Obj, Y_Obj, ID_St

Num_H--® Name_New, Date_Create, ID_St

X_St, Y_St--® ID_St

7. Опис реалізації проекту бази даних

Oпис реалізації клієнтських застосувань

Створено два застосування з різними правами доступу у програмному середовищі Delphi.

Перше - для адміністратора , з можливістю редагування всіх таблиць БД;

Друге - для користувача “GUEST”, якому встановлено роль “USER1”, права тільки на читання даних з усіх таблиць БД.

Перше застосування призначено для додавання, редагування та видалення даних з усіх таблиць. Друге для перегляду списків таблиць БД.

Опис інтерфейсу розробленої системи, функціональне призначення основних опцій меню

Застосування для адміністратора

1) Головна форма:

Рисунок 3 - Головна форма застосування

2) Запис нових вулиць та редагування:

Рисунок 4 - Додавання нового запису

3) Перегляд історії перейменувань вулиць :

Рисунок 5 - Перегляд хронології перейменувань вулиць

Застосування для користувача з правами тільки на читання

1) Головна форма:

Рисунок 6 - Головна форма клієнтського застосування

a. Використані компоненти для зв'язку з сервером InterBase

Рисунок 7 - Компоненти для зв'язку read_committed з сервером rec_version

Для зв'язування з сервером використані компоненти вкладки InterBase:

Головний компонент TIBDataBase - TIBDB1 має параметри:

user_name=SYSDBA

password=masterkey

lc_ctype=WIN1251

Для функціонування застосування використано компонент IBTransaction.

IBTR1 має параметри: read

інформаційний вулиця дані інтерфейс

Висновок

На основі отриманих навичок і знань під час виконання лабораторних і практичних робіт, в курсовій роботі, я розробив застосування, яке дозволяє виконувати такі основні дії з наборами даних, як:

· перегляд записів;

· внесення записів;

· редагування записів.

Використана література

1. Горев А., Акаян Р., Макашаринов С. Эффективная работа с СУБД - СГб.: Питер, 1997. - 704 с.

2. Гайна Г.А. Методичні вказівки до виконання курсової роботи з дисципліни «Організація баз даних та знань». - КНУБА, 1999. - 34 с.

3. Конспект лекцій з баз даних. - 96 с.

Додаток1

Метадані бази даних KIEV_STRET.GDB

SET SQL DIALECT 1;

/* CREATE DATABASE 'C:\Kiev_Street\KIEV_STREET.gdb' PAGE_SIZE 4096

DEFAULT CHARACTER SET WIN1251 */

/* Domain definitions */

CREATE DOMAIN DOM_20 AS VARCHAR(20) CHARACTER SET WIN1251 COLLATE PXW_CYRL;

CREATE DOMAIN DOM_FK AS INTEGER;

CREATE DOMAIN DOM_PK AS INTEGER NOT NULL;

CREATE DOMAIN DOM_STYPE AS VARCHAR(4) CHARACTER SET WIN1251

CHECK(VALUE IN ('вул', 'прос', 'бул', 'пл', 'пров', 'узв'));

CREATE DOMAIN DOM_TYPE AS VARCHAR(12) CHARACTER SET WIN1251

CHECK (VALUE IN ('вулиця', 'проспект', бульвар', 'площа', 'провулок', 'узвіз'));

/* Table: GEOMETRY, Owner: SYSDBA */

CREATE TABLE GEOMETRY

(

X_STFLOAT,

Y_STFLOAT,

ID_STDOM_FK

);

/* Table: HISTORY, Owner: SYSDBA */

CREATE TABLE HISTORY

(

NUM_HDOM_PK,

NAME_NEWDOM_20,

DATE_CREATETIMESTAMP,

ID_STDOM_FK,

CONSTRAINT PK_H PRIMARY KEY (NUM_H)

);

/* Table: OBJECT, Owner: SYSDBA */

CREATE TABLE OBJECT

(

NUM_OBJDOM_PK,

NAME_OBJDOM_20,

TYPE_OBJDOM_20,

NOMER_OBJVARCHAR(10) CHARACTER SET WIN1251,

X_OBJFLOAT,

Y_OBJFLOAT,

ID_STDOM_FK,

CONSTRAINT PK_OBJ PRIMARY KEY (NUM_OBJ)

);

/* Table: PART, Owner: SYSDBA */

CREATE TABLE PART

(

ID_PARTDOM_PK,

NAME_PARTDOM_20,

CONSTRAINT PK_PART PRIMARY KEY (ID_PART)

);

/* Table: STREET, Owner: SYSDBA */

CREATE TABLE STREET

(

ID_STDOM_PK,

NAME_STDOM_20,

TYPE_STDOM_TYPE,

TYPE_SHORTDOM_STYPE,

COUNT_STINTEGER,

ID_PARTDOM_FK,

CONSTRAINT PK_ST PRIMARY KEY (ID_ST)

);

FROM STREET

INTO :SNAME, :STYPE, :SCOUNT

DO

BEGIN

SUSPEND;

END

END

^

ALTER PROCEDURE PROC2

RETURNS

(

SCOUNT INTEGER

)

AS

BEGIN

FOR

SELECT COUNT(NUM_OBJ)

FROM OBJECT

INTO :SCOUNT

DO

BEGIN

SUSPEND;

END

END

^

ALTER PROCEDURE PROC3

(

SNAME VARCHAR(20) CHARACTER SET WIN1251,

SFROM TIMESTAMP,

STO TIMESTAMP

)

RETURNS

(

SCOUNT INTEGER

)

AS

BEGIN

SCOUNT=0;

FOR

SELECT COUNT(H.NUM_H)

FROM HISTORY H INNER JOIN STREET S ON H.ID_ST=S.ID_ST

WHERE NAME_ST=:SNAME AND DATE_CREATE BETWEEN :SFROM AND :STO

INTO :SCOUNT

DO

BEGIN

SUSPEND;

END

END

^

ALTER PROCEDURE PROC4

(

SNAME VARCHAR(20) CHARACTER SET WIN1251

)

RETURNS

(

SX FLOAT,

SY FLOAT

)

AS

BEGIN

FOR

SELECT G.X_ST, G.Y_ST

FROM GEOMETRY G INNER JOIN STREET S ON G.ID_ST=S.ID_ST

WHERE NAME_ST=:SNAME

INTO :SX, :SY

DO

BEGIN

SUSPEND;

END

END

^

SET TERM ; ^

COMMIT WORK;

HISTORY.ID_ST)

VALUES (:I, NEW.NAME_ST, :D, NEW.ID_ST);

END

^

CREATE TRIGGER TRHISTORY_UPD FOR STREET

ACTIVE AFTER UPDATE POSITION 0

AS

DECLARE VARIABLE D DATE;

DECLARE VARIABLE I INTEGER;

BEGIN

I=GEN_ID(GEN_H,0);

D='NOW';

IF (NEW.NAME_ST<>OLD.NAME_ST) THEN

BEGIN

INSERT INTO HISTORY(HISTORY.NUM_H, HISTORY.NAME_NEW, HISTORY.DATE_CREATE, HISTORY.ID_ST)

VALUES (:I, NEW.NAME_ST, :D, NEW.ID_ST);

END

END

^

COMMIT WORK ^

SET TERM ;^

/* Grant Roles for this database */

/* Role: ADMINISTRATOR, Owner: SYSDBA */

CREATE ROLE ADMINISTRATOR;

CREATE ROLE USER1;

/* Grant permissions for this database */

GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON GEOMETRY TO ADMINISTRATOR;

GRANT SELECT ON GEOMETRY TO USER1;

GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON HISTORY TO ADMINISTRATOR;

GRANT SELECT ON HISTORY TO USER1;

GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON OBJECT TO ADMINISTRATOR;

GRANT SELECT ON OBJECT TO USER1;

GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON PART TO ADMINISTRATOR;

GRANT SELECT ON PART TO USER1;

GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON STREET TO ADMINISTRATOR;

GRANT SELECT ON STREET TO USER1;

GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON V_HISTORY TO ADMINISTRATOR;

GRANT SELECT ON V_HISTORY TO USER1;

GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON V_OBJ TO ADMINISTRATOR;

GRANT SELECT ON V_OBJ TO USER1;

GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON V_PART TO ADMINISTRATOR;

GRANT SELECT ON V_PART TO USER1;

GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON V_PCOUNT TO ADMINISTRATOR;

GRANT SELECT ON V_PCOUNT TO USER1;

GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON V_ST TO ADMINISTRATOR;

GRANT SELECT ON V_ST TO USER1;

GRANT ADMINISTRATOR TO DENNIS;

GRANT USER1 TO GUEST;

GRANT EXECUTE ON PROCEDURE PROC1 TO ADMINISTRATOR;

GRANT EXECUTE ON PROCEDURE PROC1 TO USER1;

GRANT EXECUTE ON PROCEDURE PROC2 TO ADMINISTRATOR;

GRANT EXECUTE ON PROCEDURE PROC2 TO USER1;

GRANT EXECUTE ON PROCEDURE PROC3 TO ADMINISTRATOR;

/* View: V_HISTORY, Owner: SYSDBA */

CREATE VIEW V_HISTORY (

NUM_H,

NAME_NEW,

DATE_CREATE,

NAME_ST

) AS

select H.NUM_H, H.NAME_NEW, H.DATE_CREATE, S.NAME_ST

FROM HISTORY H, STREET S

WHERE S.ID_ST=H.ID_ST

;

COMMIT WORK;

SET AUTODDL OFF;

SET TERM ^ ;

/* Stored procedures */

CREATE PROCEDURE PROC1

RETURNS

(

SNAME VARCHAR(20) CHARACTER SET WIN1251,

STYPE VARCHAR(20) CHARACTER SET WIN1251,

SCOUNT INTEGER

)

AS

BEGIN EXIT; END ^

CREATE PROCEDURE PROC2

RETURNS

(

SCOUNT INTEGER

)

AS

BEGIN EXIT; END ^

CREATE PROCEDURE PROC3

(

SNAME VARCHAR(20) CHARACTER SET WIN1251,

SFROM TIMESTAMP,

STO TIMESTAMP

)

RETURNS

(

SCOUNT INTEGER

)

AS

BEGIN EXIT; END ^

CREATE PROCEDURE PROC4

(

SNAME VARCHAR(20) CHARACTER SET WIN1251

)

RETURNS

(

SX FLOAT,

SY FLOAT

)

AS

BEGIN EXIT; END ^

ALTER PROCEDURE PROC1

RETURNS

(

SNAME VARCHAR(20) CHARACTER SET WIN1251,

STYPE VARCHAR(20) CHARACTER SET WIN1251,

SCOUNT INTEGER

)

AS

BEGIN

FOR

SELECT NAME_ST, TYPE_ST, COUNT_ST

SET AUTODDL ON;

SET TERM ^;

/* Triggers only will work for SQL triggers */

CREATE TRIGGER ON_GENH FOR HISTORY

ACTIVE BEFORE INSERT POSITION 0

AS

BEGIN

NEW.NUM_H = GEN_ID(GEN_H,1);

END

^

CREATE TRIGGER ON_GENOBJ FOR OBJECT

ACTIVE BEFORE INSERT POSITION 0

AS

BEGIN

NEW.NUM_OBJ = GEN_ID(GEN_OBJ,1);

END

^

CREATE TRIGGER TRCOUNT FOR OBJECT

ACTIVE AFTER INSERT POSITION 0

AS

BEGIN

UPDATE STREET

SET STREET.COUNT_ST = (SELECT COUNT(OBJECT.NUM_OBJ) FROM OBJECT WHERE STREET.ID_ST=OBJECT.ID_ST);

END

^

CREATE TRIGGER TRCOUNT_U FOR OBJECT

ACTIVE AFTER UPDATE POSITION 0

AS

BEGIN

UPDATE STREET

SET STREET.COUNT_ST = (SELECT COUNT(OBJECT.NUM_OBJ) FROM OBJECT WHERE STREET.ID_ST=OBJECT.ID_ST);

END

^

CREATE TRIGGER TRCOUNT_D FOR OBJECT

ACTIVE AFTER DELETE POSITION 0

AS

BEGIN

UPDATE STREET

SET STREET.COUNT_ST = (SELECT COUNT(OBJECT.NUM_OBJ) FROM OBJECT WHERE STREET.ID_ST=OBJECT.ID_ST);

END

^

CREATE TRIGGER ON_GENPART FOR PART

ACTIVE BEFORE INSERT POSITION 0

AS

BEGIN

NEW.ID_PART = GEN_ID(GEN_PART,1);

END

^

CREATE TRIGGER ON_GENST FOR STREET

ACTIVE BEFORE INSERT POSITION 0

AS

BEGIN

NEW.ID_ST = GEN_ID(GEN_ST,1);

END

^

CREATE TRIGGER TRHISTORY_INS FOR STREET

ACTIVE AFTER INSERT POSITION 0

AS

DECLARE VARIABLE D DATE;

DECLARE VARIABLE I INTEGER;

BEGIN

I=GEN_ID(GEN_H,0);

D='NOW';

INSERT INTO HISTORY(HISTORY.NUM_H, HISTORY.NAME_NEW, HISTORY.DATE_CREATE,

GRANT EXECUTE ON PROCEDURE PROC3 TO USER1;

GRANT EXECUTE ON PROCEDURE PROC4 TO ADMINISTRATOR;

GRANT EXECUTE ON PROCEDURE PROC4 TO USER1;

Додаток 2

Програмні модулі Delphi

Застосування для адміністратора

unit BD;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ComCtrls, Grids, DBGrids, Menus, ExtCtrls, StdCtrls, Buttons,

DBCtrls, Mask;

…..…

var

Form1: TForm1;

n: integer;

implementation

uses DataModule1, BD2;

{$R *.dfm}

procedure TForm1.N2Click(Sender: TObject);

begin

close;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

PC1.ActivePage:=TabSheet1;

n:=0;

end;

procedure TForm1.BitBtn4Click(Sender: TObject);

begin

If not DM1.IBTR1.InTransaction then DM1.IBTR1.StartTransaction;

DM1.PART.Insert;

Panel6.Visible:=true;

Panel17.Visible:=true;

GroupBox6.Top:=230;

end;

procedure TForm1.BitBtn17Click(Sender: TObject);

begin

If DM1.IBTR1.InTransaction then

begin

DM1.IBTR1.Commit;

//DM1.PART.Open;

end;

DM1.PART.Active:=false;

DM1.PART.Active:=true;

DBGrid1.Refresh;

Panel6.Visible:=false;

end;

procedure TForm1.BitBtn19Click(Sender: TObject);

begin

if (DBEdit3.Text <> '') AND (DBEdit4.Text <> '') AND (DBEdit4.Text <> '')

AND (Combobox1.Text <> '') AND (DBLookupComboBox1.Text <> '') then

begin

try

DM1.STREET.FieldByName('TYPE_ST').AsString:=combobox1.Text;

if combobox1.ItemIndex=0 then DM1.STREET.Fields[3].Value:='aoe'

else if combobox1.ItemIndex=1 then

except

if (MessageDlg('Iiieeea! A?aiiaeoenu a?a ci?i?', mtConfirmation, [mbYes, mbNo], 0) = mrYes)

then DM1.IBTR1.Rollback

else DM1.IBTR1.Commit;

end;

end

else showmessage('Caiiai?ou an? iiey');

DM1.GEOMETRY.Active:=false;

DM1.GEOMETRY.Active:=true;

DBGrid3.Refresh;

end;

procedure TForm1.BitBtn22Click(Sender: TObject);

begin

If DM1.IBTR1.InTransaction then DM1.IBTR1.Commit;

DM1.GEOMETRY.Active:=false;

DM1.GEOMETRY.Active:=true;

DBGrid3.Refresh;

Panel10.Visible:=false;

end;

procedure TForm1.BitBtn25Click(Sender: TObject);

begin

if (DBEdit14.Text <> '') AND (DBEdit15.Text <> '') AND (DBEdit16.Text <> '')

AND (DBLookupComboBox4.Text <> '') then

begin

try

DM1.HISTORY.Post;

except

if (MessageDlg('Iiieeea! A?aiiaeoenu a?a ci?i?', mtConfirmation, [mbYes, mbNo], 0) = mrYes)

then DM1.IBTR1.Rollback

else DM1.IBTR1.Commit;

end;

end

else showmessage('Caiiai?ou an? iiey');

DM1.HISTORY.Active:=false;

DM1.HISTORY.Active:=true;

DBGrid4.Refresh;

end;

procedure TForm1.BitBtn24Click(Sender: TObject);

begin

If DM1.IBTR1.InTransaction then DM1.IBTR1.Commit;

DM1.HISTORY.Active:=false;

DM1.HISTORY.Active:=true;

DBGrid4.Refresh;

Panel7.Visible:=false;

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

If not DM1.IBTR1.InTransaction then DM1.IBTR1.StartTransaction;

DM1.STREET.Insert;

Panel9.Visible:=true;

Panel18.Visible:=true;

GroupBox7.Top:=366;

end;

procedure TForm1.BitBtn5Click(Sender: TObject);

begin

If not DM1.IBTR1.InTransaction then DM1.IBTR1.StartTransaction;

DM1.PART.Edit;

DM1.PART.Cancel;

Panel6.Visible:=true;

Panel17.Visible:=true;

GroupBox6.Top:=230;

end;

procedure TForm1.BitBtn7Click(Sender: TObject);

begin

If not DM1.IBTR1.InTransaction then DM1.IBTR1.StartTransaction;

DM1.OBGECT.Insert;

Panel8.Visible:=true;

Panel19.Visible:=true;

GroupBox10.Top:=446;

Panel20.Visible:=true;

GroupBox8.Top:=260;

end;

procedure TForm1.N9Click(Sender: TObject);

begin

PC1.ActivePage:=TabSheet5;

Panel7.Visible:=true;

Panel16.Visible:=true;

GroupBox9.Top:=310;

end;

procedure TForm1.N10Click(Sender: TObject);

begin

n:=1;

Form2.ShowModal;

end;

procedure TForm1.N11Click(Sender: TObject);

begin

n:=2;

Form2.ShowModal;

end;

procedure TForm1.N12Click(Sender: TObject);

begin

n:=3;

Form2.ShowModal;

end;

function TForm1.TabSheet: integer;

begin

result:=n;

end;

procedure TForm1.N13Click(Sender: TObject);

begin

n:=4;

Form2.ShowModal;

end;

procedure TForm1.N14Click(Sender: TObject);

begin

n:=5;

Form2.ShowModal;

end;

procedure TForm1.BitBtn6Click(Sender: TObject);

begin

DM1.PART.Cancel;

if (MessageDlg('Oi?ii aeaaeeoe caien?', mtConfirmation, [mbYes, mbNo], 0) = mrYes)

then begin

If not DM1.IBTR1.InTransaction then DM1.IBTR1.StartTransaction;

DM1.PART.Delete;

DM1.PART.Active:=false;

DM1.PART.Active:=true;

DBGrid1.Refresh;

Panel6.Visible:=true;

Panel17.Visible:=false;

GroupBox6.Top:=40;

end;

end;

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

If DM1.IBTR1.InTransaction then

try

DM1.IBTR1.Commit;

except

on Exception do

if (MessageDlg('Iiieeea! A?aiiaeoenu a?a ci?i?', mtConfirmation, [mbYes, mbNo], 0) = mrYes)

then DM1.IBTR1.Rollback

else DM1.IBTR1.Commit;

end;

DM1.PART.Active:=false;

DM1.PART.Active:=true;

procedure TForm1.TabSheet4Show(Sender: TObject);

begin

if DM1.IBTR1.InTransaction then DM1.IBTR1.Commit;

DM1.IBTR1.StartTransaction;

DM1.GEOMETRY.Active:=false;

DM1.GEOMETRY.Active:=true;

DBGrid3.Refresh;

Panel10.Visible:=false;

end;

procedure TForm1.TabSheet5Show(Sender: TObject);

begin

if DM1.IBTR1.InTransaction then DM1.IBTR1.Commit;

DM1.IBTR1.StartTransaction;

DM1.HISTORY.Active:=false;

DM1.HISTORY.Active:=true;

DBGrid4.Refresh;

Panel7.Visible:=false;

end;

procedure TForm1.BitBtn36Click(Sender: TObject);

begin

If not DM1.IBTR1.InTransaction then DM1.IBTR1.StartTransaction;

DM1.STREET.Edit;

DM1.STREET.Cancel;

Panel9.Visible:=true;

Panel18.Visible:=true;

GroupBox7.Top:=366;

end;

procedure TForm1.BitBtn28Click(Sender: TObject);

begin

If DM1.IBTR1.InTransaction then DM1.IBTR1.Commit;

DM1.STREET.Active:=false;

DM1.STREET.Active:=true;

DBGrid2.Refresh;

Panel9.Visible:=false;

end;

procedure TForm1.BitBtn27Click(Sender: TObject);

begin

If DM1.IBTR1.InTransaction then DM1.IBTR1.Rollback;

DM1.STREET.Active:=false;

DM1.STREET.Active:=true;

DBGrid2.Refresh;

Panel9.Visible:=false;

end;

procedure TForm1.BitBtn9Click(Sender: TObject);

begin

DM1.OBGECT.Cancel;

if (MessageDlg('Oi?ii aeaaeeoe caien?', mtConfirmation, [mbYes, mbNo], 0) = mrYes)

then begin

If not DM1.IBTR1.InTransaction then DM1.IBTR1.StartTransaction;

DM1.OBGECT.Delete;

DM1.OBGECT.Active:=false;

DM1.OBGECT.Active:=true;

DBGrid6.Refresh;

Panel8.Visible:=true;

Panel19.Visible:=false;

GroupBox10.Top:=40;

end;

end;

procedure TForm1.BitBtn34Click(Sender: TObject);

begin

If DM1.IBTR1.InTransaction then DM1.IBTR1.Commit;

DM1.OBGECT.Active:=false;

DM1.OBGECT.Active:=true;

DBGrid6.Refresh;

Panel8.Visible:=false;

end;

procedure TForm1.BitBtn33Click(Sender: TObject);

begin

If DM1.IBTR1.InTransaction then DM1.IBTR1.Rollback;

Form1.close;

end;

end.

unit BD2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ComCtrls, DBCtrls, Grids, DBGrids, ExtCtrls, StdCtrls;

…………

var

Form2: TForm2;

v: integer;

implementation

uses BD, DataModule1;

{$R *.dfm}

procedure TForm2.FormActivate(Sender: TObject);

begin

if (Form1.TabSheet=1) then

begin

PageControl1.ActivePage:=TabSheet6;

end

else if (Form1.TabSheet=2) then PageControl1.ActivePage:=TabSheet7

else if (Form1.TabSheet=3) then PageControl1.ActivePage:=TabSheet8

else if (Form1.TabSheet=4) then PageControl1.ActivePage:=TabSheet1

else PageControl1.ActivePage:=TabSheet2;

end;

procedure TForm2.TabSheet7Show(Sender: TObject);

begin

DM1.IBQ5.SQL.Clear;

DM1.IBQ5.SQL.Add('select * FROM proc1');

DM1.IBQ5.Open;

DM1.IBQ5.Active:=false;

DM1.IBQ5.Active:=true;

DBGRID1.Refresh;

DM1.IBQ3.Active:=false;

DM1.IBQ3.Active:=true;

DBGrid8.Refresh;

DBGRID1.Columns[0].Title.Caption:='Aoeeoy';

DBGRID1.Columns[1].Title.Caption:='Oei';

DBGRID1.Columns[2].Title.Caption:='E?eue?nou aoa?aaeu';

end;

procedure TForm2.TabSheet8Show(Sender: TObject);

begin

DM1.IBProc1.Prepare;

DM1.IBProc1.ExecProc;

StatusBar9.Panels[1].Text:='Anuiai aoa?aaeu: ' + DM1.IBProc1.Parambyname('SCOUNT').AsString;

DM1.IBProc1.Cancel;

DM1.IBQ4.Active:=false;

DM1.IBQ4.Active:=true;

DBGrid9.Refresh;

end;

procedure TForm2.Button1Click(Sender: TObject);

begin

if (edit3.text <> '') and (edit2.text <> '') and (edit1.text <> '') then

begin

DM1.IBProc2.ParamByName('SNAME').Value:=edit3.Text;

DM1.IBQ7.Open;

DM1.IBQ7.Active:=false;

DM1.IBQ7.Active:=true;

DBGRID2.Refresh;

end;

procedure TForm2.TabSheet6Show(Sender: TObject);

begin

DM1.IBQ1.Active:=false;

DM1.IBQ1.Active:=true;

DM1.IBQ2.Active:=false;

DM1.IBQ2.Active:=true;

DBGrid5.Refresh;

DBGrid7.Refresh;

end;

procedure TForm2.TabSheet2Show(Sender: TObject);

begin

DM1.IBQ6.Active:=false;

DM1.IBQ6.Active:=true;

DBGrid4.Refresh;

DBGRID4.Columns[0].Title.Caption:='X';

DBGRID4.Columns[1].Title.Caption:='Y';

DBGRID4.Columns[2].Title.Caption:='Aoeeoy';

end;

end.

unit DataModule1;

interface

uses

SysUtils, Classes, IBDatabase, DB, IBCustomDataSet, IBTable, IBQuery,

IBStoredProc;

type

TDM1 = class(TDataModule)

IBDB1: TIBDatabase;

PART: TIBTable;

STREET: TIBTable;

DS1: TDataSource;

DS2: TDataSource;

IBTR1: TIBTransaction;

OBGECT: TIBTable;

HISTORY: TIBTable;

GEOMETRY: TIBTable;

DS3: TDataSource;

DS4: TDataSource;

DS5: TDataSource;

IBQ1: TIBQuery;

IBQ2: TIBQuery;

IBQ3: TIBQuery;

DataSource1: TDataSource;

HISTORYNUM_H: TIntegerField;

HISTORYNAME_NEW: TIBStringField;

HISTORYDATE_CREATE: TDateTimeField;

HISTORYID_ST: TIntegerField;

STREETID_ST: TIntegerField;

STREETNAME_ST: TIBStringField;

STREETTYPE_ST: TIBStringField;

STREETTYPE_SHORT: TIBStringField;

STREETCOUNT_ST: TIntegerField;

STREETField: TStringField;

STREETID_PART: TIntegerField;

OBGECTNUM_OBJ: TIntegerField;

OBGECTNAME_OBJ: TIBStringField;

OBGECTTYPE_OBJ: TIBStringField;

OBGECTNOMER_OBJ: TIBStringField;

OBGECTX_OBJ: TFloatField;

OBGECTY_OBJ: TFloatField;

OBGECTID_ST: TIntegerField;

OBGECTField: TStringField;

GEOMETRYX_ST: TFloatField;

GEOMETRYY_ST: TFloatField; DM1.STREET.Fields[3].Value:='i?in'

else if combobox1.ItemIndex=2 then DM1.STREET.Fields[3].Value:='ie'

else if combobox1.ItemIndex=3 then DM1.STREET.Fields[3].Value:='aoe'

else if combobox1.ItemIndex=4 then DM1.STREET.Fields[3].Value:='oca'

else if combobox1.ItemIndex=5 then DM1.STREET.Fields[3].Value:='i?ia';

DM1.STREET.Post;

DM1.HISTORY.Active:=false;

DM1.HISTORY.Active:=true;

except

if (MessageDlg('Iiieeea! A?aiiaeoenu a?a ci?i?', mtConfirmation, [mbYes, mbNo], 0) = mrYes)

then DM1.IBTR1.Rollback

else DM1.IBTR1.Commit;

end;

end

else showmessage('Caiiai?ou an? iiey');

DM1.STREET.Active:=false;

DM1.STREET.Active:=true;

DBGrid2.Refresh;

end;

procedure TForm1.BitBtn18Click(Sender: TObject);

begin

If DM1.IBTR1.InTransaction then DM1.IBTR1.Commit;

DM1.STREET.Active:=false;

DM1.STREET.Active:=true;

DBGrid2.Refresh;

Panel6.Visible:=false;

end;

procedure TForm1.BitBtn21Click(Sender: TObject);

begin

if (DBEdit5.Text <> '') AND (DBEdit6.Text <> '') AND (DBEdit8.Text <> '')

AND (DBEdit9.Text <> '') AND (DBEdit10.Text <> '') AND (DBEdit11.Text <> '')

AND (DBLookupComboBox2.Text <> '') then

begin

try

DM1.OBGECT.Post;

DM1.STREET.Active:=false;

DM1.STREET.Active:=true;

except

if (MessageDlg('Iiieeea! A?aiiaeoenu a?a ci?i?', mtConfirmation, [mbYes, mbNo], 0) = mrYes)

then DM1.IBTR1.Rollback

else DM1.IBTR1.Commit;

end;

end

else showmessage('Caiiai?ou an? iiey');

DM1.OBGECT.Active:=false;

DM1.OBGECT.Active:=true;

DBGrid6.Refresh;

end;

procedure TForm1.BitBtn20Click(Sender: TObject);

begin

If DM1.IBTR1.InTransaction then DM1.IBTR1.Commit;

DM1.OBGECT.Active:=false;

DM1.OBGECT.Active:=true;

DBGrid6.Refresh;

Panel8.Visible:=false;

end;

procedure TForm1.BitBtn23Click(Sender: TObject);

begin

if (DBEdit12.Text <> '') AND (DBEdit13.Text <> '')

AND (DBLookupComboBox3.Text <> '') then

begin

try

DM1.GEOMETRY.Post;

end;

procedure TForm1.BitBtn8Click(Sender: TObject);

begin

If not DM1.IBTR1.InTransaction then DM1.IBTR1.StartTransaction;

DM1.OBGECT.Edit;

DM1.OBGECT.Cancel;

Panel8.Visible:=true;

Panel19.Visible:=true;

GroupBox10.Top:=446;

end;

procedure TForm1.BitBtn10Click(Sender: TObject);

begin

If not DM1.IBTR1.InTransaction then DM1.IBTR1.StartTransaction;

DM1.GEOMETRY.Insert;

Panel10.Visible:=true;

Panel20.Visible:=true;

GroupBox8.Top:=260;

end;

procedure TForm1.BitBtn11Click(Sender: TObject);

begin

If not DM1.IBTR1.InTransaction then DM1.IBTR1.StartTransaction;

DM1.GEOMETRY.Edit;

DM1.GEOMETRY.Cancel;

Panel10.Visible:=true;

Panel20.Visible:=true;

GroupBox8.Top:=260;

end;

procedure TForm1.BitBtn13Click(Sender: TObject);

begin

If not DM1.IBTR1.InTransaction then DM1.IBTR1.StartTransaction;

DM1.HISTORY.Insert;

Panel7.Visible:=true;

Panel16.Visible:=true;

GroupBox9.Top:=310;

end;

procedure TForm1.BitBtn14Click(Sender: TObject);

begin

If not DM1.IBTR1.InTransaction then DM1.IBTR1.StartTransaction;

DM1.HISTORY.Edit;

DM1.HISTORY.Cancel;

Panel7.Visible:=true;

Panel16.Visible:=true;

GroupBox9.Top:=310;

end;

procedure TForm1.N5Click(Sender: TObject);

begin

PC1.ActivePage:=TabSheet1;

Panel6.Visible:=true;

Panel17.Visible:=true;

GroupBox6.Top:=230;

end;

procedure TForm1.N6Click(Sender: TObject);

begin

PC1.ActivePage:=TabSheet2;

Panel9.Visible:=true;

Panel18.Visible:=true;

GroupBox7.Top:=366;

end;

procedure TForm1.N7Click(Sender: TObject);

begin

PC1.ActivePage:=TabSheet3;

Panel8.Visible:=true;

Panel19.Visible:=true;

GroupBox10.Top:=446;

end;

procedure TForm1.N8Click(Sender: TObject);

begin

PC1.ActivePage:=TabSheet4;

Panel10.Visible:=true;

DBGrid1.Refresh;

Panel6.Visible:=false;

end;

procedure TForm1.BitBtn26Click(Sender: TObject);

begin

If DM1.IBTR1.InTransaction then DM1.IBTR1.Rollback;

DM1.PART.Active:=false;

DM1.PART.Active:=true;

DBGrid1.Refresh;

Panel6.Visible:=false;

end;

procedure TForm1.BitBtn16Click(Sender: TObject);

begin

if (DBEdit1.Text <> '') AND (DBEdit2.Text <> '') then

begin

try

DM1.PART.Post;

except

on Exception do showmessage('Iaei?eoii caiiaiai? iiey!');

end;

end

else showmessage('Caiiai?ou an? iiey');

DM1.PART.Active:=false;

DM1.PART.Active:=true;

DBGrid1.Refresh;

end;

procedure TForm1.BitBtn3Click(Sender: TObject);

begin

DM1.STREET.Cancel;

if (MessageDlg('Oi?ii aeaaeeoe caien?', mtConfirmation, [mbYes, mbNo], 0) = mrYes)

then begin

If not DM1.IBTR1.InTransaction then DM1.IBTR1.StartTransaction;

DM1.STREET.Delete;

DM1.STREET.Active:=false;

DM1.STREET.Active:=true;

DBGrid2.Refresh;

Panel9.Visible:=true;

Panel18.Visible:=false;

GroupBox7.Top:=40;

end;

end;

procedure TForm1.TabSheet1Show(Sender: TObject);

begin

if DM1.IBTR1.InTransaction then DM1.IBTR1.Commit;

DM1.IBTR1.StartTransaction;

DM1.PART.Active:=false;

DM1.PART.Active:=true;

DBGrid1.Refresh;

Panel6.Visible:=false;

Panel17.Visible:=true;

GroupBox6.Top:=230;

end;

procedure TForm1.TabSheet2Show(Sender: TObject);

begin

if DM1.IBTR1.InTransaction then DM1.IBTR1.Commit;

DM1.IBTR1.StartTransaction;

DM1.STREET.Active:=false;

DM1.STREET.Active:=true;

DBGrid2.Refresh;

Panel9.Visible:=false;

end;

procedure TForm1.TabSheet3Show(Sender: TObject);

begin

if DM1.IBTR1.InTransaction then DM1.IBTR1.Commit;

DM1.IBTR1.StartTransaction;

DM1.OBGECT.Active:=false;

DM1.OBGECT.Active:=true;

DBGrid6.Refresh;

Panel8.Visible:=false;

end;

DM1.OBGECT.Active:=false;

DM1.OBGECT.Active:=true;

DBGrid6.Refresh;

Panel8.Visible:=false;

end;

procedure TForm1.BitBtn12Click(Sender: TObject);

begin

DM1.GEOMETRY.Cancel;

if (MessageDlg('Oi?ii aeaaeeoe caien?', mtConfirmation, [mbYes, mbNo], 0) = mrYes)

then begin

If not DM1.IBTR1.InTransaction then DM1.IBTR1.StartTransaction;

DM1.GEOMETRY.Delete;

DM1.GEOMETRY.Active:=false;

DM1.GEOMETRY.Active:=true;

DBGrid3.Refresh;

Panel10.Visible:=true;

Panel20.Visible:=false;

GroupBox8.Top:=40;

end;

end;

procedure TForm1.BitBtn30Click(Sender: TObject);

begin

If DM1.IBTR1.InTransaction then DM1.IBTR1.Commit;

DM1.GEOMETRY.Active:=false;

DM1.GEOMETRY.Active:=true;

DBGrid3.Refresh;

Panel10.Visible:=false;

end;

procedure TForm1.BitBtn29Click(Sender: TObject);

begin

If DM1.IBTR1.InTransaction then DM1.IBTR1.Rollback;

DM1.GEOMETRY.Active:=false;

DM1.GEOMETRY.Active:=true;

DBGrid3.Refresh;

Panel10.Visible:=false;

end;

procedure TForm1.BitBtn15Click(Sender: TObject);

begin

DM1.HISTORY.Cancel;

if (MessageDlg('Oi?ii aeaaeeoe caien?', mtConfirmation, [mbYes, mbNo], 0) = mrYes)

then begin

if not DM1.IBTR1.InTransaction then DM1.IBTR1.StartTransaction;

DM1.HISTORY.Delete;

DM1.HISTORY.Active:=false;

DM1.HISTORY.Active:=true;

DBGrid4.Refresh;

Panel7.Visible:=true;

Panel16.Visible:=false;

GroupBox9.Top:=40;

end;

end;

procedure TForm1.BitBtn32Click(Sender: TObject);

begin

If DM1.IBTR1.InTransaction then DM1.IBTR1.Commit;

DM1.HISTORY.Active:=false;

DM1.HISTORY.Active:=true;

DBGrid4.Refresh;

Panel7.Visible:=false;

end;

procedure TForm1.BitBtn31Click(Sender: TObject);

begin

If DM1.IBTR1.InTransaction then DM1.IBTR1.Rollback;

DM1.HISTORY.Active:=false;

DM1.HISTORY.Active:=true;

DBGrid4.Refresh;

Panel7.Visible:=false;

end;

procedure TForm1.BitBtn35Click(Sender: TObject);

begin

DM1.IBProc2.ParamByName('SFROM').Value:=edit2.Text;

DM1.IBProc2.ParamByName('STO').Value:=edit1.Text;

DM1.IBProc2.Prepare;

try

DM1.IBProc2.ExecProc;

except ShowMessage('Ia ei?aeoii aaaaaia ?ioi?iao?y')end;

StatusBar2.Panels[1].Text:='Ciaeaaii: ' + DM1.IBProc2.Parambyname('SCOUNT').AsString;

DM1.IBProc2.Cancel;

DM1.IBQ7.SQL.Clear;

DM1.IBQ7.SQL.Text:=('select * from V_HISTORY where NAME_ST=:NEW');

if not DM1.IBQ7.prepared then DM1.IBQ7.prepare;

DM1.IBQ7.ParamByName('NEW').AsString:=edit3.Text;

try

DM1.IBQ7.Open;

except ShowMessage('Ia ei?aeoii aaaaaia ?ioi?iao?y')end;

DM1.IBQ7.Active:=false;

DM1.IBQ7.Active:=true;

DBGRID2.Refresh;

Edit1.Clear;

Edit2.Clear;

Edit3.Clear;

end

else showmessage('Caiiai?ou an? iiey');

end;

procedure TForm2.TabSheet1Show(Sender: TObject);

begin

DM1.IBQ7.SQL.Clear;

DM1.IBQ7.SQL.Text:=('select * from V_HISTORY');

DM1.IBQ7.Open;

DM1.IBQ7.Active:=false;

DM1.IBQ7.Active:=true;

DBGRID2.Refresh;

DBGRID2.Columns[0].Title.Caption:='Iiia? caieno';

DBGRID2.Columns[1].Title.Caption:='Iiaa iacaa';

DBGRID2.Columns[2].Title.Caption:='Aaoa noai?aiiy';

DBGRID2.Columns[3].Title.Caption:='Iioi?ia iacaa';

end;

procedure TForm2.Button3Click(Sender: TObject);

begin

if (edit9.text <> '') then

begin

DM1.IBQ6.SQL.Clear;

DM1.IBQ6.SQL.Text:=('select * from PROC4(:NEW)');

DM1.IBQ6.ParamByName('NEW').AsString:=edit9.Text;

try

DM1.IBQ6.Open;

except ShowMessage('Ia ei?aeoii aaaaaia ?ioi?iao?y')

end;

DM1.IBQ6.Active:=false;

DM1.IBQ6.Active:=true;

DBGRID4.Refresh;

Edit9.Clear;

end

else showmessage('Aaaa?ou aai?');

end;

procedure TForm2.Button2Click(Sender: TObject);

begin

DM1.IBQ6.SQL.Clear;

DM1.IBQ6.SQL.Text:=('select G.X_ST, G.Y_ST, S.NAME_ST from STREET S, GEOMETRY G where S.ID_ST=G.ID_ST');

DM1.IBQ6.Open;

DM1.IBQ6.Active:=false;

DM1.IBQ6.Active:=true;

DBGRID4.Refresh;

end;

procedure TForm2.Button4Click(Sender: TObject);

begin

StatusBar2.Panels[1].Text:='';

DM1.IBQ7.SQL.Clear;

DM1.IBQ7.SQL.Text:=('select * from V_HISTORY');

GEOMETRYID_ST: TIntegerField;

GEOMETRYField: TStringField;

HISTORYField: TStringField;

PARTID_PART: TIntegerField;

PARTNAME_PART: TIBStringField;

DataSource2: TDataSource;

DataSource3: TDataSource;

IBProc1: TIBStoredProc;

IBProc2: TIBStoredProc;

IBQ4: TIBQuery;

IBQ5: TIBQuery;

IBQ6: TIBQuery;

DataSource4: TDataSource;

DataSource5: TDataSource;

DataSource6: TDataSource;

DataSource7: TDataSource;

IBQ7: TIBQuery;

procedure IBDB1AfterConnect(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

DM1: TDM1;

implementation

{$R *.dfm}

end.

Застосування для користувача з правами тільки на читання даних

unit BD;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ComCtrls, Grids, DBGrids, Menus, ExtCtrls, StdCtrls, Buttons,

DBCtrls, Mask;

……………

var

Form1: TForm1;

n: integer;

implementation

uses DataModule1, BD2;

{$R *.dfm}

procedure TForm1.N2Click(Sender: TObject);

begin

close;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

PC1.ActivePage:=TabSheet1;

n:=0;

BitBtn35.Align:=AlRight;

end;

procedure TForm1.N10Click(Sender: TObject);

begin

n:=1;

Form2.ShowModal;

end;

procedure TForm1.N11Click(Sender: TObject);

begin

n:=2;

Form2.ShowModal;

end;

procedure TForm1.N12Click(Sender: TObject);

begin

n:=3;

Form2.ShowModal;

end;

function TForm1.TabSheet: integer;

begin

result:=n;

end;

procedure TForm1.N13Click(Sender: TObject);

begin

n:=4;

Form2.ShowModal;

end;

procedure TForm1.N14Click(Sender: TObject);

begin

n:=5;

Form2.ShowModal;

end;

procedure TForm1.BitBtn35Click(Sender: TObject);

begin

Form1.close;

end;

end.

try

DM1.IBProc2.ExecProc;

except ShowMessage('Ia ei?aeoii aaaaaia ?ioi?iao?y')end;

StatusBar2.Panels[1].Text:='Ciaeaaii: ' + DM1.IBProc2.Parambyname('SCOUNT').AsString;

DM1.IBProc2.Cancel;

DM1.IBQ7.SQL.Clear;

DM1.IBQ7.SQL.Text:=('select * from V_HISTORY where NAME_ST=:NEW');

if not DM1.IBQ7.prepared then DM1.IBQ7.prepare;

DM1.IBQ7.ParamByName('NEW').AsString:=edit3.Text;

try

DM1.IBQ7.Open;

except ShowMessage('Ia ei?aeoii aaaaaia ?ioi?iao?y')end;

DM1.IBQ7.Active:=false;

DM1.IBQ7.Active:=true;

DBGRID2.Refresh;

Edit1.Clear;

Edit2.Clear;

Edit3.Clear;

end

else showmessage('Caiiai?ou an? iiey');

end;

procedure TForm2.TabSheet1Show(Sender: TObject);

begin

DM1.IBQ7.SQL.Clear;

DM1.IBQ7.SQL.Text:=('select * from V_HISTORY');

DM1.IBQ7.Open;

DM1.IBQ7.Active:=false;

DM1.IBQ7.Active:=true;

DBGRID2.Refresh;

DBGRID2.Columns[0].Title.Caption:='Iiia? caieno';

DBGRID2.Columns[1].Title.Caption:='Iiaa iacaa';

DBGRID2.Columns[2].Title.Caption:='Aaoa noai?aiiy';

DBGRID2.Columns[3].Title.Caption:='Iioi?ia iacaa';

end;

procedure TForm2.Button3Click(Sender: TObject);

begin

if (edit9.text <> '') then

begin

DM1.IBQ6.SQL.Clear;

DM1.IBQ6.SQL.Text:=('select * from PROC4(:NEW)');

DM1.IBQ6.ParamByName('NEW').AsString:=edit9.Text;

try

DM1.IBQ6.Open;

except ShowMessage('Ia ei?aeoii aaaaaia ?ioi?iao?y')

end;

DM1.IBQ6.Active:=false;

DM1.IBQ6.Active:=true;

DBGRID4.Refresh;

Edit9.Clear;

end

else showmessage('Aaaa?ou aai?');

end;

procedure TForm2.Button2Click(Sender: TObject);

begin

DM1.IBQ6.SQL.Clear;

DM1.IBQ6.SQL.Text:=('select G.X_ST, G.Y_ST, S.NAME_ST from STREET S, GEOMETRY G where S.ID_ST=G.ID_ST');

DM1.IBQ6.Open;

DM1.IBQ6.Active:=false;

DM1.IBQ6.Active:=true;

DBGRID4.Refresh;

end;

unit BD2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ComCtrls, DBCtrls, Grids, DBGrids, ExtCtrls, StdCtrls;

…………..

var

Form2: TForm2;

v: integer;

implementation

uses BD, DataModule1;

{$R *.dfm}

procedure TForm2.FormActivate(Sender: TObject);

begin

if (Form1.TabSheet=1) then

begin

PageControl1.ActivePage:=TabSheet6;

end

else if (Form1.TabSheet=2) then PageControl1.ActivePage:=TabSheet7

else if (Form1.TabSheet=3) then PageControl1.ActivePage:=TabSheet8

else if (Form1.TabSheet=4) then PageControl1.ActivePage:=TabSheet1

else PageControl1.ActivePage:=TabSheet2;

end;

procedure TForm2.TabSheet7Show(Sender: TObject);

begin

DM1.IBQ5.SQL.Clear;

DM1.IBQ5.SQL.Add('select * FROM proc1');

DM1.IBQ5.Open;

DM1.IBQ5.Active:=false;

DM1.IBQ5.Active:=true;

DBGRID1.Refresh;

DM1.IBQ3.Active:=false;

DM1.IBQ3.Active:=true;

DBGrid8.Refresh;

DBGRID1.Columns[0].Title.Caption:='Aoeeoy';

DBGRID1.Columns[1].Title.Caption:='Oei';

DBGRID1.Columns[2].Title.Caption:='E?eue?nou aoa?aaeu';

end;

procedure TForm2.TabSheet8Show(Sender: TObject);

begin

DM1.IBProc1.Prepare;

DM1.IBProc1.ExecProc;

StatusBar9.Panels[1].Text:='Anuiai aoa?aaeu: ' + DM1.IBProc1.Parambyname('SCOUNT').AsString;

DM1.IBProc1.Cancel;

DM1.IBQ4.Active:=false;

DM1.IBQ4.Active:=true;

DBGrid9.Refresh;

end;

procedure TForm2.Button1Click(Sender: TObject);

begin

if (edit3.text <> '') and (edit2.text <> '') and (edit1.text <> '') then

begin

DM1.IBProc2.ParamByName('SNAME').Value:=edit3.Text;

DM1.IBProc2.ParamByName('SFROM').Value:=edit2.Text;

DM1.IBProc2.ParamByName('STO').Value:=edit1.Text;

DM1.IBProc2.Prepare;

procedure TForm2.Button4Click(Sender: TObject);

begin

StatusBar2.Panels[1].Text:='';

DM1.IBQ7.SQL.Clear;

DM1.IBQ7.SQL.Text:=('select * from V_HISTORY');

DM1.IBQ7.Open;

DM1.IBQ7.Active:=false;

DM1.IBQ7.Active:=true;

DBGRID2.Refresh;

end;

procedure TForm2.TabSheet6Show(Sender: TObject);

begin

DM1.IBQ1.Active:=false;

DM1.IBQ1.Active:=true;

DM1.IBQ2.Active:=false;

DM1.IBQ2.Active:=true;

DBGrid5.Refresh;

DBGrid7.Refresh;

end;

procedure TForm2.TabSheet2Show(Sender: TObject);

begin

DM1.IBQ6.Active:=false;

DM1.IBQ6.Active:=true;

DBGrid4.Refresh;

DBGRID4.Columns[0].Title.Caption:='X';

DBGRID4.Columns[1].Title.Caption:='Y';

DBGRID4.Columns[2].Title.Caption:='Aoeeoy';

end;

end

Размещено на Allbest.ru


Подобные документы

  • Розробка інформаційної системи, що містить дані про товари, їх поставку і доставку за допомогою моделі "Сутність-зв'язок". Вибір засобів її реалізації Структурна схема реляційної бази даних та таблиці БД. Інструкція для користувача програмним продуктом.

    курсовая работа [2,4 M], добавлен 19.06.2013

  • Вибір методів та засобів створення інформаційної системи для обліку і перегляду продукції на складі. Розробка моделі даних для реляційної бази даних, прикладного програмного забезпечення. Тестування програмного додатку, виявлення можливих проблем.

    курсовая работа [1,1 M], добавлен 22.09.2015

  • Узагальнена структурна схема інформаційної системи та алгоритми її роботи. Проект бази даних. Інфологічне проектування і дослідження предметної області. Розробка інфологічної моделі предметної області. Розробка композиційної, логічної системи бази даних.

    курсовая работа [861,7 K], добавлен 21.02.2010

  • Виявлення основних сутностей предметної області. Побудова схеми реляційної бази даних. Вбудовані процедури і тригери. Опис архітектури програмної системи і концептуальної моделі бази даних, програмної реалізації та інтерфейсу користувача додатку.

    курсовая работа [4,3 M], добавлен 05.12.2012

  • Проектування бази даних предметної області "Магазин будівельних матеріалів". Аналіз сукупності вхідних і вихідних даних, шляхи удосконалення інформаційної системи обліку товару. Організація інформаційної бази, розробка логічної і фізичної моделі.

    курсовая работа [559,2 K], добавлен 09.05.2016

  • Розробка комплексу інтерактивних програмних засобів для обліку і продажу товарів в Інтернет-магазині. Консультативні та довідкові функції інформаційної системи. Створення і реалізація структурної моделі бази даних. Вимоги до ресурсів сервера і ПК клієнта.

    дипломная работа [891,6 K], добавлен 14.02.2015

  • Автоматизація роботи овочевої бази, яка дозволить значно підвищити продуктивність праці за рахунок автоматизації функцій, які раніше виконувалися вручну. Розробка канонічних uml-діаграм автоматизованої інформаційної системи у середовищі case-засобу.

    курсовая работа [2,4 M], добавлен 27.04.2013

  • Проблеми розробки сучасних баз даних. Моделювання предметної області "Адміністратор готелю". Застосування СУБД Microsoft ACCESS для реалізації системної архітектури бази даних. Результати тестування та рекомендації щодо удосконалення розробленої системи.

    курсовая работа [22,2 M], добавлен 29.04.2014

  • Забезпечення захисту інформації. Аналіз системи інформаційної безпеки ТОВ "Ясенсвіт", розробка моделі системи. Запобігання витоку, розкраданню, спотворенню, підробці інформації. Дослідження та оцінка ефективності системи інформаційної безпеки організації.

    курсовая работа [1,6 M], добавлен 27.04.2014

  • Розробка елементів інформаційної системи для контролю експлуатації автотранспорту. Розробка програмного забезпечення в середовищі програмування Delphi з використанням пакету компонентів DevelopmentExpress та сервера баз даних під керуванням FireBird 2.1.

    дипломная работа [4,3 M], добавлен 24.10.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.