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