Вход

Создание системы поддержки распределительной БД

Рекомендуемая категория для самостоятельной подготовки:
Дипломная работа*
Код 153173
Дата создания 2007
Страниц 70
Источников 6
Мы сможем обработать ваш заказ (!) 29 марта в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
2 270руб.
КУПИТЬ

Содержание

Введение
Глава 1. Разработка базы данных
1.1. Сведения о базах данных
1.1.1 Классификация баз данных
1.1.2. Структурные элементы базы данных
1.2. Виды моделей данных
1.3. Понятие информационного объекта
1.4. Нормализация отношений
1.4.1 Понятие нормализации отношений
1.5. Типы связей
1.6. Модели данных
1.6.1. Сведенья о моделях данных
1.6.2 Проектирование модели данных
1.6.3 Назначение модели
1.6.4 Элементы модели
Глава 2. Разработка программы
2.1. Постановка задачи
2.2. Построение инфологической модели данных
2.3. Построение датологической модели данных
2.4. Основные принципы работы программы
2.5. Разработка интерфейса программы
2.6. Средства работы с базами данных
2.7. Системные требования программы
Заключение
Список литературы
Приложение 1. Руководство пользователя
Приложение 2. Руководство программиста
Приложение 3. Текст программы

Фрагмент работы для ознакомления

В этом случае программист должен обеспечить:
- организацию связи между таблицами;
- установку значения поля связи подчиненной таблицы (это может также выполняться автоматически);
- контроль (запрет) редактирования полей связи;
- организацию (запрет) каскадного удаления записей.
Например, в случае удаления записи из главной таблицы программист должен проверить наличие соответствующих записей в подчиненной таблице. Если такие записи есть, то необходимо удалить и их или, наоборот, запретить удаление записей из обеих таблиц. И в том, и в другом случае пользователю должно быть выдано предупреждение.
Механизм транзакций
Информация БД в любой момент времени должна быть целостной и непротиворечивой. Одним из путей обеспечения этого является использование механизма транзакций.
Транзакция представляет собой выполнение последовательности операций. При этом возможны две ситуации.
- Успешно завершены все операции. В этом случае транзакция считается успешной, и все изменения в БД, которые были произведены в рамках транзакции отдельными операциями, подтверждаются. В результате БД переходит из одного целостного состояния в другое.
- Неудачно завершена хотя бы одна операция. При этом вся транзакция считается неуспешной, и результаты выполнения всех операций (даже успешно выполненных) отменяются. В результате происходит возврат БД в состояние, в котором она находилась до начала транзакции.
Таким образом, успешная транзакция переводит БД из одного целостного состояния в другое. Использование механизма транзакций необходимо:
- при выполнении последовательности взаимосвязанных операций с БД;
- при многопользовательском доступе к БД.
Транзакция может быть неявной или явной. Неявная транзакция стартует автоматически, а по завершении также автоматически подтверждается или отменяется. Явной транзакцией управляет программист с использованием компонента Database и/или средств SQL.
Часто в транзакцию объединяются операции над несколькими таблицами, когда производятся действия по внесению в разные таблицы взаимосвязанных изменений. Пусть осуществляется перенос записей из одной таблицы в другую. Если запись сначала удаляется из первой таблицы, а затем заносится во вторую таблицу, то при сбое, например из-за перерыва в энергопитании компьютера, возможна ситуация, когда запись уже удалена, но во вторую таблицу не попала. Если запись сначала заносится во вторую таблицу, а потом удаляется из первой таблицы, то при сбое возможна ситуация, когда запись будет находиться в двух таблицах. В обоих случаях имеет место нарушение целостности и непротиворечивости БД.
Для предотвращения подобной ситуации операции удаления записи из одной таблицы и занесения ее в другую таблицу объединяются в одну транзакцию. Выполнение этой транзакции гарантирует, что при любом ее результате целостность БД нарушена не будет.
Еще одним примером, демонстрирующим необходимость применения механизма транзакций, является складской учет товара. При поступлении товара на склад в таблицу движения товара заносится запись с данными о названии, количестве товара и дате его поступления. Затем в таблице склада соответственно количеству поступившего товара увеличивается наличное количества товара, новое значение может быть не занесено в соответствующую запись, в результате чего будет нарушена целостность БД, и она будет содержать некорректные значения. Такая ситуация возможна, например, в случае многопользовательского доступа к БД при редактировании этой записи другим приложением. Поэтому в случае невозможности внести изменения в наличное количество товара должно блокироваться и добавление новой записи в таблицу движения товара.
Для реализации механизма транзакций СУБД предоставляют соответствующие средства.
Бизнес-правила
Бизнес-правила представляют собой механизмы управления БД и предназначены для поддержания БД в целостном состоянии, а также для выполнения ряда других действий, например, накапливания статистики работы с БД.
В данном контексте бизнес-правила являются просто правилами управления БД и не имеют отношения к бизнесу как предпринимательству.
В первую очередь бизнес-правила реализуют следующие ограничения БД:
- задание допустимого диапазона значений;
- задание значения по умолчанию;
- требование уникальности значения;
- запрет пустого значения;
- ограничения ссылочной целостности.
Бизнес-правила можно реализовывать как на физическом, так и на программном уровнях. В первом случае эти правила (например, ограничения ссылочной целостности для связанных таблиц) задаются при создании таблиц и входят в структуру БД, В дальнейшей работе нельзя нарушить или обойти ограничение, заданное на физическом уровне.
Вместо заданных на физическом уровне бизнес-правил или в дополнение к ним можно определить бизнес-правила на программном уровне. Действие этих правил распространяется только на приложение, в котором они реализованы. Для программирования в приложении бизнес-правил используются компоненты и предоставляемые ими средства. Достоинство такого подхода заключается в легкости изменения бизнес-правил и определении правил "своего" приложения. Недостатком является снижение безопасности БД, связанное с тем, что каждое приложение может устанавливать свои правила управления БД.
При работе с удаленными БД в архитектуре "клиент-сервер" бизнес-правила можно реализовывать также на сервере.
Словарь данных
Словарь данных представляет собой совокупность определений БД и атрибутов. Словарь данных позволяет сформировать и сохранить характеристики, которые в дальнейшем можно использовать для описания БД.
Использование словаря данных позволяет:
- ускорить процесс создания БД;
- облегчить изменение характеристик БД;
- придать единообразный вид визуальным компонентам приложения.
Определение БД является специализированной БД, которая описывает структуру Зазы, но не содержит данных. Это описание структуры можно использовать для создания других БД.
Атрибуты представляют собой совокупности характеристик отдельных полей. Заданные через атрибуты характеристики поля при выполнении приложения устанавливаются в качестве значений соответствующих свойств визуальных компонентов, которые отображают значения поля, например, DBGrid или DBText. Приведем некоторые наиболее распространенные характеристики полей (они же свойства визуальных компонентов):
- Alignment — выравнивание;
- DisplayLabel — заголовок столбца (сетки DBGrid);
- Readonly — недоступность поля для редактирования (поле предназначено только для чтения);
- Required — требование обязательного ввода значения;
- Visible — видимость;
- DisplayFormat — формат отображаемого значения;
- MinValue — минимальное значение;
- MaxValue — максимальное значение.
Для работы со словарем данных удобно использовать программу SQL Explorer.
2.7. Системные требования программы
Для работы программы необходима установленная на компьютере пользователя операционная система Windows версии не ниже 95. Также для работы программы необходима установка на компьютере пользователя BDE (Borland Database Engine – процессор баз данных фирмы Borland). Данный процессор предоставляет развитый интерфейс API для взаимодействия с базами данных.
Для нормальной работы необходимо 128 Мб оперативной памяти, требования к свободному месту на жестком диске следующие: необходимо около 20 Мб свободного места для установки программы и процессора BDE, т.к. необходимость работы с базами данных подразумевает зависимость объема данных от количества записей, на 10 записей требуется от 16 до 20 Кб памяти на жестком диске. Заключение
В данном проекте была разработана программа для работы с распределенной базой данных.
Программа была разработана в среде Borland Delphi 7 с использованием процессора баз данных Borland Database Engine.
Программа обеспечивает функционирование нескольких экземпляров одной и той же базы данных на физически удаленных компьютерах. Связь между удаленными компьютерами для синхронизации баз данных должна обеспечиваться посредством Dial-Up интернет-соединения.
Список литературы
Богумирский Б. «Эффективная работа на IBM PC в среде Windows 95» СПб, «Питер», 1997.
Вейскас Д. «Эффективная работа с Microsoft Access 7.0» «Microsoft Press», 1997.
Вудкок Дж., Янг М. «Эффективная работа с Microsoft Office 95» «Microsoft Press».
Горев А., Макашарипов С., «Эффективная работа с СУБД» СПб, «Питер», 1997.
Кириллов В.В. «Основы проектирования реляционных баз данных.» Учебное пособие. - СПб.: ИТМО, 1994.
Хомоненко А., Гофман В., Мещеряков Е., Никифоров В. «Delphi 7» СПб, «БХВ-Петербург», 2005.
Приложение 1. Руководство пользователя
При запуске программы пользователь видит рабочее окно программы:
Рис. 1. Рабочее окно программы.
Пользователь может непосредственно работать с данными: добавлять, редактировать или удалять.
Для удобства работы с базой данных есть кнопки, расположенные на рабочем окне программы.
Рис. 2. Кнопки для работы с базой данных
Назначение кнопок следующее:
- переход к первой записи
- переход к предыдущей записи
- переход к следующей записи
- переход к последней записи
- вставка новой записи
- удаление записи
- редактирование записи
- сохранить изменения
- отмена внесенных изменений
- обновить данные таблицы
Для удобства и наглядности работы с данными пользователь может выполнить сортировку данных по различным полям:
Рис. 3. Кнопки для сортировки данных
Для работы в программе предусмотрены следующие пункты меню:
«Файл» -> «Выход»: выход из программы.
«Синхронизация» -> «Чтение данных из сети»: загрузка из сети файла с изменениями.
«Синхронизация» -> «Запись данных в сеть»: загрузка в сеть файла с изменениями.
«Синхронизация» -> «Синхронизация данных»: синхронизирует данные локальной базы данных с данными удаленного компьютера.
«Синхронизация» -> «Очистить данные»: очистка данных для синхронизации.
«Настройки» -> «Путь к сетевой базе»: настройка пути к сетевой базе данных.
Рис. 4. Настройка пути к сетевой базе данных

«?» -> «О программе»: вывод информации о программе.
Рис. 5. Информация о программе.
Рис. 6. Меню программы
Пользователь также может проверить интернет-соединение нажав соответствующую кнопку.
Рис. 7. Проверка интернет-соединения.
Приложение 2. Руководство программиста
Программа была выполнена в среде Borland Delphi 7. Delphi – это мощная система, предназначенная для быстрой разработки приложений самого разного характера и назначения.
Система Delphi 7 поставляется в трех версиях: Enterprise, Professional и Personal. Версии различаются своими возможностями, наибольшие возможности предоставляет версия Enterprise.
Delphi не имеет своего формата таблиц, но поддерживает как собственные два типа локальных таблиц: dBase и Paradox. Каждая из этих таблиц имеет свои особенности.
Таблицы dBase являются одним из первых появившихся форматов таблиц для персональных компьютеров и поддерживаются многими системами, которые связаны с разработкой и обслуживанием приложений, работающих с базами данных.
Основные достоинства таблиц dBase:
- простота использования;
- совместимость с большим числом приложений;
К недостаткам таблиц dBase отностится то, что они не поддерживают автоматическое использование парольной защиты и контроль целостности связей, поэтому программист должен кодировать эти действия самостоятельно.
Таблицы Paradox являются достаточно развитыми и удобными для создания баз данных. К достоинствам этих таблиц можно отнести:
- большое количество типов полей для предоставления данных различных типов;
- поддержка целостности данных;
- организация проверки вводимых данных;
- поддержка парольной защиты таблиц;
Определенным недостатком таблиц Paradox является наличие относительно большого количества типов файлов, требуемых для хранения содержащихся в таблице данных. При копировании или перемещении какой-либо таблицы из одного каталога в другой необходимо обеспечить копирование или перемещение всех файлов, относящихся к данной таблице. Файлы таблиц Paradox имеют следующие расширения:
db – таблица с данными;
mb – BLOB-данные;
px – главный индекс;
xg* и yg* - вторичные индексы;
val – параметры для проверки данных и целостности ссылок;
tv и fam – форматы вывода таблиц в программе Database Desktop;
Следует учесть, что данные файлы создаются только если в них есть необходимость. Конкретная таблица может не иметь всех приведенных файлов.
Учитывая приведенные особенности, при проектировании программы был использован формат Paradox.
В таблице «People» хранятся основные данные о пользователях.
Рис. 1. Проектирование таблицы для хранения данных в среде Database Desktop.
В таблице «Temp_people» хранятся данные об изменениях сделанных в основной таблице. Данный файл предназначен для синхронизации данных.
Рис. 2. Проектирование таблицы для хранения данных в среде Database Desktop.
Список файлов используемых программой:
Unit1.dfm, Unit2.dfm, Unit3.dfm, Unit1.dcu, Unit2.dcu, Unit3.dcu, Unit1.ddp, Unit2.ddp, Project_base.dpr, Project_base.res – файлы, используемые при компилировании проекта;
Unit1.pas, Unit2.pas, Unit3.pas – файлы с исходным кодом программы;
Project_base.exe – исполняемый файл;
Setup.ini – файл с настройками программы;
Приложение 3. Текст программы
Файл «Project_base.dpr»
program Project_base;
uses
Forms,
Unit1 in 'Unit1.pas' {FormMain},
Unit2 in 'Unit2.pas' {DM: TDataModule},
Unit3 in 'Unit3.pas' {FormAbout};
{$R *.res}
begin
Application.Initialize;
Application.Title := 'База данных';
Application.CreateForm(TDM, DM);
Application.CreateForm(TFormMain, FormMain);
Application.CreateForm(TFormAbout, FormAbout);
Application.Run;
end.
Файл «Unit1.pas»
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, WinInet, Grids, DBGrids, Menus, IniFiles, Buttons,
ExtCtrls, DBCtrls;
type
TFormMain = class(TForm)
Button1: TButton;
DBGrid1: TDBGrid;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
BitBtn1: TBitBtn;
DBNavigator1: TDBNavigator;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
GroupSort: TRadioGroup;
ButSort: TButton;
N10: TMenuItem;
N11: TMenuItem;
procedure Button1Click(Sender: TObject);
function GetInetFile(const fileURL, FileName: String): boolean;
function SaveInetFile(const fileURL, FileName: String): boolean;
procedure N6Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure ButSortClick(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormMain: TFormMain;
implementation
{$R *.dfm}
Uses Unit2, Unit3;
procedure TFormMain.Button1Click(Sender: TObject);
begin
if InternetAutoDial (INTERNET_AUTODIAL_FORCE_ONLINE,0) = True then
ShowMessage('OK')
else
ShowMessage('Bad');
end;
function TFormMain.GetInetFile(const fileURL, FileName: String): boolean;
const BufferSize = 1024;
var
hSession, hURL: HInternet;
Buffer: array[1..BufferSize] of Byte;
BufferLen: DWORD;
f: File;
sAppName: string;
begin
Result:=False;
sAppName := ExtractFileName(Application.ExeName);
hSession := InternetOpen(PChar(sAppName),
INTERNET_OPEN_TYPE_PRECONFIG,
nil, nil, 0);
try
hURL := InternetOpenURL(hSession,
PChar(fileURL),
nil,0,0,0);
try
AssignFile(f, FileName);
Rewrite(f,1);
repeat
InternetReadFile(hURL, @Buffer,
SizeOf(Buffer), BufferLen);
BlockWrite(f, Buffer, BufferLen)
until BufferLen = 0;
CloseFile(f);
Result:=True;
finally
InternetCloseHandle(hURL)
end
finally
InternetCloseHandle(hSession)
end
end;
function TFormMain.SaveInetFile(const fileURL, FileName: String): boolean;
const BufferSize = 1024;
var
hSession, hURL: HInternet;
Buffer: array[1..BufferSize] of Byte;
BufferLen: DWORD;
f: File;
sAppName: string;
begin
Result:=False;
sAppName := ExtractFileName(Application.ExeName);
hSession := InternetOpen(PChar(sAppName),
INTERNET_OPEN_TYPE_PRECONFIG,
nil, nil, 0);
try
hURL := InternetOpenURL(hSession,
PChar(fileURL),
nil,0,0,0);
try
AssignFile(f, FileName);
Rewrite(f,1);
repeat
BlockRead(f, Buffer, BufferLen);
InternetWriteFile(hURL, @Buffer,
SizeOf(Buffer), BufferLen);
until BufferLen = 0;
CloseFile(f);
Result:=True;
finally
InternetCloseHandle(hURL)
end
finally
InternetCloseHandle(hSession)
end
end;
procedure TFormMain.N6Click(Sender: TObject);
var iniF : TIniFile;
begin
URLBaseInet := InputBox('Адрес сетевой базы данных','Введите URL сетевой базы данных',URLBaseInet);
try
try
iniF := TIniFile.Create(GetCurrentDir() + '\setup.ini');
iniF.WriteString('URLINET','InetPath',URLBaseInet);
finally
iniF.Free;
end;
except
ShowMessage('Ошибка при работе с файлом конфигурации');
end;
end;
procedure TFormMain.BitBtn1Click(Sender: TObject);
begin
FormMain.Close;
end;
procedure TFormMain.N2Click(Sender: TObject);
begin
FormMain.Close;
end;
procedure TFormMain.N8Click(Sender: TObject);
begin
FormAbout.ShowModal;
end;
procedure TFormMain.ButSortClick(Sender: TObject);
var i: integer;
begin
i := GroupSort.ItemIndex;
case i of
0: DM.TabPeople.IndexName := 'IndId';
1: DM.TabPeople.IndexName := 'IndName';
2: DM.TabPeople.IndexName := 'IndSurName';
3: DM.TabPeople.IndexName := 'IndDate';
end;
end;
procedure TFormMain.N10Click(Sender: TObject);
var i:integer;
begin
DM.TabChange.Open;
DM.TabChange.First;
for i:=0 to DM.TabChange.RecordCount-1 do
begin
if DM.TabChangeOperation.Value = 'Insert' then
begin
DM.TabPeople.Insert;
DM.TabPeopleName.Value := DM.TabChangeName.Value;
DM.TabPeopleSurName.Value := DM.TabChangeSurName.Value;
DM.TabPeopleDate_Birth.Value := DM.TabChangeDate_Birth.Value;
DM.TabPeopleAddress.Value := DM.TabChangeAddress.Value;
DM.TabPeoplePhone.Value := DM.TabChangePhone.Value;
DM.TabPeopleComment.Value := DM.TabChangeComment.Value;
DM.TabPeople.Post;
end;
if DM.TabChangeOperation.Value = 'Edit' then
begin
DM.TabPeople.Locate('Id',DM.TabChangeIdPeople.Value,[]);
DM.TabPeople.Edit;
DM.TabPeopleName.Value := DM.TabChangeName.Value;
DM.TabPeopleSurName.Value := DM.TabChangeSurName.Value;
DM.TabPeopleDate_Birth.Value := DM.TabChangeDate_Birth.Value;
DM.TabPeopleAddress.Value := DM.TabChangeAddress.Value;
DM.TabPeoplePhone.Value := DM.TabChangePhone.Value;
DM.TabPeopleComment.Value := DM.TabChangeComment.Value;
DM.TabPeople.Post;
end;
if DM.TabChangeOperation.Value = 'Delete' then
begin
DM.TabPeople.Locate('Id',DM.TabChangeIdPeople.Value,[]);
DM.TabPeople.Delete;
end;
DM.TabChange.Next;
end;
DM.TabChange.Close;
end;
procedure TFormMain.N11Click(Sender: TObject);
var i:integer;
begin
DM.TabChange.Open;
DM.TabChange.Last;
for i:=0 to DM.TabChange.RecordCount-1 do
begin
DM.TabChange.Delete;
DM.TabChange.Last;
end;
DM.TabChange.Close;
end;
procedure TFormMain.N9Click(Sender: TObject);
var FileOnNet, LocalFileName: string;
begin
FileOnNet := URLBaseInet;
LocalFileName := GetCurrentDir() + '\Base'+'\Temp_people.DB';
if InternetAutoDial (INTERNET_AUTODIAL_FORCE_ONLINE,0) = True then
begin
if SaveInetFile(FileOnNet,LocalFileName)=True then
ShowMessage('Загрузка файла выполнена')
else
ShowMessage('При загрузке файла произошла ошибка')
end
else
ShowMessage('Нет соединения с Интернет');
end;
procedure TFormMain.N4Click(Sender: TObject);
var FileOnNet, LocalFileName: string;
begin
FileOnNet := URLBaseInet;
LocalFileName := GetCurrentDir() + '\Base'+'\Temp_people.DB';
if InternetAutoDial (INTERNET_AUTODIAL_FORCE_ONLINE,0) = True then
begin
if GetInetFile(FileOnNet,LocalFileName)=True then
ShowMessage('Загрузка файла выполнена ')
else
ShowMessage('При загрузке файла произошла ошибка')
end
else
ShowMessage('Нет соединения с Интернет');
end;
end.
Файл «Unit2.pas»
unit Unit2;
interface
uses
SysUtils, Classes, DB, DBTables, IniFiles, Dialogs, WinInet;
type
TDM = class(TDataModule)
DSPeople: TDataSource;
TabPeople: TTable;
TabPeopleSurName: TStringField;
TabPeopleName: TStringField;
TabPeopleDate_Birth: TDateField;
TabPeopleAddress: TStringField;
TabPeoplePhone: TStringField;
TabPeopleComment: TStringField;
DSChange: TDataSource;
TabChange: TTable;
TabChangeOperation: TStringField;
TabChangeIdPeople: TIntegerField;
TabChangeSurName: TStringField;
TabChangeName: TStringField;
TabChangeDate_Birth: TDateField;
TabChangeAddress: TStringField;
TabChangePhone: TStringField;
TabChangeComment: TStringField;
DSInet: TDataSource;
TabInet: TTable;
TabInetId: TIntegerField;
TabInetSurName: TStringField;
TabInetName: TStringField;
TabInetDate_Birth: TDateField;
TabInetAddress: TStringField;
TabInetPhone: TStringField;
TabInetComment: TStringField;
TabPeopleId: TAutoIncField;
procedure DataModuleCreate(Sender: TObject);
procedure TabPeopleAfterInsert(DataSet: TDataSet);
procedure TabPeopleAfterPost(DataSet: TDataSet);
procedure TabPeopleBeforeDelete(DataSet: TDataSet);
procedure TabPeopleAfterEdit(DataSet: TDataSet);
private
{ Private declarations }
public
{ Public declarations }
end;
var
DM: TDM;
var URLBaseInet, Operation : string;
IsInsert : boolean;
implementation
{$R *.dfm}
procedure TDM.DataModuleCreate(Sender: TObject);
var dir : string;
iniF : TIniFile;
begin
dir := GetCurrentDir;
TabPeople.DatabaseName := dir + '\Base';
TabChange.DatabaseName := dir + '\Base';
TabPeople.Open;
try
try
iniF := TIniFile.Create(GetCurrentDir() +'\setup.ini');
URLBaseInet := iniF.ReadString('URLINET','InetPath','');
finally
iniF.Free;
end;
except
ShowMessage('Ошибка при работе с файлом конфигурации');
URLBaseInet := '';
end;
end;
procedure TDM.TabPeopleAfterInsert(DataSet: TDataSet);
begin
Operation := 'Insert';
IsInsert := True;
end;
procedure TDM.TabPeopleAfterPost(DataSet: TDataSet);
var New_Id : integer;
New_Date_Birth, New_SurName, New_Name, New_Address, New_Phone, New_Comment : string;
begin
if IsInsert = True then
begin
TabChange.Open;
TabChange.Insert;
New_Id := DM.TabPeopleId.Value;
New_Date_Birth := DateToStr(DM.TabPeopleDate_Birth.Value);
New_SurName := DM.TabPeopleSurName.Value;
New_Name := DM.TabPeopleName.Value;
New_Address := DM.TabPeopleAddress.Value;
New_Phone := DM.TabPeoplePhone.Value;
New_Comment := DM.TabPeopleComment.Value;
DM.TabChangeOperation.Value := Operation;
DM.TabChangeIdPeople.Value := New_Id;
DM.TabChangeDate_Birth.Value := StrToDate(New_Date_Birth);
DM.TabChangeSurName.Value := New_SurName;
DM.TabChangeName.Value := New_Name;
DM.TabChangeAddress.Value := New_Address;
DM.TabChangePhone.Value := New_Phone;
DM.TabChangeComment.Value := New_Comment;
TabChange.Post;
TabChange.Close;
IsInsert := false;
end;
end;
procedure TDM.TabPeopleBeforeDelete(DataSet: TDataSet);
var New_Id : integer;
Operation : string;
begin
TabChange.Open;
TabChange.Insert;
Operation := 'Delete';
New_Id := DM.TabPeopleId.Value;
DM.TabChangeOperation.Value := Operation;
DM.TabChangeIdPeople.Value := New_Id;
TabChange.Post;
TabChange.Close;
end;
procedure TDM.TabPeopleAfterEdit(DataSet: TDataSet);
begin
Operation := 'Edit';
IsInsert := True;
end;
end.
Файл «Unit3.pas»
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TFormAbout = class(TForm)
BitBtn1: TBitBtn;
Label1: TLabel;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormAbout: TFormAbout;
implementation
{$R *.dfm}
procedure TFormAbout.BitBtn1Click(Sender: TObject);
begin
FormAbout.Close;
end;
end.
50
- Идентификационный номер
- Фамилия
- Имя
- Дата рождения
- Адрес
- Телефон
- Комментарии
Пользователи

Список литературы [ всего 6]


Список литературы
1.Богумирский Б. «Эффективная работа на IBM PC в среде Windows 95» СПб, «Питер», 1997.
2.Вейскас Д. «Эффективная работа с Microsoft Access 7.0» «Microsoft Press», 1997.
3.Вудкок Дж., Янг М. «Эффективная работа с Microsoft Office 95» «Microsoft Press».
4.Горев А., Макашарипов С., «Эффективная работа с СУБД» СПб, «Питер», 1997.
5.Кириллов В.В. «Основы проектирования реляционных баз данных.» Учебное пособие. - СПб.: ИТМО, 1994.
6.Хомоненко А., Гофман В., Мещеряков Е., Никифоров В. «Delphi 7» СПб, «БХВ-Петербург», 2005.
Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00504
© Рефератбанк, 2002 - 2024