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

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

Деректерді іздеуді ұйымдастыру үшін компоненттердің қасиеттерін көрсетеміз.

Table1-ді белгілеп, DataBaseName қасиетін Primer деп, TableName қасиетін student деп көрсетеміз. Table1-дің Active=True қасиетін көрсетеміз. DataSource1 компонентін белгілеп, DataSet қасиетін Table1 деп көрсетіңіз. DBMemo1 компонентін белгілеп, DataSource қасиетін DataSource1 деп көрсетіңіз, DataField қасиетін тізімнен Kharacter деп көрсетіңіз. Деректерді кесте түрінде шығарғыларыңыз келсе DBGrid1 компонентін қолданыңыздар. Сосын DBGrid1 компонентін белгілеп, DataSource қасиетін DataSource1 деп көрсетіңіз. DBNavigator1 компонентін қойып, DataSource қасиетін DataSource1 деп көрсетіңіз. Егер деректерді экранда бір бірден көргіңіз келсе, онда қалыпқа қажетінше DBEdit, Label, DBRadioGroup, DBChekBox, т.б. компоненттерді орын орнына әдемілеп қойып, тақырыптарын жазып, қалыпты жөндеңіздер. Сосын қажетінше DBEdit1 компонентін белгілеп,  DataSource қасиетін DataSource1 деп, DataField қасиетін тізімнен FIO деп көрсетіңіз. Қалған DBEdit-компоненттердің қасиеттері де тура осылай тағайындалады. DBRadioGroup1 компонентін белгілеп, DataSource қасиетін DataSource1 деп, DataField қасиетін тізімнен Pol деп көрсетіңіз, Caption қасиетін белгілеп, «Жынысы» деп жазыңыз, Items…қасиетін көпнүктені басу арқылы ашып, терезеде «Ер, Әйел» деген мәндерді енгізіп, жабыңыз, сонда қалып 22-суреттегідей болады.

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

Үлкен кестелерден белгілі бір жазуларды таңдау қажет болса оларды алдымен іздеп тауып алған дұрыс. Іздеу операциясы мына әдіспен орындалады:

 

21-сурет-Мемо-өрісті толтыру, бағандарды жөндеу, іздеу жобасы

 

Function.Locate(const KeyFields: string; const KeyValues: Variant;   Options: TlocateOptions) : boolean;

Бұл әдісте параметрлер ретінде өрістер атаулары алынады.

«Іздеу» деп аталатын Button1 пернесін 2 рет шертіп, мына кодты теріңіз:

procedure TForm1.Button1Click(Sender: TObject);

begin

Form1.Query1.Locate('Fio', Edit1.Text, [LoPartialKey, LoCaseInsensitive]);

end;

end.

[LoPartialKey, LoCaseInsensitive] параметрлері – аты-жөні бойынша іздеу кезінде регистрге көңіл аудармауды, өрістің мәндерін толық енгізбеуді қарастырады.

Егер іздеуді аты-жөні өрісімен емес басқа өріс арқылы жүргізу керек болса, оның орнына басқа атауды көрсету керек.

Тағы бір мысал қарастырайық. Қандайда бір фирманың клиенттері туралы деректер сақталған Client.db  кестесінде іздеу операциясын қолдану керек болсын.

Form1 қалыбында  тақырыптары  «адам  есімі бойынша іздеу», «телефон  номері бойынша іздеу», «Адрес бойынша іздеу»  болатын үш TradioButton компоненттерін, «Іздеу шарты» деп аталатын  Tlabel компонентін, мәліметтердіенгізуге арналған  Tedit компонентін, «Іздеу» деп аталатын  Tbutton компонентін орналастырамыз.

Locate әдісін қолданамыз. Келесі ретпен жазамыз:

1 кілттік өріс

2 іздеуге жататын дерек қайдан  алынады

3 іздеу параметрлері:

LoCaseInsensitive – бас әріптер есепке  алынбайды

LoPartialKey – дербес кілт

«Іздеу» компонентіне программалық код жазамыз:

Var

KeyField:string;

Begin

If RadioButton1.Checked=treu then Begin

KeyField:= ‘ClientName’;

End;

If RadioButton2.Checked=True then begin

  KeyField:=’Phone’;

End;

If RadioButton3.Checked=True then begin

  KeyField:=’Adress’;

End;

Table1.Locate(KeyField.Edit1.Text, [LoCaseInsensitive.LoPartialKey]);

End;

Қосымшаны орындап, мәліметтерді енгізіп, іздеудің нәтижесін көріңіз.

Студенттер мәліметтер қорында іздеу операциясын әртүрлі әдіспен орындап көрсетіңіз.

Егер деректер базасын қарау кезінде DBGrid компонентін қолдансаңыз,

 

22-сурет-ColumnsEditor терезесі

оның бағандарының атауы базадағы сияқты ағылшын әріптерімен жазылып тұрады, ол құжатты принтерден шығарғанда көрнекілік жағынан да тиімсіз. Одан құтылу үшін келесі амалдарды орындаңыз:

DBGrid1-ті белгілеп, тышқанның оң  жақ пернесін басу

ColumnsEditor командасын орындау керек, сонда 22-суреттегідей терезе ашылады. Терезедегі Add New – өріс атауын жөндеу пернесін басу (23-сурет). Пайда болған  0 – Tcolumn сөзін белгілеу керек. Қасиеттер терезесіне көшіп,

 

23-сурет-Бағандар қасиетін тағайындау терезесі

 

келесі мәндерді тағайындау:

FieldName – кестедегі 1-ші өріс атауы, Title – Caption – 1-ші өрістің қазақша немесе орысша жаңа атауы, Font - шрифт, Aligment – түзету. 1-ші өрістің тақырыбы өзгерген соң осы амалдарды басқа барлық өрістер үшін сәйкесінше қайталау керек.

Фильтр – сүзу.

Деректер кестесі жазуларынан белгілі бір шартты қанағаттандыратын жазуларды сүзіп алу сұраныс немесе фильтр деп аталады. Қандай да бір жазуларды кестеден уақытша жасыру керек болса, фильтр қолдануға болады (23а-сурет).

Мысалы фамилиялары А әрпінен басталатын студенттердің тізімін сүзіп алу керек болса, ол үшін Table1 компонентін белгілеп, оның Filter қасиетіне FIO=’A*’ деп жазамыз, мұндағы жұлдызша – А әрпінен кейін кез келген символдың болуын білдіреді, сосын фильтрді белсенділеу үшін Filtered қасиетін True деп көрсетеміз.

Егер фильтрді алып тастау керек болса, онда Filtered қасиетін False деп көрсетеміз.

 

23а-сурет-Фильтр нәтижесін көру терезесі

 

Егер фильтрді бағдарлама көмегімен орындау керек болса, бірнеше әдісі бар, соның бірі қалыпқа қосымша бір Button1 компонентін қойып, «Фильтрлеу» деп атап, оны бір рет шерту оқиғасына мына кодты жазамыз:

Tbutton OnClick оқиғасына код жазамыз.

Begin

If RadioButton1.Checked=true then begin

Table1.Filter:=’FIO='''+Edit1.Text+'*'+'''';

End;

If RadioButton2.Checked=true then begin

Table1.Filter:=’Adres='''+Edit1.Text+'*'+'''';

End;

If RadioButton3.Checked=true then begin

Table1.Filter:=’Telephone='''+Edit1.Text+'*'+'''';

End;

Table1.Active:=True;

Table1.Filtered:= True;

End;

 

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

      1. Мемо өрістер деген не? Олар қалай толтырылады және базаға сақталады?
      2. Кесте бағандарын қалай қазақшалауға болады?
      3. Іздеу деген не? Оның неше түрі бар? Олар қалай іске асырылады?
      4. Деректерді сүзу деген не?
      5. Сүзуді орындаудың неше амалы бар?
      6. Query1 компоненті не үшін қажет? Оның қандай негізгі қасиеттері бар?

 

3.5 Сұраныс құру

 

Сұраныс құру компоненті query деп аталады. Бұл компоненттің екі түрі бар: Tquery – BDE қатпарында орналасқан, деректерге рұқсатты BDE технологиясымен береді, ADOQuery – ADO қатпарында орналасқан, деректерге рұқсатты ADO технологиясымен береді. Query компоненттері бірнеше кестелерден қажетті жазулардан сұраныс құруға көмектеседі. Сұраныс құруда  Structured Query Language (SQL) тілінің маңызы зор. SQL операторлары программалық кодтан орындалады. Tquery  компонентінің SQL қасиетінде операторды жазып көрсетуге болады немесе бағдарламада орындау үшін ExecSQL әдісі қолданылады.

 SELECT операторы SQL тілінің негізгі операторы болып табылады. Ол бірнеше кестеден берілген шартты қанағаттандыратын жазуларды алып шығарады.

Оператордың жазылуы келесідей:

SELECT өрістер тізімі FROM кесте атауы;

Мысалы: SELECT FIO, Adres FROM student.db

Паскаль тіліндегідей Select, From сөздері   SQL тілінің резервтегі кілттік қызметші сөздері ретінде қабылданған.  SQL операторларын бас әріптермен жазу керек.

Сұранысты құру үшін Query1 компонентін қойып, Query1 компонентін белгілеп, DataBaseName қасиетін Primer деп, SQL қасиетіне сұраныс командасын жазамыз. Сұранысты орындау үшін Query1 компонентін белгілеп, белседілеу үшін Active қасиетін True деп көрсету керек, сонда мысалдың нәтижесінде екі өрістен тұратын  уақытша деректер жиыны деп аталатын деректер кестесін аламыз.

Егер сұранысқа барлық өрістерді енгізу керек болса, * символын көрсетеді. Мысалы:

Select *  From student.db

Шарт бойынша мәліметтерді жинақтау үшін Where қызметші сөзінен кейін Паскаль тілінде шартты өрнекті көрсету керек. Өрнекте мына салыстыру таңбалары: <, > =, >=, <=, логикалық операциялар:  Or, AND, NOT  қолданылады. Жалпы жазылуы:

SELECT өрістер тізімі  FROM кесте  атауы  WHERE шарт; 

Мысалы: SELECT * FROM student.db WHERE stipendia>=12000 and stipendia<=20000

Командасы нәтижесінде кестенің барлық өрістерінен тұратын 12000 теңгеден 20000 теңгеге дейінгі аралықта стипендия алатын студенттердің тізімінен сұраныс құрылады.

Сұранысты қосымшада құру

Жаңа қосымша құрамыз.

Қалыпта  TDBGrid, Tquery, TdataSource компоненттерін орналастырамыз. Олардың қасиеттерін көрсетеміз.  student.db кестесін қолданайық.

Студенттің фамилиясын Tedit енгізу алаңына енгізген кезде, сол студент туралы деректерді шығару керек болсын. Қалыпқа  Tbutton компонентін орналастырып  “Сұраныс құру” деп атаймыз. 

“Сұраныс құру” компонентін шерту оқиғасына программалық код жазамыз:

Begin

If Edit1.Text<>’ ‘ then Begin

Query1.Active:=False;

Query1.SQL.Clear;

Query1.SQL.Add(‘select fio  from student where Fio.Like’+’ ’+ Edit1.Text+’’’’);

Query1.Active:=True;

End

Else Begin

Query1.Active:=False;

Query1.SQL.Clear;

Query1.SQL.Add(‘select * from student);

Query1.Active:=True; End;

End;

Қосымшаны орындауға жіберіп фамилияны енгізген соң “Сұраныс құру” батырмасын басамыз.

 

Ескерту. Фамилияны толық жазбауға болады.

Ескерту. Жаңа сұраныс құру үшін  Edit1 өрісін тазалап қайтадан  “Сұраныс құру ” батырмасын басу керек. Сонда барлық өрістер шығады.

 

Сұраныстар және SQL-конструкциялар.

1 Таңдау сұранысын қарастырайық. Мәліметтер қоры кестелерінен қандай да бір шарттарды қанағаттандыратын жазуларды басқа кестеге сақтаймыз, оны сұраныс деп атаймыз.

Мысалы: student деген кесте бар болсын, атрибуттары Fio – аты-жөні, Adres-мекен жайы, n_Bilet – студенттік билет нөмірі, Sempol – жанұялық жағдайы, Data- туған мерзімі, Kharacter- мінездеме (memo-өріс).

1) "Ворошилов", "Ауезов"  деп аталатын көшелерде тұратын студенттердің аты-жөні және мекен жайы керек болсын:

SELECT Fio, Adres FROM student WHERE Adres in("Ворошилов", "Ауезов")

2)  Жанұясы бар студенттердің аты-жөні, мекен жайы керек болсын:

SELECT Fio, Adres FROM student WHERE Sempol IN("жанұялы", "тұрмыста")

3) Нөмірі 104-ке тең студенттік билеттің иесінің аты-жөнін, мекен жайын білу керек болсын:

SELECT N_bilet, Fio, Adres FROM student WHERE N_bilet=104

4) Студенттік билеттерінің нөмірлері 101 мен 103 аралығында жататын студенттердің билет нөмірін, аты-жөнін, мекен жайын білу керек болсын:

SELECT Bilet, Fio, Adres FROM student WHERE N_bilet between 101 and 103

2 Өзара байланысқан кестелер  арасында таңдау сұранысын қарастыру  – бір немесе бірнеше байланыстырылған  кестелерден әлдебір шартты қанағаттандыратын  деректерді іріктеу керек болсын.

Мысалы: student кестесімен mamandik  кестесі байланысқан болсын. Оның атрибуттары: N-bilet – студенттік билет нөмірі, Kurs-курс, Spez - мамандық, Stip – стипендия.

1) 050602 мамандығында оқитын студенттердің аты-жөні, курсы, стипендия мөлшерін білу керек болсын:

SELECT student.Fio, mamandik.kurs, mamandik.stip,  mamandik.spez

FROM student, mamandik

WHERE student.N_bilet=mamandik.N_bilet and spez="050602"

2) Стипендия алатын студенттердің аты-жөні, курсы керек болсын:

SELECT student.Fio, mamandik.kurs, mamandik.stip

FROM student, mamandik

WHERE student.N_bilet=mamandik.N_bilet and stip<>0

3) Жанұясы бар студенттердің аты-жөні, туған мерзімі, мамандығы керек болсын:

SELECT student.Fio, student.Data, mamandik.spez

FROM student, mamandik

WHERE student.N_bilet=mamandik.N_bilet and Sempol in("жанұялы", "тұрмыста")

3 Есептелетін өрістер арқылы  таңдау сұраныстарын құру –  есептелетін өрістер МҚ кестесінде  сақталмайды, олар қажет кезінде  есептеліп, нәтиже береді және  нәтижесі кестенің соңына жаңа  өріс сияқты көрініп тұрады.

1) Грантта оқитын, жанұясы бар студенттердің стипендиясына 20% қосымша ақша қосып, олардың аты-жөнін, стипендия мөлшерін анықтау керек болсын:

SELECT student.Fio, mamandik.stip, mamandik.stip*20/100

FROM student, mamandik

WHERE student.N_bilet=mamandik.Bilet and Sempol in("жанұялы", "тұрмыста")

4 Сұраныста стандартты функцияларды  қолдану:

Count() – шарт бойынша жазу санын  анықтайды

Avg() – сандық деректердің арифметикалық  ортасын табады

Max() –максимум табу

Min() – минимум табу

Sum() – сандық деректердің қосындысын табады

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

1) Стипендия алатын студенттердің санын білу керек болсын:

SELECT count(stip)

FROM mamandik

WHERE stip<>0

2) Топтағы барлық студенттерге бөлінетін стипендия мөлшерін білу керек болсын:

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