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

Автор работы: Пользователь скрыл имя, 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 Мб (Скачать файл)

 

 

17а-сурет-Student.db кестесіндегі жазбаларды бір-бірден шығару қалыбы

 

Dialogs панелінен OpenPictureDialog1 компонентін  қалыпқа әкелеміз. DBImage1 компонентін белгілеп,  OnDblClick оқиғасына программалық код жазамыз:

Begin

If OpenPictureDialog1.Execute then begin

Table1.Edit;

DBImage1.Picture.LoadFromFile(OpenPictureDialog1.FileName);

Table1.Post;

End;

 

Бағдарламаны орындауға жіберіп, орындалу режимінде мінездеме деген мемо-өрістің алаңына студенттің мінездемесін жазып, DBNavigator тақтасындағы Post пернесін басу арқылы базаға сақтаймыз.

 

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

 

  1. Деректер қорымен жұмыс істеуге арналған қандай қатпарлар бар?
  2. DВGrid компоненті не үшін қолданылады? Қасиеттері қандай?
  3. DBNavigator компоненті не үшін қолданылады? Қасиеттері қандай?
  4. DBText компоненті не үшін қолданылады? Қасиеттері қандай?
  5. DBEdit компоненті не үшін қолданылады? Қасиеттері қандай?
  6. DBImage компоненті не үшін қолданылады? Қасиеттері қандай?
  7. DBComboBox компоненті не үшін қолданылады? Қасиеттері қандай?
  8. DBCheckBox компоненті не үшін қолданылады? Қасиеттері қандай?
  9. DBRadioGroup компоненті не үшін қолданылады? Қасиеттері қандай?
  10. Деректер қоры кестесін экранда көру, жөндеудің қандай әдістері бар?
  11. DataSource, Table компоненттері қалай аталады? Қандай қасиеттері бар?

 

Көп кестелік байланыс орнату.

Төмендегі атрибуттары анықталған кестелер арасында байланыс орнату керек болсын.

  1. Студент(студенттік билет нөмірі, студенттердің аты-жөні, туған мерзімі, т.б.)
  2. Мамандық(студенттік билет нөмірі, мамандық нөмірі, топ шифры, т,б,)
  3. Факультет(факультет нөмірі, факультет атауы, деканның аты-жөні)
  4. Кафедра(кафедра нөмірі, кафедра атауы, кафедра меңгерушісінің аты-жөні, факультет атауы, мамандық нөмірі)
  5. Оқытушылар(оқытушылар нөмірі, оқытушылар аты-жөні, қызметі, кафедра нөмірі)
  6. Староста(топ шифры, староста аты-жөні)

Кілттік атрибуттар бола алатын өрістер қалың һәріппен боялған. Әр кестенің кілттік атрибуттарын тағайындау керек (DataBaseDesktop терезесінде әр кесте үшін Restructure командасын орындап, структурада кілттік атрибуттың турасына, яғни  Key бағанына  * мәнін қою керек, Save батырмасын басамыз. Барлық кестенің ішінде басшы кесте ретінде «Студент» кестесін тағайындайық. Қалған кестелер осы кестеге бағынышты болып табылады. Олардың байланыс атрибуттарын анықтаймыз (18-сурет).

DataBaseDesktop терезесінде әр кесте  үшін Restructure командасын орындап, байланыс атрибутын индекстейміз. Ол үшін Restructure терезесінде тұрып, байланысқа түсетін атрибутты белгілеп, Table Properties = Secondary Indexes – Define – шыққан терезеде байланысқа түсетін атрибутты белгілеп, терезенің оң жақтағы Indexes Field  бөлігіне сүйреп апарып – ОК, сосын құрылатын индекстік файлды сақтаймыз.

 

 


 

 

 

 

 

 

 

 

 

 

 

18-сурет-Кестелер арасындағы байланыс сызбасы

 

Дельфиде жаңа жоба құрамыз (19-сурет). Оған қажетті компоненттерді әр кесте үшін орнатамыз: Table, DataSource, DBGrid, DBNavigator. 

Әр компоненттің қасиеттерін тағайындаймыз.

Table1 компонентінің қасиеттері:

DataBaseName – Primer

TableName – student

Active – True

Datasource1 компонентінің қасиеттері::

DataSet -  Table1

 

19-сурет-Кестелер арасындағы байланыс жобасы

 

DBGrid1 компонентінің қасиеттері::

Datasource – Datasource1

Table2 компонентінің қасиеттері::

DataBaseName – Primer

TableName – mamandik

MasterSource – DataSource1 (себебі бұл кесте 1-ші, яғни «студент» кестесімен  байланысады)

MasterFields … пернесін басып, шыққан терезеде байланысатын кестелердің атрибуттарын белгілеп, Add - ОК

IndexName – nb (индекстік файл атауын көрсетеміз)

Active – True

Datasource2 компонентінің қасиеттері:

DataSet -  Table2

Дәл осылай қалған кестелерді байланыстырып, жобаны орындауға жібереміз (F9- Run). Өзгертулерді, жобаны толық сақтаймыз.

 

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

  1. Байланыс деген не?
  2. Байланыстың қандай түрлері бар?
  3. Байланысты қалай орнатуға болады?
  4. Басшы кесте деген не?
  5. Бағынышты кесте деген не?
  6. Кілттік өріс деген не?
  7. Кілт бойынша байланысты орнату байланыстың қай түріне жатады?
  8. Кілттік емес өріс бойынша байланыс орнатылса байланыстың қай түріне жатады?
  9. Байланысты орнатуға көмектесетін өрістерге қандай шектеулер бар?
  10. Индекстік өріс пен кілттік өріс арасында қандай байланыс бар?

 

    1. Клиенттік қосымшада жоғарғы мәзір құру

 

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

Өздеріңізге таныс компоненттерден басқа (компоненттердің қасиеттерін де білесіз) мына компоненттерді қойыңыз:

BDE қатпарынан Table1 компонентін қойып TableName қасиетіне student.db деп көрсету керек.

MainMenu компоненті, Items Menu…пернесін  басып, Form1.MainMenu1 терезесінде жоғарғы  мәзір пункттері мен ішкі пункттерді  анықтаймыз: Файл (АШУ, ЖАБУ, ШЫҒУ), Анықтама (Программа туралы) деп жазайық.

Қалыпта пайда болған жоғарғы мәзірдің ішкі мәзірі АШУ – диалогтық режимде қосылатын болғандықтан OpenDialog1 компонентін Dialog қатпарынан қоямыз. Servers қатпарынан мәтіндік редакторға экспорттау үшін WordApplication1, WordDocument1 компоненттерін қоямыз.

 

20-сурет-Жоғарғы мәзірі бар жоба

 

Программа туралы мәтінді жазу үшін Memo1 қойып, Lines String… қасиетін шертіп, ашылған терезеде программа туралы қысқаша деректерді енгізіңіз. Қалыпта ол қажет болғанға дейін көрінбей тұруы үшін қалыптың кез келген бос жеріне тышқанмен 2 рет шертіп, ашылған терезеде мына кодты тереміз:

Form1.Memo1.Visible:=False;

Енді мәзірдің ішкі пункттерін анықтаймыз. Ол үшін қалыптағы 1-ші пункттегі АШУ сөзін 1 рет шерту керек, ашылған терезеде мына кодты тереміз:

if OpenDialog1.Execute then Form1.Table1.Active:=True;

ЖАБУ пункті үшін мына кодты тереміз:

Table1.Active:=False;

DataSource1.DataSet.Close;

Шығу пункті үшін мына кодты жазамыз:

close;

Анықтама пункті үшін мына кодты тереміз:

Form1.DBGrid1.Visible:=False;

Form1.DBNavigator1.Visible:=False;

Form1.Memo1.Visible:=True;

Word-қа экспорттау пернесіне мына  кодты жазамыз:

procedure TForm1.Button1Click(Sender: TObject);

var  XLApp,Sheet,Colum:Variant;

index,j:Integer;

begin

Screen.Cursor := crHourGlass;

WordApplication1.Connect;

WordApplication1.Documents.Add(EmptyParam, EmptyParam, EmptyParam,

EmptyParam );//2

WordDocument1.ConnectTo(form1.WordApplication1.ActiveDocument);

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

WordApplication1.Options.CheckSpellingAsYouType:=False;

WordApplication1.Options.CheckGrammarAsYouType:=False;

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

WordApplication1.ActiveWindow.View.TableGridlines := true;

WordApplication1.Selection.PageSetup.LeftMargin := 40;

WordDocument1.Tables.Add( form1.WordDocument1.Range,

form1. Table1.RecordCount + 1, 5 , EmptyParam, EmptyParam );//2

WordDocument1.Tables.Item(1).Columns.Item(1).Width := 30;

WordDocument1.Tables.Item(1).Columns.Item(2).Width := 120;

WordDocument1.Tables.Item(1).Columns.Item(3).Width := 110;

WordDocument1.Tables.Item(1).Columns.Item(4).Width := 90;

WordDocument1.Tables.Item(1).Columns.Item(5).Width := 90;

WordDocument1.Tables.Item(1).Cell(1,1).Range.Text := '№';

WordDocument1.Tables.Item(1).Cell(1,2).Range.Text := 'Студенттің  аты-жөні';

WordDocument1.Tables.Item(1).Cell(1,3).Range.Text := 'Мекен  жайы';

WordDocument1.Tables.Item(1).Cell(1,4).Range.Text := 'Туған  жылы';

WordDocument1.Tables.Item(1).Cell(1,5).Range.Text := 'Телефоны';

//********************************

Table1.First;

i := 1;

while not(Table1.Eof) do begin

inc(i);

WordDocument1.Tables.Item(1).Cell(i,1).Range.Text :=

Table1.FieldByName('N_bilet').AsString;;

WordDocument1.Tables.Item(1).Cell(i,2).Range.Text :=

Table1.FieldByName('FIO').AsString;;

WordDocument1.Tables.Item(1).Cell(i,3).Range.Text :=

Table1.FieldByName('Adres').AsString;

WordDocument1.Tables.Item(1).Cell(i,4).Range.Text :=

Table1.FieldByName('Data').AsString;

WordDocument1.Tables.Item(1).Cell(i,5).Range.Text :=

Table1.FieldByName('Telephone').AsString;

Table1.Next;

end;

WordApplication1.Selection.WholeStory;

WordApplication1.Selection.Font.Size := 12;

WordApplication1.Selection.Font.Name := 'Times New Roman';

WordApplication1.Visible := true;

Screen.Cursor := crDefault;

Table1.First;

end;

 

Excel-ге экспорттау пернесіне  мына кодты жазамыз:

procedure TForm1.Button1Click(Sender: TObject);

var  XLApp,Sheet,Colum:Variant;

index,j:Integer;

begin

XLApp:= CreateOleObject('Excel.Application');

XLApp.Visible:=true;

XLApp.Workbooks.Add(-4167);

XLApp.Workbooks[1].WorkSheets[1].Name:='Есеп';

Colum:=XLApp.Workbooks[1].WorkSheets['Есеп'].Columns;

Colum.Columns[1].ColumnWidth:=20;

Colum.Columns[2].ColumnWidth:=20;

Colum.Columns[3].ColumnWidth:=20;

Colum.Columns[4].ColumnWidth:=20;

Colum.Columns[5].ColumnWidth:=20;

Colum:=XLApp.Workbooks[1].WorkSheets['Есеп'].Rows;

Colum.Rows[2].Font.Bold:=true;

Colum.Rows[1].Font.Bold:=true;

Colum.Rows[1].Font.Color:=clBlue;

Colum.Rows[1].Font.Size:=14;

Sheet:=XLApp.Workbooks[1].WorkSheets['Есеп'];

Sheet.Cells[1,2]:='Студенттер туралы мәліметтер';

Sheet.Cells[2,1]:='Студенттік билет нөмірі';

Sheet.Cells[2,2]:='Аты-жөні';

Sheet.Cells[2,3]:='Мекен жайы';

Sheet.Cells[2,4]:='Туған жылы';

Sheet.Cells[2,5]:='Телефоны';

index:=3;

Table1.First;

for i:=1 to Table1.RecordCount do

begin

for j:=1 to DBGrid1.Columns.Count do

Sheet.Cells[Index, j]:=DBGrid1.Fields[j-1].AsString;

Inc(Index);

Table1.Next;

end;

end;

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

 

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

  1. Клиенттік қосымша деген не?
  2. Клиенттік қосымша қалай құрылады?
  3. Жоғарғы мәзір деген не? Ол қалай құрылады?
  4. Жоғарғы мәзірдің пункттерін қалай бағдарламалайды?
  5. Фотосуреттер қалай базада сақталады?
  6. Мәтіндік редакторға кестедегі деректерді қалай экспорттайды?
  7. WordApplication компоненті не үшін керек? Оның қандай қасиеттері бар?
  8. Кестелік процессорға кестедегі деректерді қалай экспорттайды?
  9. Excel.Application әдісі нені білдіреді?
  10. Кестелік процессормен байланыс қалай орнатылады?

 

3.4 Мемо-өрістер, бағандарды жөндеу және деректерді іздеуді ұйымдастыру

 

Деректер қорымен жұмыс істеу кезінде мемо-типті деректерді қолдану мүмкіндігі бар. Онда ұзақ мәтіннен тұратын деректерді сақтау ыңғайлы. Сонымен қатар құрылған кестенің баған атаулары латынша болғаны тиімсіз, оны қазақша немесе орысшаға аударып жазу керек. Ал DataBaseDesktop терезесінде деректер қоры кестесінің өріс атаулары латынша болғаны дұрыс. Себебі Дельфи ортасында бағдарламалық кодтар жазғанда, сұраныстар құрғанда өріс атаулары орыс немесе қазақ әріптерімен жазылса, оны Дельфи ортасы танымайды, қате деп қабылдайды. Сондықтан кез келген қосымшаны құру кезінде бағдарламаға қатысатын негізгі атаулар (кесте атауы, атрибут атауы, кілт атауы, индекс атауы т.б.) латын әріптерімен болуы керек. Сонымен қатар деректер қоры кестесінен деректерді іздеу маңызды амалдардың бірі. Себебі қандай да бір мекеме, ұйым қызметкерлері, клиенттері туралы деректерден қажетті деректі іздеу ең жиі кездесетін операция. Іздеудің бірнеше түрі бар: кілт бойынша іздеу, индекс бойынша іздеу, белгілі бір өріс бойынша қарапайым іздеу, т.б. Соның ішінде қарапайым іздеуді қарастырайық. Оны практикада біртіндеп іздеу дейді. Ол ізделінді бір ғана жазуды тауып береді. Егер бірнеше жазуды бірақ іздеу керек болса, онда индекстік іздеуді қолданған дұрыс.

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

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