Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Реляційна база данних трудової книжки

Тип Реферат
Предмет Информатика и программирование
Просмотров
1161
Размер файла
125 б
Поделиться

Ознакомительный фрагмент работы:

Реляційна база данних трудової книжки

Міністерство освіти і науки України

ФАКУЛЬТЕТ ІНФОРМАТИКИ

КАФЕДРА

Реєстраційний №________

Дата ___________________

КУРСОВА РОБОТА

Тема:

Реляційна база данних трудової книжки

Рекомендована до захисту

“____” __________ 2008р.

Робота захищена

“____” __________ 2008р.

з оцінкою

_____________________

Підписи членів комісії


Зміст

Вступ

Теорія

Практична частина

Висновки

Література


Вступ

Головною задачею нашою роботи є створення програми роботи реляційної БД трудової книжки, причому в якості мови реалізації була вибрана мова програмування С++.

Що стосується загальної термінології реляційного підходу, ми будемо активно користуватися відповідними термінами. До таких термінів ставляться назви реляційних операцій: селекція, проекція, з'єднання; назви теоретико-множинних операцій: об'єднання, перетинання, різниця й т.д.


ТЕОРІЯ

Основні цілі розроблювачів БД можна сформулювати в такий спосіб:

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

2. забезпечити різноманіття припустимих способів використання СУБД, включаючи програмувальні транзакції, діалогові транзакції й генерацію звітів;

3. підтримувати динамічно змінюване середовище баз даних, у якій відносини, індекси, подання, транзакції й інші об'єкти можуть легко додаватися й знищуватися без припинення нормального функціонування системи;

4. забезпечити можливість паралельної роботи з однією базою даних багатьох користувачів з допущенням паралельної модифікації об'єктів бази даних при наявності необхідних засобів захисту цілісності бази даних;

5. забезпечити засобу відновлення погодженого стану баз даних після різного роду збоїв апаратури або програмне забезпечення;

6. забезпечити гнучкий механізм, що дозволяє визначати різні подання збережених даних й обмежувати цими поданнями доступ користувачів до бази даних по вибірці й модифікації на основі механізму авторизації;

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

Насамперед відзначимо, що в переважній більшості поставлені цілі при розробці System R були досягнуті. Розглянемо тепер, якими засобами були досягнуті ці мети і як більш точно можна інтерпретувати їх у контексті System R.

Основою System R є реляційна мова SQL. Іноді його називають мовою запитів або мовою маніпулювання даними, але насправді його можливості набагато ширше. Засобами SQL (з відповідною системною підтримкою) вирішуються багато хто з поставлених цілей. Мова SQL включає засобу динамічної компіляції запитів, на основі чого можлива побудова діалогових систем обробки запитів. Допускається динамічна параметризація статично відкомпільованих запитів, у результаті чого можливе побудова ефективних (не потребуючої динамічної компіляції) діалогових систем зі стандартними наборами (параметризуємих) запитів.

Засобами SQL визначаються всі доступні користувачеві об'єкти баз даних: таблиці, індекси, подання. В System R були й засобу для знищення будь-якого такого об'єкта. Відповідні оператори мови можуть виконуватися в будь-який момент, і можливість виконання операції цим користувачем залежить від раніше наданих йому прав.

Що стосується цілісності баз даних, то в System R під цілісним станом бази даних розуміється стан, що задовольняє набору даних предикатів, що зберігають при базі, цілісності. Ці предикати, називані в System R умовами цілісності (assertions), задаються також засобами мови SQL. Будь-яка пропозиція мови виконується в межах деякої транзакції - неподільної в змісті стану бази дані послідовності операторів мови. Неподільність означає, що всі зміни, зроблені в межах однієї транзакції, або цілком відображаються в стані бази даних, або повністю в ньому відсутні. Остання можливість виникає при відкоті транзакції, що може відбутися з ініціативи користувача (при виконанні відповідного оператора SQL) або з ініціативи системи. Однієї із причин відкоту транзакції з ініціативи системи є саме порушення цілісності бази даних у результаті дій даної транзакції (інші можливі умови відкоту транзакції з ініціативи системи ми розглянемо пізніше). Мова SQL System R містить засіб установки так званих крапок збереження (savepoint). При ініциируємом користувачем відкоті транзакції можна вказати номер крапки збереження, вище якої відкіт не поширюється. Ініциіруємий системою відкіт транзакції виробляється до найближчої крапки збереження, у якій умова, що викликала відкіт, уже відсутній. Зокрема, відкіт, ініційований через порушення умови цілісності, виробляється до найближчої крапки збереження, у якій умови цілісності дотримані. (Помітимо, що засобу установки крапок збереження відсутні в комерційних розширеннях System R.)

Природно, що для реального виконання відкоту транзакції необхідне запам'ятовування деякої інформації про виконання транзакції. В System R для цих й інших цілей використається спеціальний набір даних - журнал, у який містяться записи об всіх змініючих стан бази даних операціях всіх транзакцій. При відкоті транзакції відбувається процес зворотного виконання транзакції (undo), у ході якого у зворотному порядку виконуються всі зміни, зафіксовані в журналі.

У мові SQL є засіб визначення так званих умовних впливів (triggers), що дозволяють автоматично підтримувати цілісність бази даних при модифікаціях її об'єктів. В System R умовний вплив - це каталогізована операція модифікації, для якої задане умова її автоматичного виконання. Особливо істотна наявність такого апарата у зв'язку з наявністю розглянутих нижче подань бази даних, який може бути обмежений доступ до бази даних для ряду користувачів. Можлива ситуація, коли такі користувачі просто не можуть дотримувати цілісності бази даних без автоматичного виконання умовних впливів, оскільки вони "не бачать" всієї бази даних й, зокрема, не можуть представити всіх обмежень її цілісності. Помітимо, що за винятком ранніх публікацій по System R реалізація механізму умовних впливів ніде не описувалася, хоча в принципі підходи до реалізації досить зрозумілі. Цей механізм не реалізований у комерційних системах, що виникли на базі System R. Видимо, це пов'язане з виникаючими додатковими непередбаченими для користувачів накладними витратами при виконанні транзакцій. (Помітимо, що деякі еквівалентні по можливостях засобу реалізовані, наприклад, у СУБД Ingres й Oracle, а тепер обговорюється можливість включення подібних механізмів у наступний стандарт мови SQL - SQL-3.)

Мова SQL містить засобу визначення подань. Подання - іменований запит, що зберігає це в базі даних, на вибірку даних (з однієї або декількох таблиць). Оскільки SQL - це реляционный мова, то результатом виконання будь-якого запиту на вибірку є таблиця, і тому концептуально можна ставитися до будь-якого подання як до таблиці (при визначенні подання можна, зокрема, привласнити імена полям цієї таблиці). У мові допускається використання раніше певних подань практично скрізь, де допускається використання таблиць (з деякими обмеженнями із приводу можливостей модифікації бази даних через подання). Наявність можливості визначати подання в сукупності з розвитий системою авторизації дозволяє обмежити доступ деяких користувачів до бази даних виділеним набором подань.

Авторизація доступу до бази даних заснована також на засобах SQL. При створенні будь-якого об'єкта бази даних виконуючу цю операцію користувач стає повновладним власником цього об'єкта, тобто може виконувати стосовно цього об'єкта будь-яку функцію з визначеного набору. Далі цей користувач може виконати оператор SQL, що робить передачу всіх його прав на цей об'єкт (або їхньої підмножини) будь-якому іншому користувачеві. Зокрема, цьому користувачеві може бути передане право на передачу всіх переданих йому прав (або їхньої частини) третьому користувачеві й т.д. Одним із прав користувача стосовно об'єкта є право на вилучення в інших користувачів всіх або деяких прав, які раніше їм були передані. Ця операція поширюється транзитивно на всіх подальших спадкоємців цих прав.

Наявність у мові засобів визначення подань й авторизації в принципі дозволяє обійтися при експлуатації System R без традиційного адміністратора баз даних, оскільки практично всі системні дії виробляються на основі засобів SQL. Проте якщо організаційно адміністратор баз даних потрібно, то його робота досить спрощується за рахунок уніфікованого набору засобів керування. Крім того, в System R каталоги баз даних підтримуються також у вигляді таблиць, і до них застосовані всі запити мови SQL. Помітимо, що в комерційних СУБД з'явився ряд додаткових утиліт, не пов'язаних з мовою SQL (наприклад, утиліти збору статистики або масове завантаження бази даних), і в цих системах, видимо, без адміністратора бази даних не обійтися.

Що стосується забезпечення паралельної роботи багатьох користувачів з однією базою даних, те основний підхід System R полягає в тому, що користувач не зобов'язаний знати про наявність інших, конкуруючих з ним за доступ до бази даних, користувачів, тобто система відповідальна за забезпечення ізольованості користувачів з гарантією їхнього взаємного невпливу в межах транзакцій. Із цього треба, по-перше, що в інтерфейсі користувача із системою (тобто в мові SQL) не повинне бути засобів регулювання взаємодій з іншими користувачами й, по-друге, що система повинна забезпечити автоматичну сериализацию набору транзакцій, тобто забезпечити режим виконання цього набору транзакцій, еквівалентний за кінцевим результатом деякому послідовному виконанню цих транзакцій. Ця проблема вирішується в System R за рахунок автоматичного виконання синхронизационных захватів (багато хто воліють використати термін "блокування") стосовно всім измененяемым об'єктам бази даних. Є ряд тонкостей, пов'язаних з такою синхронізацією, на яких ми зупинимося нижче.

Одним з основних вимог до СУБД, взагалі, і до System R, зокрема, є забезпечення надійності баз даних стосовно різного роду збоям. До таких збоїв можуть ставитися програмні помилки прикладного й системного рівня, збої процесора, поломки зовнішніх носіїв і т.д. Зокрема, до одному з видів збоїв можна віднести згадувані вище порушення цілісності бази даних й автоматичний, ініциіруємий системою відкіт транзакції - це системний засіб відновлення бази даних після збоїв такого роду. Як ми відзначали, відновлення відбувається шляхом зворотного виконання транзакції на основі інформації про внесені нею змінах, зафіксованих у журналі. На інформації журналу засноване відновлення бази даних і після збоїв іншого роду. Керування журнализацией і відновленням в System R досить цікаво, застосовувані методи в ряді випадків відрізняються від методів, використовуваних в інших СУБД.

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

Структурна організація System R цілком погодиться з поставленими при її розробці цілями й обраними рішеннями. Основними структурними компонентами System R є система керування реляционной пам'яттю (Relational Storage System - RSS) і компілятор запитів мови SQL. RSS забезпечує інтерфейс досить низького, але достатнього для реалізації SQL рівня для доступу до збережених даних. Синхронізація транзакцій, журнализация змін і відновлення баз даних після збоїв також ставляться до числа функцій RSS. Компілятор запитів використає інтерфейс RSS для доступу до різноманітної довідкової інформації (каталоги відносин, індексів, прав доступу, умов цілісності, умовних впливів і т.д.) і робить робочі програми, виконувані надалі також з використанням інтерфейсу RSS. Таким чином, система природно розділяється на два рівні: рівень керування пам'яттю й синхронізацією, фактично, що не залежить від базової мови запитів системи, і мовний рівень (рівень SQL), на якому вирішується більшість проблем System R. Помітимо, що ця незалежність скоріше умовна, чим абсолютна: мова SQL можна замінити на іншу мову, але він повинен мати приблизно таку ж семантику.

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


Практична частина

Лістінг програм

Головний програма БД – ТРУДОВА КНИЖКА.

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit9.h"

#include "Unit22.h"

#include "Unit23.h"

#include "Unit4.h"

#include "Unit24.h"

#include "Unit27.h"

#include "Unit28.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

Tzarplata *zarplata;

Tz_nastr *z_nastr;

extern TOKBottomDlg *OKBottomDlg;

extern TForm4 *Form4;

extern Talgo *algo;

//---------------------------------------------------------------------------

__fastcall Tzarplata::Tzarplata(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall Tzarplata::N9Click(TObject *Sender)

{

z_nastr->Table1->Close();

z_nastr->Table1->TableName = "z_nastr_const_nar";

z_nastr->Table1->Open();

z_nastr->Caption = "Настроювання констант нарахування";

z_nastr->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall Tzarplata::N6Click(TObject *Sender)

{

z_nastr->Table1->Close();

z_nastr->Table1->TableName = "z_nastr_vch_stavka_osv";

z_nastr->Table1->Open();

z_nastr->Caption = "Ставка за освітою";

z_nastr->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall Tzarplata::N10Click(TObject *Sender)

{

z_nastr->Table1->Close();

z_nastr->Table1->TableName = "z_nastr_vch_visluga";

z_nastr->Table1->Open();

z_nastr->Caption = "Надбавка за вислугу років";

z_nastr->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall Tzarplata::N13Click(TObject *Sender)

{

z_nastr->Table1->Close();

z_nastr->Table1->TableName = "z_nastr_const_vidr";

z_nastr->Table1->Open();

z_nastr->Caption = "Настроювання констант відрахування";

z_nastr->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall Tzarplata::N12Click(TObject *Sender)

{

z_nastr->Table1->Close();

z_nastr->Table1->TableName = "z_nastr_likarnyani";

z_nastr->Table1->Open();

z_nastr->Caption = "Нарахування лікарняних";

z_nastr->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall Tzarplata::N14Click(TObject *Sender)

{

z_nastr->Table1->Close();

z_nastr->Table1->TableName = "z_nastr_derzsluz_visluga";

z_nastr->Table1->Open();

z_nastr->Caption = "Держслужбовці - вислуга";

z_nastr->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall Tzarplata::N7Click(TObject *Sender)

{

z_nastr->Table1->Close();

z_nastr->Table1->TableName = "z_nastr_vch_kateg";

z_nastr->Table1->Open();

z_nastr->Caption = "Вчителі - надбавка за категорію";

z_nastr->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall Tzarplata::N8Click(TObject *Sender)

{

z_nastr->Table1->Close();

z_nastr->Table1->TableName = "z_nastr_vch_kruzok";

z_nastr->Table1->Open();

z_nastr->Caption = "Вчителі - за кружок";

z_nastr->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall Tzarplata::N11Click(TObject *Sender)

{

z_nastr->Table1->Close();

z_nastr->Table1->TableName = "z_nastr_vch_perevirkazosh";

z_nastr->Table1->Open();

z_nastr->Caption = "Вчителі - перевірка зошитів";

z_nastr->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall Tzarplata::N15Click(TObject *Sender)

{

z_nastr->Table1->Close();

z_nastr->Table1->TableName = "z_nastr_spivrob_posadi";

z_nastr->Table1->Open();

z_nastr->Caption = "Співробітники (інші) - посади";

z_nastr->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall Tzarplata::N16Click(TObject *Sender)

{

z_nastr->Table1->Close();

z_nastr->Table1->TableName = "z_nastr_derzsluz_rang";

z_nastr->Table1->Open();

z_nastr->Caption = "Держслужбовці - ранг";

z_nastr->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall Tzarplata::N17Click(TObject *Sender)

{

z_nastr->Table1->Close();

z_nastr->Table1->TableName = "z_nastr_derzsluz_intensiv";

z_nastr->Table1->Open();

z_nastr->Caption = "Держслужбовці - інтенсивність";

z_nastr->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall Tzarplata::N18Click(TObject *Sender)

{

z_nastr->Table1->Close();

z_nastr->Table1->TableName = "z_nastr_derzsluz_premiya";

z_nastr->Table1->Open();

z_nastr->Caption = "Держслужбовці - премія";

z_nastr->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall Tzarplata::N3Click(TObject *Sender)

{

Form4->subkid = 22;

Form4->Button4->Enabled=true;

Form4->ShowModal();

vhidzarp->potoch=0;

vhidzarp->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall Tzarplata::N4Click(TObject *Sender)

{

Form4->subkid = 22;

Form4->Button4->Enabled=true;

Form4->ShowModal();

algo->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall Tzarplata::N20Click(TObject *Sender)

{

z_nastr->Table1->Close();

z_nastr->Table1->TableName = "z_nastr_derzsluz_posada";

z_nastr->Table1->Open();

z_nastr->Caption = "Держслужбовці - посади";

z_nastr->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall Tzarplata::N5Click(TObject *Sender)

{

z_nastr->Table1->Close();

z_nastr->Table1->TableName = "z_nastr_adm_posadi";

z_nastr->Table1->Open();

z_nastr->Caption = "Співробітники (адміністрація) - посади";

z_nastr->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall Tzarplata::N2Click(TObject *Sender)

{

z_oper->Show();

}

//---------------------------------------------------------------------------

void __fastcall Tzarplata::N19Click(TObject *Sender)

{

vhidzarp->potoch=1;

vhidzarp->ShowModal();

}

//---------------------------------------------------------------------------

Додаткові модулі для роботи з SQL запитами.

//---------------------------------------------------------------------------

#include <vcl.h>

#include <stdio.h>

#pragma hdrstop

#include "Unit24.h"

#include "Unit25.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma link "wwdblook"

#pragma resource "*.dfm"

Talgo *algo;

extern Tplusalgo *plusalgo;

int activeflag=1;

//---------------------------------------------------------------------------

__fastcall Talgo::Talgo(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall Talgo::Button1Click(TObject *Sender)

{

knopka();

}

//---------------------------------------------------------------------------

void __fastcall Talgo::wwDBLookupCombo1Change(TObject *Sender)

{

if(activeflag){

Query1->Close();

Query1->SQL->Clear();

Query1->SQL->Add(

"select constanta from z_nastr_vch_stavka_osv where id="+wwDBLookupCombo1->Text

);

Query1->Open();

}

}

//---------------------------------------------------------------------------

void __fastcall Talgo::DBCheckBox1Click(TObject *Sender)

{

Table1->Edit();

if(CheckBox1->Checked){

Table1->Fields->FieldByName("isvchitel")->AsInteger = 1;

GroupBox1->Visible=true;

}

else

{

Table1->Fields->FieldByName("isvchitel")->AsInteger = 0;

GroupBox1->Visible=false;

}

Table1->Post();

}

//---------------------------------------------------------------------------

void __fastcall Talgo::FormActivate(TObject *Sender)

{

activeflag=1;

AnsiString x="";

Query21->Close();

Query21->SQL->Clear();

Query21->SQL->Add(

"select content from variables where variables.var='subkobid'"

);

Query21->Open();

int skobid = Query21->Fields->FieldByName("content")->AsInteger;

Query21->Close();

Query21->SQL->Clear();

Query21->SQL->Add(

"select count(z_algo.id) as cnt from z_algo,variables where z_algo.skobid=variables.content and variables.var='subkobid'"

);

Query21->Open();

if(!(Query21->Fields->FieldByName("cnt")->AsInteger>0)){

Query21->Close();

Query21->SQL->Clear();

Query21->SQL->Add(

x+"insert into z_algo values( 0,"+skobid+",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) "

);

Query21->ExecSQL();

}

//Table1->Close();

Table1->Filtered=false;

Table1->Filter=x+"skobid = "+skobid;

Table1->Filtered=true;

Table1->Open();

Table2->Close();

Table2->Open();

// vchiteli

CheckBox1->Checked = Table1->Fields->FieldByName("isvchitel")->AsInteger ? true:false;

CheckBox3->Checked = Table1->Fields->FieldByName("iskategoriya")->AsInteger ? true:false;

CheckBox2->Checked = Table1->Fields->FieldByName("isnachskgod")->AsInteger ? true:false;

CheckBox4->Checked = Table1->Fields->FieldByName("isstklasigod")->AsInteger ? true:false;

CheckBox5->Checked = Table1->Fields->FieldByName("isgpdgod")->AsInteger ? true:false;

CheckBox6->Checked = Table1->Fields->FieldByName("iskruzok")->AsInteger ? true:false;

CheckBox7->Checked = Table1->Fields->FieldByName("isklasruk")->AsInteger ? true:false;

CheckBox8->Checked = Table1->Fields->FieldByName("iskabinet")->AsInteger ? true:false;

CheckBox9->Checked = Table1->Fields->FieldByName("isproverkatet")->AsInteger ? true:false;

CheckBox10->Checked = Table1->Fields->FieldByName("ispsiholog")->AsInteger ? true:false;

CheckBox11->Checked = Table1->Fields->FieldByName("isorganizator")->AsInteger ? true:false;

CheckBox23->Checked = Table1->Fields->FieldByName("ismuzskola")->AsInteger ? true:false;

//utrimannya

CheckBox12->Checked = Table1->Fields->FieldByName("isprofsoyuz")->AsInteger ? true:false;

CheckBox13->Checked = Table1->Fields->FieldByName("islgotnik")->AsInteger ? true:false;

CheckBox14->Checked = Table1->Fields->FieldByName("ismnogodetmama")->AsInteger ? true:false;

CheckBox15->Checked = Table1->Fields->FieldByName("isodinokmama")->AsInteger ? true:false;

CheckBox16->Checked = Table1->Fields->FieldByName("isvdova")->AsInteger ? true:false;

CheckBox17->Checked = Table1->Fields->FieldByName("isvdovec")->AsInteger ? true:false;

CheckBox18->Checked = Table1->Fields->FieldByName("isdetiinvalidi")->AsInteger ? true:false;

CheckBox21->Checked = Table1->Fields->FieldByName("ispens")->AsInteger ? true:false;

//sotrudniki

CheckBox19->Checked = Table1->Fields->FieldByName("issotrudnik")->AsInteger ? true:false;

RadioButton1->Checked = Table1->Fields->FieldByName("isadminsotr")->AsInteger ? true:false;

//derzsluzbovci

CheckBox20->Checked = Table1->Fields->FieldByName("isderzsluzbovec")->AsInteger ? true:false;

}

//---------------------------------------------------------------------------

void __fastcall Talgo::FormClose(TObject *Sender, TCloseAction &Action)

{

activeflag=0;

Table1->Close();

Table2->Close();

}

//---------------------------------------------------------------------------

void __fastcall Talgo::wwDBLookupCombo2Change(TObject *Sender)

{

if(activeflag){

Query2->Close();

Query2->SQL->Clear();

Query2->SQL->Add(

"select constanta from z_nastr_vch_kateg where id="+wwDBLookupCombo2->Text

);

Query2->Open();

}

}

//---------------------------------------------------------------------------

void __fastcall Talgo::wwDBLookupCombo3Change(TObject *Sender)

{

if(activeflag){

Query3->Close();

Query3->SQL->Clear();

Query3->SQL->Add(

"select constanta from z_nastr_vch_perevirkazosh where id="+wwDBLookupCombo3->Text

);

Query3->Open();

}

}

//---------------------------------------------------------------------------

void Talgo::knopka()

{

AnsiString x="";

vbazu();

Query8->SQL->Clear();

Query8->SQL->Add(" delete from z_algo_result ");

Query8->ExecSQL();

Query8->SQL->Clear();

Query8->SQL->Add(" insert into z_algo_result values(1,0,0,0,0)");

Query8->ExecSQL();

//vchiteli

Query4->Close();

Query4->Open();

char buf[30];

sprintf(buf,"%f",Query4->Fields->FieldByName("res")->AsFloat);

Query8->SQL->Clear();

Query8->SQL->Add(

x+" update z_algo_result set vchzarp="+buf

);

Query8->ExecSQL();

//sotrudnik inshi

if(Table1->Fields->FieldByName("issotrudnik")->AsInteger && RadioButton2->Checked){

sprintf(buf,"%f", DBText26->Caption.ToDouble() );

Query8->SQL->Clear();

Query8->SQL->Add(

x+" update z_algo_result set spivrobzarp = "+buf

);

Query8->ExecSQL();

}

//sotrudnik admin

if(Table1->Fields->FieldByName("issotrudnik")->AsInteger && RadioButton1->Checked){

sprintf(buf,"%f",Table1->Fields->FieldByName("admsotrstavka")->AsFloat * (1+DBText32->Caption.ToDouble()/100));

Query8->SQL->Clear();

Query8->SQL->Add(

x+" update z_algo_result set spivrobzarp = "+buf

);

Query8->ExecSQL();

}

//derzsluzbovec

if(Table1->Fields->FieldByName("isderzsluzbovec")->AsInteger){

sprintf(buf,"%f",(DBText15->Caption.ToDouble()+DBText17->Caption.ToDouble())*(1+DBText19->Caption.ToDouble()/100+DBText21->Caption.ToDouble()/100+DBText29->Caption.ToDouble()/100));

Query8->SQL->Clear();

Query8->SQL->Add(

x+" update z_algo_result set derzsluzzarp = "+buf

);

Query8->ExecSQL();

}

//utrimano

if(wwDBLookupCombo6->Text.ToInt() == 1 ){

Query9->Close();

Query9->Open();

sprintf(buf,"%f",Query9->Fields->FieldByName("res")->AsFloat);

}

if(wwDBLookupCombo6->Text.ToInt() == 2 ){

Query16->Close();

Query16->Open();

sprintf(buf,"%f",Query16->Fields->FieldByName("res")->AsFloat);

}

Query8->SQL->Clear();

Query8->SQL->Add(

x+" update z_algo_result set utrim="+buf

);

Query8->ExecSQL();

Query10->Close();

Query10->Open();

}

void Talgo::vbazu(){

Table1->Refresh();

Table1->Edit();

// uchiteli

Table1->Fields->FieldByName("iskategoriya")->AsInteger = CheckBox3->Checked;

Table1->Fields->FieldByName("isnachskgod")->AsInteger = CheckBox2->Checked ? 1:0;

Table1->Fields->FieldByName("isstklasigod")->AsInteger = CheckBox4->Checked ? 1:0;

Table1->Fields->FieldByName("isgpdgod")->AsInteger = CheckBox5->Checked ? 1:0;

Table1->Fields->FieldByName("iskruzok")->AsInteger = CheckBox6->Checked ? 1:0;

Table1->Fields->FieldByName("isklasruk")->AsInteger = CheckBox7->Checked ? 1:0;

Table1->Fields->FieldByName("iskabinet")->AsInteger = CheckBox8->Checked ? 1:0;

Table1->Fields->FieldByName("isproverkatet")->AsInteger = CheckBox9->Checked ? 1:0;

Table1->Fields->FieldByName("ispsiholog")->AsInteger = CheckBox10->Checked ? 1:0;

Table1->Fields->FieldByName("isorganizator")->AsInteger = CheckBox11->Checked ? 1:0;

Table1->Fields->FieldByName("ismuzskola")->AsInteger = CheckBox23->Checked ? 1:0;

//sotr

Table1->Fields->FieldByName("isadminsotr")->AsInteger = RadioButton1->Checked ? 1:0;

// urtimannya

Table1->Fields->FieldByName("isprofsoyuz")->AsInteger=CheckBox12->Checked ? 1:0;

Table1->Fields->FieldByName("islgotnik")->AsInteger =CheckBox13->Checked ? 1:0;

Table1->Fields->FieldByName("ismnogodetmama")->AsInteger=CheckBox14->Checked ? 1:0;

Table1->Fields->FieldByName("isodinokmama")->AsInteger=CheckBox15->Checked ? 1:0;

Table1->Fields->FieldByName("isvdova")->AsInteger=CheckBox16->Checked ? 1:0;

Table1->Fields->FieldByName("isvdovec")->AsInteger=CheckBox17->Checked ? 1:0;

Table1->Fields->FieldByName("isdetiinvalidi")->AsInteger=CheckBox18->Checked ? 1:0;

Table1->Fields->FieldByName("ispens")->AsInteger=CheckBox21->Checked ? 1:0;

Table1->Post();

}

void __fastcall Talgo::CheckBox3Click(TObject *Sender)

{

vbazu();

}

//---------------------------------------------------------------------------

void __fastcall Talgo::wwDBLookupCombo4Change(TObject *Sender)

{

if(activeflag){

Query5->Close();

Query5->SQL->Clear();

Query5->SQL->Add(

"select constanta from z_nastr_vch_klasruk where id="+wwDBLookupCombo4->Text

);

Query5->Open();

}

}

//---------------------------------------------------------------------------

void __fastcall Talgo::wwDBLookupCombo5Change(TObject *Sender)

{

if(activeflag){

Query6->Close();

Query6->SQL->Clear();

Query6->SQL->Add(

"select constanta from z_nastr_vch_visluga where id="+wwDBLookupCombo5->Text

);

Query6->Open();

}

}

//---------------------------------------------------------------------------

void __fastcall Talgo::wwDBLookupCombo6Change(TObject *Sender)

{

if(activeflag){

Query7->Close();

Query7->SQL->Clear();

Query7->SQL->Add(

"select constanta from z_nastr_sposobpensfond where id="+wwDBLookupCombo6->Text

);

Query7->Open();

}

}

//---------------------------------------------------------------------------

void __fastcall Talgo::Button2Click(TObject *Sender)

{

vbazu();

}

//---------------------------------------------------------------------------

void __fastcall Talgo::wwDBLookupCombo7Change(TObject *Sender)

{

if(activeflag){

Query11->Close();

Query11->SQL->Clear();

Query11->SQL->Add(

"select constanta,znach from z_nastr_adm_posadi where id="+wwDBLookupCombo7->Text

);

Query11->Open();

}

}

//---------------------------------------------------------------------------

void __fastcall Talgo::CheckBox19Click(TObject *Sender)

{

Table1->Edit();

if(CheckBox19->Checked){

Table1->Fields->FieldByName("issotrudnik")->AsInteger = 1;

GroupBox18->Visible=true;

}

else

{

Table1->Fields->FieldByName("issotrudnik")->AsInteger = 0;

GroupBox18->Visible=false;

}

Table1->Post();

}

//---------------------------------------------------------------------------

void __fastcall Talgo::wwDBLookupCombo8Change(TObject *Sender)

{

if(activeflag){

Query12->Close();

Query12->SQL->Clear();

Query12->SQL->Add(

"select constanta,znach from z_nastr_derzsluz_posada where id="+wwDBLookupCombo8->Text

);

Query12->Open();

}

}

//---------------------------------------------------------------------------

void __fastcall Talgo::wwDBLookupCombo9Change(TObject *Sender)

{

if(activeflag){

Query13->Close();

Query13->SQL->Clear();

Query13->SQL->Add(

"select constanta,znach from z_nastr_derzsluz_rang where id="+wwDBLookupCombo9->Text

);

Query13->Open();

}

}

//---------------------------------------------------------------------------

void __fastcall Talgo::CheckBox20Click(TObject *Sender)

{

Table1->Edit();

if(CheckBox20->Checked){

Table1->Fields->FieldByName("isderzsluzbovec")->AsInteger = 1;

GroupBox20->Visible=true;

}

else

{

Table1->Fields->FieldByName("isderzsluzbovec")->AsInteger = 0;

GroupBox20->Visible=false;

}

Table1->Post();

}

//---------------------------------------------------------------------------

void __fastcall Talgo::wwDBLookupCombo10Change(TObject *Sender)

{

if(activeflag){

Query14->Close();

Query14->SQL->Clear();

Query14->SQL->Add(

"select constanta,znach from z_nastr_derzsluz_intensiv where id="+wwDBLookupCombo10->Text

);

Query14->Open();

}

}

//---------------------------------------------------------------------------

void __fastcall Talgo::wwDBLookupCombo11Change(TObject *Sender)

{

if(activeflag){

Query15->Close();

Query15->SQL->Clear();

Query15->SQL->Add(

"select constanta,znach from z_nastr_derzsluz_premiya where id="+wwDBLookupCombo11->Text

);

Query15->Open();

}

}

//---------------------------------------------------------------------------

void __fastcall Talgo::wwDBLookupCombo13Change(TObject *Sender)

{

if(activeflag){

Query17->Close();

Query17->SQL->Clear();

Query17->SQL->Add(

"select constanta,znach from z_nastr_vch_visluga where id="+wwDBLookupCombo13->Text

);

Query17->Open();

}

}

//---------------------------------------------------------------------------

void __fastcall Talgo::wwDBLookupCombo12Change(TObject *Sender)

{

if(activeflag){

Query18->Close();

Query18->SQL->Clear();

Query18->SQL->Add(

"select a.constanta, a.znach, greatest(a.znach,b.znach) as superznach from z_nastr_spivrob_posadi a,z_nastr_const_nar b where a.id="+wwDBLookupCombo12->Text+

" and b.id=1 "

);

Query18->Open();

}

}

//---------------------------------------------------------------------------

void __fastcall Talgo::wwDBLookupCombo14Change(TObject *Sender)

{

if(activeflag){

Query19->Close();

Query19->SQL->Clear();

Query19->SQL->Add(

"select constanta,znach from z_nastr_derzsluz_visluga where id="+wwDBLookupCombo14->Text

);

Query19->Open();

}

}

//---------------------------------------------------------------------------

void __fastcall Talgo::wwDBLookupCombo15Change(TObject *Sender)

{

if(activeflag){

Query20->Close();

Query20->SQL->Clear();

Query20->SQL->Add(

"select constanta,znach from z_nastr_likarnyani where id="+wwDBLookupCombo15->Text

);

Query20->Open();

}

}

//---------------------------------------------------------------------------


Робота з програмою

Головне вікно управління персоналом

Вікно введення та редагування персональних даних

Всі листинги а також приклади роботи програми знаходяться на дискеті

Висновки

Основні ідеї сучасної інформаційної технології базуються на концепції, відповідно до якої дані повинні бути організовані в бази даних з метою адекватного відображення реального миру, що змінюється, і задоволення інформаційних потреб користувачів. Ці бази даних створюються й функціонують під керуванням спеціальних програмних комплексів, називаних системами керування базами даних (СУБД).

Збільшення обсягу й структурної складності збережених даних, розширення кола користувачів інформаційних систем привели до широкого поширення найбільш зручних і порівняно простих для розуміння реляційних (табличних) СУБД. Для забезпечення одночасного доступу до даних безлічі користувачів, нерідко розташованих досить далеко друг від друга й від місця зберігання баз даних, створені мережні версії СУБД. У них тим або іншим шляхом вирішуються специфічні проблеми паралельних процесів, цілісності (правильності) і безпеки даних, а також санкціонування доступу.


Література

1. Дейт К. Руководство по реляционной СУБД DB2. - М.: Финансы и статистика, 1988. - 320 с.

2. Кириллов В.В. Основы проектирования реляционных баз данных. Учебное пособие. - СПб.: ИТМО, 1994. - 90 с.

3. Мейер М. Теория реляционных баз данных. -М.: Мир, 1987. - 608 с.

4. Ульман Дж. Базы данных на Паскале. -М.: Машиностроение, 1990. - 386 с.


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Тгу им. Г. Р. Державина
Реферат сделан досрочно, преподавателю понравилось, я тоже в восторге. Спасибо Татьяне за ...
star star star star star
РЭУ им.Плеханово
Альберт хороший исполнитель, сделал реферат очень быстро, вечером заказала, утром уже все ...
star star star star star
ФЭК
Маринаааа, спасибо вам огромное! Вы профессионал своего дела! Рекомендую всем ✌🏽😎
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

Подогнать готовую курсовую под СТО

Курсовая, не знаю

Срок сдачи к 7 дек.

только что
только что

Выполнить задания

Другое, Товароведение

Срок сдачи к 6 дек.

1 минуту назад

Архитектура и организация конфигурации памяти вычислительной системы

Лабораторная, Архитектура средств вычислительной техники

Срок сдачи к 12 дек.

1 минуту назад

Организации профилактики травматизма в спортивных секциях в общеобразовательной школе

Курсовая, профилактики травматизма, медицина

Срок сдачи к 5 дек.

2 минуты назад

краткая характеристика сбербанка анализ тарифов РКО

Отчет по практике, дистанционное банковское обслуживание

Срок сдачи к 5 дек.

2 минуты назад

Исследование методов получения случайных чисел с заданным законом распределения

Лабораторная, Моделирование, математика

Срок сдачи к 10 дек.

4 минуты назад

Проектирование заготовок, получаемых литьем в песчано-глинистые формы

Лабораторная, основы технологии машиностроения

Срок сдачи к 14 дек.

4 минуты назад

2504

Презентация, ММУ одна

Срок сдачи к 7 дек.

6 минут назад

выполнить 3 задачи

Контрольная, Сопротивление материалов

Срок сдачи к 11 дек.

6 минут назад

Вам необходимо выбрать модель медиастратегии

Другое, Медиапланирование, реклама, маркетинг

Срок сдачи к 7 дек.

7 минут назад

Ответить на задания

Решение задач, Цифровизация процессов управления, информатика, программирование

Срок сдачи к 20 дек.

7 минут назад
8 минут назад

Все на фото

Курсовая, Землеустройство

Срок сдачи к 12 дек.

9 минут назад

Разработка веб-информационной системы для автоматизации складских операций компании Hoff

Диплом, Логистические системы, логистика, информатика, программирование, теория автоматического управления

Срок сдачи к 1 мар.

10 минут назад
11 минут назад

перевод текста, выполнение упражнений

Перевод с ин. языка, Немецкий язык

Срок сдачи к 7 дек.

11 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно