Делфи және мәліметтер қоры

Автор работы: Пользователь скрыл имя, 08 Июня 2015 в 11:14, реферат

Описание работы

Бұл кезеңдерді локальды мәліметтер қорын қолданып BorlandDelphi7 ортасында орындау әрі жеңіл, әрі тиімді. Осы орайда мәліметтер қорын қолдана отырып ақпараттық жүйелерді құру және автоматтандырудың жобасы жасалынып, оның орындалуына әдістемелік нұсқаулар жазылды.
Оқу құралында келтірілген әр мысалдың Дельфи тілінде жобалық пішіні жасалып, бағдарламалары құрылуы оның практикалық маңыздылығын арттырады деген ойдамыз.

Содержание работы

Кіріспе
1 Мәліметтер қорын жобалау және ақпараттық жүйелер
1.1 Деректердің шамадан тыс қайталануы және аномалиялар
1.2 Ақпараттық жүйелерді жобалау
2 Delphi ортасында мәліметтер қорына рұқсат алу механизмдері
2.1 ADO провайдерлері
3 Мәліметтер қорын құру және басқару
3.1 Мәліметтер қоры кестелерін құру және басқару
3.2 Мәліметтер қоры кестесімен жұмыс
3.3 Клиенттік қосымшада жоғарғы мәзір құру
3.4 Мемо-өрістер, бағандарды жөндеу және деректерді іздеуді ұйымдастыру
3.5 Сұраныс құру
3.6 Есеп құру
4 Delphi7 ортасында локальды деректер қорын қолданып ақпараттық жүйелер құру
4.1 «Кадрлар бөлімі» ақпараттық жүйесінің жобасы
4.2 Мәліметтер қоры өзгерісін журналға тіркеу
5 Серверлік мәліметтер қоры және interbase серверімен танысу
5.1 INTERBASE локальды сервері
5.2 Индекс құру
5.3 Delphi7 және мәліметтер қоры серверлері
5.4 Генераторлар мен триггерлер
Қортынды
Әдебиеттер тізімі

Файлы: 1 файл

621.doc

— 2.30 Мб (Скачать файл)
  • екі жақтың бірі келісім мерзімін ұзартудан бас тартқанда  (бұл жөнінде келісім аяқталудан ай бұрын жазбаша хабарлану керек);
  • мезгілінен бұрын - егер екі жақтың бірі үнемі өз міндетін орындамаса;
  • кәсіпорын не мекеме таратылған жағдайда;

Келісім мезгілінен бұрын тоқтатылған болса ол жайлы екі жақ бір біріне мерзімінен 15 жұмыс күн бұрын жазбаша хабарлау керек.» деп жазамыз. QRLabel5 компонентін қойып Caption қасиетіне «Екі жактың мекен-жайы мен реквизиттері:» деп жазамыз. QRMemo6 компонентін қойып, Lines қасиетіне

«№2 автобаза

Өскемен қаласы,

Абай көшесі, 45

тел.52-89-87» деп жазамыз.

QRMemo7 компонентін қойып, Lines қасиетіне

«"Жұмысшы"

Аты - жөні

Мекен жайы:

Телефон » деп жазамыз.

QRMemo8 компонентін қойып, Lines қасиетіне

«№2 Автобаза бөлімінің меңгерушісі

________________ Нусіпов Е.Н.

Бас бухгалтер

________________ Комекова Р.

 

Заңгер консультант

________________Аукенова А. деп жазамыз.

 

 

28-сурет-Есеп құру қалыбы

 

Мөрдің суретін жасау үшін QRShape1 компонентін қойып, Shape қасиетіне qrsCircle мәнін көрсетеміз. Сонда шеңбер сызылады. QRLabel6 компонентін қойып Caption қасиетіне «МО» деп жазамыз, бұл мөрдің орны дегенді білдіреді.

Осылардың бәрін орындап болған соң, 2-ші қалыптағы «Келісім шарт (Баспаға)» деген пернеге мына кодты жазамыз:

procedure Tform2.Button1Click(Sender: TObject);

begin

Form3.QRLabel2.Caption:= form2.Ed_dataR.Text ;

Form3.QRLabel3.Caption:= form1.Ed_fio.Text ;

Form3.QRLabel5:= Form1. Ed_dolzh.Text;

Form3. QRMemo7 .Lines.Add('Adres: '+Ed_adres.Text);

Form3. QRMemo7 .Lines.Add('Telephon: '+Ed_tel.Text);

Form3.QuickRep1.Preview;

end;

Қосымшаны орындап, нәтижесін қараңыз. Сонда есеп көмегімен құжаттардың үлгісін өз қалауыңызша жасауға болатынына көз жеткізесіз (28-сурет).

Сұраныстар кестесіне деректерді қалып арқылы енгізу және қалыптар арасында байланыс орнату.

29-суреттегідей қалып құрыңыз да, ФАЙЛ жоғарғы мәзірін құрып, оған ішкі мәзір: 3-қалыпқа көшу, 2-қалыпқа көшу пункттерін жасаңыз.

 

29-сурет-Деректерді қалып көмегімен сақтау жобасы

 

FormCreate  оқиғасына мына кодты  жазыңыз:

procedure TForm1.FormCreate(Sender: TObject);

var otd:string;

begin

otd:='Барлығы';

form1.Caption:='ФМжәнеТфакультетінде  - 

'+IntToStr(Query1.RecordCount)+'-студент бар'

end;

3-қалыпқа көшу мәзір пунктіне  мына кодты жазыңыз:

procedure TForm1.N31Click(Sender: TObject);

begin

Form3.Show;

form1.Enabled:=false;

end;

2-қалыпқа көшу мәзір пунктіне  мына кодты жазыңыз:

procedure TForm1.N21Click(Sender: TObject);

begin

Form2.ShowModal;

form3.Enabled:=false;

form1.Enabled:=false;

end;

«Шығу» пернесіне мына кодты жазыңыз:

procedure TForm1.Button1Click(Sender: TObject);

begin

  Close;

end;

30-суреттегідей 2-ші қалып құрыңыз. Оған Win32 қатпарынан MonthCalendar1

 

30-сурет-2-ші қалып

 

компонентін қойыңыз. Студенттердің туған мерзімі күнтізбенің көмегімен орындалатындай етіп, «Жазуды қорға енгізу» пернесін жасаңыз. MonthCalendar компонентінің Date қасиетіне қай жылдың күнтізбесі керек болса, сол жылды көрсетіңіз.

TForm2.FormCreate оқиғасына мына кодты жазыңыз:

procedure TForm2.FormCreate(Sender: TObject);

begin

MonthCalendar1.Date:=Date;

end;

TForm2.Button1Click оқиғасына мына кодты  жазыңыз:

procedure TForm2.Button1Click(Sender: TObject);

begin

Form3.Ed_god_rozh.Text:=datetostr(form2.MonthCalendar1.Date);

form2.Hide;

Form1.Show;

form1.Enabled:=true;

end;

TForm2.Button2Click оқиғасына мына кодты  жазыңыз:

 

procedure TForm2.Button2Click(Sender: TObject);

begin

form3.Show;

form3.Enabled:=true;

end;

31-суреттегідей 3-қалыпты құрыңыз.

 

31-сурет-3-ші қалып

 

6 дана DBEdit компонентін қойыңыз, олардың Name қасиетін сәйкесінше өзгертіңіз: Ed_Fio, Ed_Adres, Ed_Bilet, Ed_God_rozh,  Ed_Tel, Ed_spez. SpeedButton1 компонентін қойып, Caption қасиетіне  … жазыңыз да оны шерту оқиғасына мына кодты жазыңыз:

procedure TForm3.SpeedButton1Click(Sender: TObject);

begin

Form2.Show;

end;

ComboBox1 компонентін қойып келесі  қасиеттерін орнатыңыз:

Name - CB_Sem_pol

Text - таңдау

Items

Жанұялы

тұрмыста

бойдақ

CheckBox1  компонентін қойып келесі қасиеттерін орнатыңыз:

Name - CB_child

Caption - Баласы бар ма?

Standart қатпарынан Panel компонентін қойып  келесі қасиеттерін орнатыңыз:

Align - alCustom

Панельдің үстіне үш перне қойып атауларын «ОК», «Cancel», «Шарт жасау» деп атаңыз.

«ОК» батырмасын шерту оқиғасына мына кодты жазыңыз:

procedure TForm3.Button2Click(Sender: TObject);

begin

if (CB_Sem_pol.Text<>'таңдау') then

begin

Form1.Table1.Insert;

Form1.Table1['Fio']:=Ed_fio.Text;

Form1.Table1['Adres']:=Ed_adres.Text;

Form1.Table1['Data']:=Ed_god_rozh.Text;

Form1.Table1['SemPol']:=CB_Sem_pol.Text;

Form1.Table1['Telephon']:=Ed_Tel.Text;

Form1.Table1['Spez']:=Ed_spez.Text;

Form1.Table1['N_bilet']:=Ed_Bilet.Text;

if CB_child.Checked then Form1.Table1['Child']:=true

else Form1.Table1['Child']:=false;

Form1.Table1.Post;

Form3.Hide;

form1.Enabled:=true;

end else ShowMessage('!!!');

end;

«Cancel» батырмасын шерту оқиғасына мына кодты жазыңыз:

procedure TForm3.Button3Click(Sender: TObject);

begin

Form3.Hide;

Form1.Show;

form1.Enabled:=true;

end;

«Шарт жасау» пернесіне алдыңғы мысалдағы «Келісім шарт (Баспаға)» деген пернеге  жазылған procedure Tform2.Button1Click(Sender: TObject); кодты жазуға болады. Бағдарламада өзгертілетін жолдары бар болса, өздеріңіз анықтаңыздар.

 

Ескерту.

Егер есепке деректер қоры кестесінің барлық жазбалары шығарылуы керек болса, TquickRep компонентін белгілеп, оның DataSet қасиетіне деректер көзін көрсету керек. Мысалы: Form1.Table1 десе, 1-ші формадағы 1-кестедегі деректер толығымен есепке шақырылады.

 

Қортынды есеп кестедегі бағандардың, жолдардың қосындысын есептеу арқылы аяқталған құжат жасау керек болса қолданылады. Мысалы: кестеде қоймадағы тауарлар мен олардың құны берілсін, барлық тауарлардың құнын есептеу керек болса, негізгі қалыпқа кестедегі деректерді шақырып аламыз (27а-сурет), сосын 2-ші қалыпта TquickRep компонентін қойып, оның DataSet қасиетіне Form1.Table1 деп жазамыз. Бұл компоненттің үстіне жасалуы керек есептің үлгісін көрсететін компоненттерді қоямыз (32-сурет).

 

  

32-сурет-Қоймадағы тауарлар кестесі

 

QRBand1 компонентін қойып BandType қасиетіне rbTitle мәнін көрсетеміз. Оның үстіне QRLabel1 компонентін қойып, Caption қасиетіне «Қортынды есеп» деп жазамыз. QRBand2 компонентін қойып BandType қасиетіне rbColumnHeader мәнін көрсетеміз. Оның үстінен QRLabel2 компонентін қойып, Caption қасиетіне «Қоймадағы тауарлар атаулары» деп жазамыз. QRLabel3 компонентін қойып, Caption қасиетіне «Тауар құны» деп жазамыз. QRBand3

 

33-сурет. Қортынды есептің үлгісі

 

компонентін қойып BandType қасиетіне rbDetail деп көрсетеміз де, кестелерден алған деректерді есепте көрсету үшін шығару өрісі компоненті  деп аталатын TQRDBText1 қоямыз да, DataSet қасиетіне Form1.Table1 деп жазамыз, DataField қасиетінде көрінетін тізімнен тауардың маркасын көрсететін «markalari» деген өрісті таңдаймыз. TQRDBText2 қоямыз да, DataSet қасиетіне Form1.Table1 деп жазамыз, DataField қасиетінде көрінетін тізімнен тауардың құнын көрсететін «kuni» деген өрісті таңдаймыз. QRBand4 компонентін қойып BandType

қасиетіне rbSummary деп көрсетеміз де, оның үстіне QRLabel4 компонентін қойып, Caption қасиетіне «Барлығы» деп жазамыз, QRLabel5 компонентін қойып, Caption қасиетін тазалап қоямыз, немесе ештеңе өзгертпесе де болады. Қайтадан 1-ші формаға көшіп, оның модулін ашып type бөлігіне

procedure summa2Click(Sender:TObject); деп жазамыз. Сосын {$R *.dfm} директивасынан кейін  осы процедураны жазамыз:

 

34 – сурет-Қортынды есептің нәтижесі

 

procedure Tform1.summa2Click(Sender:TObject);

begin

summ1:=0;

with form1.Table1 do

begin

First;

repeat

summ1:=summ1+strtoint(form1.Table1['Kuni']);

until not FindNext;

end;

end;

1-ші формадағы «Қортынды есеп»  пернесін шертуге төмендегі кодты жазамыз:

procedure Tform1.Button2Click(Sender: TObject);

begin

Form1.summa2Click(Form1.Table1);

form2.QRLabel5.Caption:=inttostr(summ1);

form2.QuickRep1.Preview;

end;

Орындауға жіберіп, қортынды есептің нәтижесін алуға болады (34- сурет).

 

Өзін өзі бақылау сұрақтары

 

  1.    Есеп деген не?
  2. Есептің қандай түрлері бар?
  3. Есепті құрудың қандай амалдары бар?
  4. RAVE - есеп пен Qreport - есеп тақталарының айырмашылығы қандай?
  5. TquickRep компоненті не үшін керек? Қандай қасиеттері бар?
  6. TQRBand компоненті не үшін керек? Қандай қасиеттері бар?
  7. TQRLabel компоненті не үшін керек? Қандай қасиеттері бар?
  8. TQRDBText компоненті не үшін керек? Қандай қасиеттері бар?
  9. TitleBand1 компоненті не үшін керек? Қандай қасиеттері бар?
  10. Қортынды есепті қалай шығаруға болады?

 

 

 

 

4-БӨЛІМ. DELPHI7 ОРТАСЫНДА ЛОКАЛЬДЫ ДЕРЕКТЕР ҚОРЫН ҚОЛДАНЫП АҚПАРАТТЫҚ ЖҮЙЕЛЕР ҚҰРУ

 

Мәліметтер қоры бар ақпараттық жүйелерді жобалау физикалық және логикалық деңгейде жүреді. Жобалауды физикалық тұрғыда жүргізу мәліметтер қорын басқару жүйелерінен тәуелді, көбіне автоматтандырылған және қолданушыдан жасырылған болады.

Логикалық жобалау мәліметтер қорының кесте санын және структурасын анықтау, мәліметтер қоры бойынша сұраныстар құру, есеп беру құжаттарының типін анықтау, деректерді енгізу форматы, т.б. мәселелерді шешеді.

Логикалық жобалау мәселесін шешу заттық аумақтың қасиеттерін ескереді, мұнда ең маңыздысы болып деректерді структуризациялау болып табылады. Деректердің структурасын құруда 3 негізгі әдіс бар:

  1. шешілетін есептің объектілері туралы ақпаратты жинақтауды бір қатынас (кесте) мөлшерінде жасау және оны өзара байланысты қалыпты формадағы бірнеше ұсақ қатынастарға бөлу.
  2. жүйе туралы білімді қалыптастыру (деректердің типін және байланысын анықтау), деректерді өңдеуге қойылатын талаптарды анықтау, CASE-жүйе (мәліметтер қорын автоматты түрде жобалау және өңдеу жүйесі) көмегімен дайын жоба сызбасын алу.
  3. Ақпараттық жүйеде ақпаратты қолдану үшін структураландыру, ережелер мен ұсыныстар негізінде жүйелік анализ жасау.

Осындай ерекшеліктері бар мәліметтер қорын қолданып ақпараттық жүйелерді құру және жобалау өте көкейтесті мәселе. Біз бұл тарауда желілік емес жергілікті мәліметтер қорын қолданып ақпараттық жүйе құруды қарастырамыз.

 

4.1 «Кадрлар бөлімі» ақпараттық  жүйесінің жобасы

 

Алдымен Access-те «Қызметкерлер» мәліметтер қорын құрып алайық (35-сурет). Онда қызметкерлердің коды, аты-жөні, туған күні, мекен жайы, үйдегі телефоны, ұялы телефоны, атқаратын қызметінің коды, қызметінің атауы, білімі, азаматтығы, ұлты, жынысы, жанұялық жағдайы, жұмыс өтілі (стаж), бөлімі, фотосы, балалары, жұмысқа қабылдау күні, шартқа отырған күні, логин, пароль туралы деректер сақталады. Мұндағы фотосының типі «поле объекта OLE»   болуы керек. Логин, балалары туралы өрістердің типі логикалық болғаны дұрыс, себебі олар ақиқат немесе жалған мәндерін қабылдау арқылы бар немесе жоқ деген мағынаны ашады. Қалған өрістердің типтері сіздерге бұрынна таныс. Осы кестемен байланысты болатын қызметтер кестесін құрамыз (36-сурет). Бұл кестеде жұмыс орнында бар қызметтердің атаулары және саны сақталады. Мысалы 1-категориялы маман болып 3 адам қызмет атқара алады. Сонымен қатар бұл кестенің қажеттілігі -қызметкер жұмыстан шыққан кезде оның қызметі бос қалатыны белгілі оны вакантты қызмет деп табу керек.

Сонымен қатар логиндарды сақтау кестесі құрылады (37-сурет). Онда ақпараттық жүйемен жұмыс істеуге құқылы адамдардың логині мен қай уақытта, қандай өзгерістер жасағаны туралы мәліметтер сақталуы керек. Бұл кестедегі Id-санаушы, user-қолданушы логині, action-операция коды, evtdate-уақыт пен дата, message-хабарлама. Ақпараттық жүйеде қандай операцияны кім орындағанын анықтау үшін «actions» кестесі құрылады (38-сурет). Онда операцияның коды мен операция амалы жазылады. 

Әрбір қызметкер қандай да бір мақсатпен іс-сапарға жіберілуі мүмкін.

 

35-сурет-Bd_rabotniki кестесі

 

Сондықтан «Сапар» кестесін құру керек (39-сурет). Онда сапарға жіберілетін аймақтың коды, аймақтың атауы және қызметкердің коды сақталады. Сол арқылы кестедегі нешінші қызметкер қай аймаққа баратынын анықтауға болады.

 

36-сурет-Kizmetter кестесі

 

 

 

37-сурет-Logs кестесінің өрістер типі мен толтырылған түрі

 

 

Бұл кесте «Сапар мақсаты» кестесімен байланысты болады (40-сурет). Себебі іс-сапарға қандай мақсатпен жіберілетінін анықтау үшін аймақтың коды мен іс-сапардың мақсаты сақталуы керек. Сонда қызметкердің қай аймаққа

 

Информация о работе Делфи және мәліметтер қоры