Файл қосу

Деректер базасының кестесін компонентпен байланыстыру




|ҚАЗАҚСТАН РЕСПУБЛИКАСЫ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ                               |
|Семей қаласының шәкәрім атындағы мемлекеттік университеті                         |
|университеті                                                                      |
|3 деңгейлі СМК құжаты       |ПОӘК                |ПОӘК                            |
|                            |                    |042-14.2.07.1.20.37/03-2013     |
|«Кәсіпорындардағы ақпараттық|03.09.2013ж.        |                                |
|жүйелер»                    |№1 басылым          |                                |
|пәнінің оқу- әдістемелік    |                    |                                |
|кешені                      |                    |                                |









                    «Кәсіпорындардағы ақпараттық жүйелер»

                        пәнінен оқу-әдістемелік кешен





               5В060200 – «Информатика»   мамандығына арналған




                         ОҚУ-ӘДІСТЕМЕЛІК МАТЕРИАЛДАР




















                                    Семей
                                    2013.






                                   мазмұны





1.  Дәрістер


2.  Зертханалық сабақтар

3.  Студенттің өздік жұмысы






















































































   1. ДӘРІСТЕР
    Дәріс сабағының құрылымы:

                                  Дәріс №1.

   Дәріс тақырыбы:     Деректер базасы. Деректер базасының архитектурасы

   1. Деректер базасы.

   2. Архитектурасының түрлері.

      Деректерді интеграциялау концепциясына негізделген қазіргі  ақпараттық
жүйелер үлкен көлемді және  құрылымы  жағынан  күрделі  болып  келеді.  Олар
көптеген пайдаланушылардың  әртүрлі  деңгейдегі  талаптарын  қанағаттандыруы
тиіс.  Кеңінен  түсіндірер  болсақ,  деректер  базасы  дегеніміз  –   шынайы
өмірдегі  белгілі  бір  сала  бойынша  бар  объектілер   жайлы   мағұлматтар
жиынтығы. Шынайы өмірдің бір бөлігін пәндік аймақ  деп  айтуға  болады.  Бұл
бөлік басқарудағы ұйымдастыру мәселелерін зерттеу  үшін  және  соңында  оның
жұмыстарын  автоматтандыру  үшін  қажет.  Мысалы,  кәсіпорын,  жоғарғы   оқу
орындары және т.б. Деректер базасын құрғанда пайдаланушы  әртүрлі  белгілері
бойынша реттеп,  одан  көптеген  басқа  да  белгілердің  жинақталуы  бойынша
таңдау  жүргізе  алады.  Мұндай  жұмысты  деректер   құрылымы   тәртіптелген
жағдайда ғана жүргізуге болады.

      Қажетті  деректер  базасын  жылдам  жасауға  рұқсат   ететін   әртүрлі
программалар жиыны бар: Microsoft Access, Microsoft FoxPro, Paradox,  dBase,
InterBase, Oracle. Олардың  ішінде  Paradox  пен  dBase-да  деректер  базасы
папкалар сияқты, ал әрбір кесте жеке  файл  сияқты  анықталады,  ал  Access,
InterBase және SQL-серверлерінің көпшілігі деректер  базасынан  тұратын  бір
үлкен файлды қолданады.

      Деректер базасы – белгілі бір пәндік аумаққа жататын  құрылымдық  түрі
бар деректердің атауы бар жинақ.

      Деректер  базасы  үшін  ақпаратты  өңдеу  және  рұқсат  алу  тәсілдері
бойынша,  сонымен  қатар  деректер   базасының   орналасқан   орны   бойынша
қосымшалар архитектурасы бірнеше түрлерге бөлінеді.
 • Жергілікті архитектура – программа және деректер базасы  бір  компьютерде
   орналасқан.
 • Файл-серверлік архитектура – деректер базасы сервер деп аталатын желідегі
   негізгі (орталық) болып бөлінген  компьютерде  орналасады.  Ал  клиенттік
   программалар орнатылған дербес компьютерлер оған жергілікті желі  бойынша
   қосылған. Бұл архитектура бірнеше пайдаланушыларға бір деректер базасымен
   бір уақытта жұмыс істеу мүмкіндігін береді.
 • Клиент-серверлік архитектура – деректер базасы  серверде  сақталады  және
   мұнда  пайдаланушылар  сұраныстарын  өңдейтін  деректер  базасын  басқару
   жүйесі (ДББЖ) жұмыс істейді. Бұл  архитектурада  пайдаланушылар  деректер
   базасымен  қойылған  тапсырмаларды  орындайтын  және   алынған   нәтижені
   қайтаратын ДББЖ арқылы жұмыс істейді.  Табылған  деректер  клиентке  желі
   бойынша  серверден   клиентке   қарай   жіберіледі.   Клиент   –   сервер
   архитектурасының ерекшелігі SQL – құрылымдық сұраныстар  тілін  пайдалану
   болып табылады. Бұл архитектура бірнеше пайдаланушыларға бір уақытта  бір
   деректер базасымен жұмыс істеуге рұқсат етеді.
 • Таратылған архитектура – деректер базасы  бірнеше  серверлерде  сақталады
   және олардың   әрбіреуінде  ДББЖ  көшірмелері  болады.  Сонымен  деректер
   базасы  және  клиенттік  қосымшаларға  ұқсас   архитектурада   қосымшалар
   серверлері   және   компоненттер   қолданылады.   Қосымшалар   серверлері
   пайдаланушылар сұраныстарын өңдеуге және желідегі компьютерлер арасындағы
   жүктемені біркелкі бөлуге  рұқсат  етеді.  Компоненттер  –  бұл  бөлінген
   серверде күрделі есептеулерді орындау үшін қолданылатын программалар.
 •  Интернет-архитектура  –  деректер  базасы  және  ДББЖ  бір   компьютерде
   орналасады, ал оларға  рұқсат  алу  желілік  протокол  стандарты  бойынша
   броузерлер арқылы жүзеге асады.

   «Файл-сервер» және «Клиент  сервер»  архитектураларының  сұлбасы  төменде
көрсетілген.











































         1.1-сурет.   «Файл-сервер»                                     1.2-
      сурет.                                                 «Клиент-сервер»



                                                               архитектурасы
          архитектурасы




                                  Дәріс №2.

   Дәріс тақырыбы:    Деректерді ұсынудың модельдері

   1. Иерархиялық деректерді моделдеу

   2. Желілік деректерді моделдеу

   3. Реляциялық деректерді моделдеу




      70-80 жылдардың  соңында  деректер  базасын  басқару  жүйесінің  дамуы
негізінде  деректерді  ұсынудың  әртүрлі  модельдері  пайда   болды.   Әрбір
модельдің өзінің ерекшеліктері мен жетіспеушіліктері болды.

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

   Мәліметтер моделі екі класқа бөлінеді:
      - Мықты типтендірілген моделі, мұнда барлық мәліметтер қандай да  бір
        категорияға қатысты болады.
      -  Әлсіз  типтендірілген   моделі,   категорияға   қатысты   ешқандай
        болжамдармен  байланысты емес.

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


      Жалпы айтқанда,  деректер моделі -   деректер  құрылымы  жиынтығы  мен
оларды өңдеу операциялары. Деректер базасын  басқару  жүйелері  иерархиялық,
желілік және реляциялық модельдеуге  немесе  осы  модельдердің  белгілі  бір
жиынындағы комбинациясына негізделген.

      Деректер  моделінің  үш  негізгі  типін   қарастырайық:   иерархиялық,
желілік, реляциялық.

                       Иерархиялық деректерді моделдеу

       Иерархиялық  құрылым  бір-бірімен  белгілі   бір   ережелер   бойынша
байланысқан   элменеттер   жиынтығын   береді.   Иерархиялық    байланыстағы
объектілер бағытталған граф (төңкерілген ағаш)  құрады.  Оның  түрі  суретте
бейнеленген.     Иерархиялық құрылымның негізгі ұғымдарына  мыналар  жатады:
деңгей, элемент (түйін), байланыс. Түйін  дегеніміз  белгілі  бір  объектіні
сипаттайтын деректер атрибуттарының жиынтығы.  Сұлбада  иерархиялық  ағаштың
түйіндері граф төбелері ретінде бейнеленген. Төменгі  деңгейдегі  әр  түйін,
жоғары  деңгейдегі  әр  түйінмен  ғана  байланысқан.   Иерархиялық   ағаштың
ешқандай төбеге бағынбаған, ең жоғарғы деңгейде орналасқан  бір  түйіні  бар
(ағаш  түбірі).  Бағыныңқы  түйіндер   екінші,   үшінші   т.б.   деңгейлерде
орналасады.  Деректер  базасындағы  ағаштар  саны  түбір  жазбалары  санымен
анықталады. Деректер базасы әрбір жазбаға түбір жазбадан тек бір жол  болады
(иерархиялық).  Мысалы:   2.6.1-суретінде  көрсетілгендей  С4  жазбасы  үшін
өтетін жол А және В3 жазбалары арқылы өтеді.






















   1-сурет.Иерархиялық құрылымды деректер базасының графикалық бейнеленуі

                         Желілік деректерді моделдеу

      Желілік құрылымда алдыңғы аталған негізгі ұғымдардағы (деңгей,  түйін,
байланыс) әр элемент кез-келген  басқа  элементпен  байланыста  бола  алады.
Иерархиялық модельдің жақсартылған түрі болып табылатын желілік  модель  көп
қолданушылық режимде құрылатын модель. Деректерді желілік ұсыну  элементарлы
мәліметтер және  олардың  арасындағы  қатынастар  бағытталған  желі  түрінде
көрсетіледі (төбелері – мәліметтер, доғалар - қатынастар). Мысалы,  деректер
базасында  тапсырыстарды  сақтауға  арналған   бір   тапсырыс   әртүрлі   үш
байланысқа қатынаса алады.

























     2-сурет. Желілік құрылымды деректер базасының бейнеленуі

                       Реляциялық деректерді моделдеу

      Иерархиялық және желілік  модельдердің  жетіспеушіліктері  деректердің
реляциялық  моделінің  пайда  болуына  әкелді.  Реляциялық  модель   әрекеті
деректер базасының құрылымын оңайлатты.  Мұндағы  барлық  мәліметтер  жолдар
мен бағандардан құралған қарапайым кесте түрінде көрсетілген.

      Реляциялық  деген  ұғым  (ағыл.relation  -  қатынас)  деректер  базасы
жүйелерінің  маманы  белгілі   американдық   ғалым   Е.Коддонның    есімімен
байланысты.

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

      Реляциялық модель деректерді екі өлшемді кесте  түрінде  ұйымдастыруға
бағытталған. Әр реляциялық кесте екі өлшемді  массив  түрінде  беріледі  де,
мына қасиеттерге ие болады:
      - кестенің әр элементі деректердің бір элементі;
      - кестедегі  бағандардың  барлығы  біркелкі,  яғни  бағандағы  барлық
        элементтер бір типке (сандық, таңбалық т.б.) және бәрінің  ұзындығы
        бірдей;
      - әр бағанның өзіне тән аты бар;
      - кестеде бірдей жолдар жоқ;
      - кестеде жолдар мен бағандардың орналасу тәртібі әркелкі.

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

                                  Дәріс №3.

   Дәріс тақырыбы:      Ақпараттық жүйелер және оның негізгі ұғымдары

      1. Жалпы ақпараттық жүйенің функциялары:

      2. Ақпараттық жүйенің түрлері

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

      Ақпараттық жүйе (АЖ) – ақпараттарды сақтауға, өңдеуге  және  көрсетуге
қолданылатын,  бір  –   бірімен   байланысқан   құралдардың,   әдістер   мен
персоналдардың жиыны.

      Мұндай жүйелер көлемі  үлкен  ақпараттармен  жұмыс  істейді  және  бұл
ақпараттың құрылымы күрделі болып келеді.

      Ақпараттық жүйенің классикалық мысалы ретінде  банк  жүйесін,  авиация
және теміржол билетін, қонақ үйде орынды алдын – ала сатып алу  және  т.с.с.
автоматтандырылған жүйелерді қарастыруға болады.

      Ақпараттық жүйе (АЖ) – ақпараттарды сақтауға, өңдеуге  және  көрсетуге
қолданылатын,   бір-бірімен    байланысқан    құралдардың,    әдістер    мен
персоналдардың  жиыны.  Мұндай  жүйелер  көлемі  үлкен  ақпараттармен  жұмыс
істейді және бұл ақпараттың құрылымы күрделі болып келеді.

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

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

     Ақпараттық жүйенің түрлері

      Ақпараттық жүйелер келесі түрлерге бөлінеді: фактографиялық, құжаттық,
құжаттық – фактографиялық.
        1. Фактографиялық жүйеде нақты өмірдегі объект жайлы  мәліметтердің
           (атрибуттардың)  дәл  мәндері  тіркеледі.  Бұл  жүйенің  негізгі
           идеясы – объект жайлы барлық деректер (адамдардың аты –  жөндері
           және заттардың  атаулары,  сандар,  мерзім  КК.АА.ЖЖЖЖ  түрінде)
           беріледі. Фактографиялық АЖ – дегі ақпараттар  қатаң  құрылыммен
           беріледі, өйткені бұл компьютерге  мәліметтерді  бір  –  бірінен
           айыруға  мүмкіндік  туғызады.  Сондықтан   фактографиялық   жүйе
           қойылған сұрақтарға бірмәнді жауап береді.
        2. Құжаттық ақпараттық жүйесінде қандай да бір  формалданған  іздеу
           аппараты  бар  құжаттық  жүйе  мәтіндік   құжаттар   (статьялар,
           кітаптар, рефераттар, заң мәтіндері және  т.б.)  мен  графикалық
           объектілерден құралады, бірақ қойылған сұрақтарға бірмәнді жауап
           бермейді.  Жүйенің  мақсаты  –  қолданушының  сұранысына   жауап
           ретінде сұраныстағы шартты қанағаттандыратын құжаттардың тізімін
           беру болып  табылады.  Мысалы,  «синергетика»  сөзі  бар  барлық
           статьялардың тізімін беру.
        3. Құжат – фактографиялық жүйеде аралас жүйенің  мәліметтері  бөлек
           мәліметтерден, сонымен қатар, бүтін құжаттардан тұрады.

      Сонымен, ақпараттық жүйенің мақсаты нақты өмірдегі объектілердің өзара
байланысын ескере отырып, объектілер жайлы деректерді өңдеу болып  табылады.
Мәліметтер  қоры  теориясында  мәліметтерді  атрибуттар,   ал   объектілерді
маңыздылықтар деп атайды. Объект, атрибут және байланыс – АЖ  –  нің  іргелі
түсініктері болып табылады.
    ➢ Объект (маңыздылық) –  бұл  нақты  өмірде  бар  және  бір  –  бірінен
      айыруға болатын «нәрсе», яғни аталуы және өзіне ұқсастардан  айыратын
      тәсілдерден тұратын «нәрсені» объект деп атауымызға  болады.  Мысалы,
      әрбір мектеп бұл объект. Объект ретінде сондай – ақ адам,  мектептегі
      сынып, фирма, химиялық қосындылар   және  т.с.с.  бола  алады.  Нақты
      өмірді бейнелейтін  абстрактілі  түсініктер  де  объект  бола  алады.
      Мысалы, оқиға, өнер шығармасы, театр қойылымы, кітаптар, кинофильмдер
      және т.с.с.
    ➢  Атрибут  (мәліметтер)  –  бұл   объектіні   сипаттайтын   анықталған
      көрсеткіш және бұл объектнің нақты  экземпляры  үшін  санды,  мәтінді
      немесе басқа мәндерді қабылдайды. Мысалы, фирма шығаратын өнім объект
      болсын. Бұл өнімнің мәліметі ретінде оның аталуы, түсі, салмағы  және
      т.с.с. бола алады.

      Объект жайлы  ақпарат  құрылымды  болуы  тиісті,  өйткені  компьютерде
құрылымды ақпаратты  өңдеу  оңай.  Құрылымды  ақпарат  –  бұл  мәліметтердің
көрініс тәсілдеріне қандайда бір келісімді енгізу  болып  табылады.  Мысалы,
мәтіндік  файлдар  компьютердің  ұтымды  өңдеуіне  жарамсыз  болып   келетін
«құрылымсыз» немесе «әлсіз құрылымды» ақпараттардан тұрады.

                                  Дәріс №4.

   Тақырыбы: Delphi ортасындағы деректер базасы

      1. Жергілікті деректер базасы

      2. Қашықтағы деректер базасы




      Дельфидің құрамына  әртүрлі  жүйелердегі  деректер  файлдарымен  жұмыс
істеу программаларын құруға  мүмкіндік беретін компоненттер  кіреді.  dBase-
бастап   Informix,  Oracle-ге  дейін.  Сонымен  қатар   әртүрлі   форматтағы
деректер базасының файлдарын  құру  мүмкіндігін  беретін,  Borland  Database
Desktop утилитасын ұсынады.

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

      Жергілікті  деректер  базасының  (деректер  файлдары)   деректері  бір
құрылғыда болады, яғни компьютер дискісінде немесе желілік дискіде.

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

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

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

   Қашықтағы  компьютерде   орналасқан    программаның   серверлік   бөлігі,
сұраныстарды  қабылдайды,  оларды  орындайды   және   деректерді   клиенттік
программаларға жібереді. Сұраныс бұл  SQL  (Құрылымды  сұрыныстар  тілі-Язык
структурированных запросов)  тіліндегі командалар. Қашықтағы серверде  жұмыс
істеп тұрған программа, бірнеше пайдаланушыға  бір уақытта ақпаратқа  жетуді
қамтамасыз етеді.  Файлдарды блокировкалау механизмінің  орнына,  транзакция
механизмін пайдаланады.

      Транзакция – тасымалданар алдында, деректерге міндетті түрде орындалуы
керек,   қандай  да  бір  әрекеттер  тізбегі.  Кез  келген  әрекет  орныдалу
барысында қате табылса барлық әрекеттер  тізбегі  қайта  қайталанады.Сонымен
транзакция  механизмі  аппараттарды  сбойыдан  қорғауды  қамтамасыз   етеді.
Деректерге көппайдаланушылық жетуді қамтамасыз етеді.




                                  Дәріс №5.




   Дәріс тақырыбы:  Delphi ортасында деректер базасын құру және басқару

      1. Деректер базасының қосымшасын пайдалану механизмі

      2. Деректер базасының кестесін компонентпен байланыстыру.

      3. Мәліметтерді көрсету




      Delphi ортасында әртүрлі  деректер  базасын  құруға  болады.  Деректер
базасы  құрылымының  қиындығына  қарамастан,  мәліметтермен  жұмыс   істеуге
мүмкіндік беретін негізгі механизм бар. Ол компоненттер триадасынан  тұрады.
Бұл компоненттер мыналар:
    • Мәліметтерді енгізу компоненттері (Ttable, TQuery)
    • DataSource компоненті

      Мәліметтерді енгізу компоненттері  DataAccess бетінде  орналасқан.  Ал
мәліметтерді көрсету компоненттері DataControls бетінде орналасқан.

      Қарапайым Деректер базасын құрудың күрделі  Деректер  базасын  құрудан
өзгешелігі  шамалы.  Формаға  бірнеше  компонентті  қойып,  олардың  қажетті
қасиеттерін өзгертсек, жұмыс істеп тұрған деректер базасын аламыз.

       Мәліметтерді  енгізу  компоненттері  мен   көрсету   компоненттерінің
арасындағы  байланысты  қамтамасыз   ететін   DataSourse   компоненті.   Бұл
компоненттердің деректер базасындағы өзара байланысын қарастырсақ:

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

      Деректер базасының қосымшасын пайдалану механизмі

      Қосымша Ttable – мен  байланысатын  компоненттер  мәліметтермен  жұмыс
істеуге мүмкіндік беретін компоненттер  болып  табылады.  Олар  мәліметтерді
инкапсуляциялайды және әртүрлі операцияларды орындау үшін BDE  функцияларына
жүгінеді. Мұндай компоненттердің санына шектеу қойылмайды.

      TdataSource компонентінің тағы бір функциясы болып мәліметтерді енгізу
және  көрсету  компоненттерінің  жұмысын  синхронациялау   болып   табылады.
Мысалы, егер  енгізу  компоненттері  «тек  оқу  үшін»  (только  для  чтения)
режимінде жұмыс  істесе  TdataSource  мәліметтерді  көрсету  компоненттеріне
мәліметтерді  өзгертуге  тиым  салады.  Бір  ғана  dataSource  компонентімен
бірнеше көрсету компоненттері  байланыста  болуы  мүмкін.  Бұл  компоненттер
мәліметтерді көрсету процесін басқарады.

      Енгізілген  мәліметтерді  ашқан  кезде  деректер   базасының   қажетті
кестесінің жолдарын енгізілген мәліметтерге жібереді. Меңзер  бірінші  жолға
орналасады.

      Пайдаланушы мәліметтерді көрсету компоненттері көмегімен  мәліметтерді
көру және өзгерту мүмкіндігіне ие  болады.  Өзгертулер  алдымен  TdataSource
компонентіне, содан кейін деректер базасына жіберіледі.

      Деректер базасы қосымшаның жалпы жұмысын қарастырғаннан кейін  қосымша
құруды кезеңдерге бөліп қарастырайық.

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

      Деректер  базасында   пайдаланушымен   байланыс   жасау   үшін   форма
пайдаланылады.

      Жаңа форма құрып алған соң мәліметтерді көрсету компоненттерін формаға
тасып мынадай әрекеттер жасау керек:

      Деректер  базасын  компонентпен  байланыстыру.  Ол   үшін   объектілер
инспекторындағы  Database  қасиетін  пайдаланамыз.  Бұл  жерде  BDE   –   де
тіркелген  деректер  базасының  псевдонимін   көрсету   керек.   Псевдонимді
ашылатын тізімнен таңдап алуға болады.

      Деректер  базасының  кестесін  компонентпен  байланыстыру.   Ол   үшін
объектілер  инспекторы  терезесіндегі   TableName   қасиеті   пайдаланылады.
Бірінші  кезеңді  орындағаннан  кейін  берілген  деректер  базасының  барлық
кестелері тізімде көрінуі  керек.  Бұл  тізімнің  құрамы  TableType  қасиеті
арқылы анықталады. Егер мәні ttDefault болса, онда таңдап  алынған  кестенің
барлық файлдары кеңейтулерімен көрсетіледі.  Кестені  таңдап  алған  соң  ол
компонентпен байланысады.

      Компоненттің атын өзгерту. Бұл  міндетті  емес,  бірақ  компоненттерге
ойластырылған ат берген дұрыс. Көбінесе компоненттің аты онымен  байланысқан
кестенің аты мен Table сөзінің комбинациясынан тұрады.

      Деректер базасы мен компонент  арасындағы байланысты активтендіру.  Ол
үшін Active қасиеті пайдаланылады. Егер объектілер инспекторында True  мәнін
меншіктесек, байланыс активтенеді.

      TdataSource компонентін баптау

   Формаға TdataSource компонентін қойып,  оны  баптау  керек.  Баптау  үшін
мынадай әрекеттер орындау керек:

   1.   Мәліметтермен   жұмыс   істеу   компоненттерін   TdataSource    –пен
байланыстыру.  Ол  үшін   DataSet   қасиеті   пайдаланылады.   Бұл   тізімде
пайдалануға болатын компоненттердің тізімі көрсетіледі.

   2. Компоненттің атын өзгерту. Бұл міндетті емес.

      Мәліметтерді көрсету

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

      Деректер базасының қосымшасында TDBGrid  компонентінің  мәні  зор.  Ол
мәліметтерді кесте түрінде көрсетеді.

      Мәліметтерді көрсету үшін мынадай әрекеттерді орындау керек:
1. Мәліметтерді көрсету компонентін TdataSource компонентімен  байланыстыру.
   Ол үшін dataSource қасиеті пайдаланылады. Бұл жерде  қажетті  TdataSource
   компонентінің атын көрсету керек.
2.  Мәліметтер  өрісін   (поле)   көрсету.   Ол   үшін   DateField   қасиеті
   пайдаланылады.

   Мәліметтерді  көрсету  компоненттерінің  ішінде  TDBNavigator  компоненті
ерекше орын алады. Ол кесте жолдарында орын ауыстыруға арналған.  Ол  әдетте
TDBGrid компонентімен бірге жүреді.




                                  Дәріс №6.

      Дәріс тақырыбы:  ДҚ жұмыс жасау үшін қолданылатын компаненттер

      1. Delphi ортасының беттері

      2. Интернетпен жұмыс істеуге арналған компоненттер.




    Енді мәліметтер қорымен жұмыс барысында қажет болатын Delphi  ортасының
беттеріне тоқтала кетейік.
            Delphi-де ДҚ кестелерінің форматы  болмайды  ,  бірақ   көптеген
        ДҚБЖ-мен қатынас жасайды, жергілікті -dBase Paradox,  өнеркәсіптік -
        SyBase InterBase ДҚ-мен  жұмыс істеуге арналған  Delphi  құралдарына
        жатады :
    - Аспаптық құралдың ( арнайы бағдарламалар және пакеттер )
    - Компоненттер  ,  қосымшаларды  құруға  арналған  ДҚ  операция,  жүзеге
      асырады .
  Delphi ДҚ операцияларына арналған құралдарға келесілер жатады :
    - BDE ( Borland DataBase Engine  )  –  мәліметтер  базасының   кітапхана
      қорын құрайтын процессоры.
    - BDE Administrator – күйге келтіруге арналған утилит .
    - DataBaseDesktop – SQL және QBE шақыруларының  кестесін  құру,  түзеуге
      арналған программа.
    - SQL Explorer – ДҚ жол бастаушысы ,  БД  параметрлері  жөндеуге  рұқсат
      етеді .
    - Monitor – SQL сұраныстарының орындалуын қадағалайтын программа .
    - SQL Links – ДҚБЖ жойылған программалар  драйвері  мыс;   MSSQL  Server
      Oracle ;
    - Local InterBase Server  -  Borland  InterBase-дағы  жергілікті  SQL  –
      серверінің версиясы.
    - InterBase Server Server for Windows 95– Borland  InterBase  –дағы  SQL
      -серверінің төртеуін  бір  уақытта  қосуға  есептелген  көп  қолданушы
      версиясы.
  ДҚ жұмыс жасау үшін қолданылатын компаненттер,  DataAccess, DataControls,
Midas, Qreport және  DesisionCube  беттерінде  болады.  DataAccess   бетінде
визуалды емес компонент орналасқан, олардың  көмегімен  мәліметке  қатынасты
ұйымдастыруға болады:
    - DataSourse – мәліметтер көзі ;
    - Table – ДҚ  кестесіне негізделген мәліметтер жиыны ;
    - Query – SQL сұрауына негізделген мәліметтер жиыны ;
    - StoredProc – серверде сақталған процедураға  негізі мәліметтер жиыны;
    - DataBase - ДҚ мен байланысуы;

  Session – БД да  ағымдағы жұмыстар сеансы .



  DataControls бетінде келесі визуалды компоненттер орналасқан;
    - DBGrid – тор ( кесте )
    - DBNavigator – навигациялы интерфейс
    - DBText - жазу
    - DBEdit – бір жолдық  редактор
    - DBImage – графикалық бейне
    - DBListBox – қарапайым тізім
    - DBComboBox – қиыстырылған тізім
    - DBCheckBox – тәуелдісіз ауыстырып- қосқыш




  QReport бетінде келесі визуалды компоненттері орналасады

     QuckRep - есептеу

     - QRSubDetail – байланысқан  кестелерге арналған есепберу жолағы
    - QRBand – есепберу жолағы
    - QRGroup - топ

  QRLabel - жазу

       ADO   беті.  Бұл  беттің  компоненттерінің  функциялары   BDE   беті
компоненттерінің функцияларына өте  ұқсас,  айырмашылығы  ADO  технологиясын
қолдайтындықтарында. Барлық компоненттері 5-нұсқада енгізілген.

    InterBase беті. Мәліметтер қорының сервері  InterBase-  ді  осы  беттің
компоненттері қолдайды. Мұнда IBExpress технологиясы пайдаланады.

    Decision  Cube  беті.  Көп  өлшемді  мәліметтерді  саралау  нәтижесінде
шешімдер қабылдауға арналған компоненттер орналастырылған.

    Qreport беті. Мәліметтер қорында сақталған мәліметтер  бойынша  есептер
құруға мүмкіндік беретін отызға жуық компоненттер орналасқан.

    Интернетпен жұмыс істеуге арналған компоненттер.

    Internet  беті.  Бұл  беттің  компоненттері  дүниежүзілік  компьютерлік
жүйемен  жұмыс  істеуге  мүмкіндік  жасайды.  Бұл  жүйе   бір-бірінен   алыс
орналасқан екі компьютердің  байланысын  қамтамасыз  етеді.  Компьютерлердің
бірі  ақпаратты  алады  (клиент),  ал  екіншісі  ақпаратты   таратады.   Екі
компьютер   де   TCP/IP   (Transport   ControlProtocol/Internet    Protocol)
хаттамасын асүйену керек. World  Wide  Web  (WWW)  интернетінің  бір  бөлігі
болып табылады. Ол  компьютерлер  арасындағы  байланысты  HTML  –  беттердің
көмегімен жүзеге асырылады.

    FastNet беті.  Бұл  беттің  компоненттері  программистке  хаттамалардың
негізінде әртүрлі ақпараттармен алмасуды жүзеге асыруға мүмкіндік береді. 2-
4 нұсқаларда бұл компоненттер интернет бетінде орналасқан. Платформа  аралық
программалар үшін Indy бетінің компоненттерін пайдаланған дұрыс.

    WebServise беті.  Бұл  беттің  компоненттері  Web  –  қызметі   құратын
SOAP(Simple Object Access Protocol) технологиясын  қолдайды.  Web  –  қызмет
дегеніміз клиенттің талаптарын жауап ретінде  Web  –  сервері  іске  қосатын
программа.

    WebSnap беті. Бұл беттің компоненттері  Web  Server  технологиясын  ары
қарай дамытуға арналған.

    Indy Clients, Indy Servers, Indy Misc беттері

    Бұл беттерде орналасқан платформа аралық программаларда қолданылады.




                                  Дәріс №7.

   Тақырыбы:   Деректер қорымен жұмыс істеуге арналған құралдар


            Аспаптық құралдар


      1. Компоненттер

      2. Қосымша құру.  ДҚ кестесін  құру.




      Сабақтың  мақсаты:  ДҚ  операцияларды  жүргізетін  қосышаларды  құруға
арналған компоненттерді оқып білу.
            Delphi-де ДҚ кестелерінің форматы  болмайды , бірақ  көптеген
        ДҚБЖ-мен қатынас жасайды, жергілікті -dBase Paradox,  өнеркәсіптік -
        SyBase InterBase ДҚ-мен  жұмыс істеуге арналған Delphi құралдарына
        жатады :
    - Аспаптық құралдың ( арнайы бағдарламалар және пакеттер )
    - Компоненттер, қосымшаларды құруға арналған ДҚ операция, жүзеге асырады
      .

   Аспаптық құралдар

      Delphi ДҚ операцияларына арналған құралдарға келесілер жатады :
    - BDE ( Borland DataBase Engine )– мәліметтер базасының  кітапхана қорын
      құрайтын процессоры.
    - BDE Administrator – күйге келтіруге арналған утилит .
    - DataBaseDesktop – SQL және QBE шақыруларының кестесін құру, түзеуге
      арналған программа.
    - SQL Explorer – ДҚ жол бастаушысы , БД параметрлері жөндеуге рұқсат
      етеді .
    - Monitor – SQL сұраныстарының орындалуын қадағалайтын программа .
    - SQL Links – ДҚБЖ жойылған программалар драйвері мыс;  MSSQL Server
      Oracle ;
    - Local InterBase Server - Borland InterBase-дағы жергілікті SQL –
      серверінің версиясы.
    - InterBase Server Server for Windows 95– Borland InterBase –дағы SQL
      -серверінің төртеуін бір уақытта қосуға есептелген көп қолданушы
      версиясы.




   Компоненттер
    ДҚ жұмыс жасау үшін қолданылатын компаненттер,  DataAccess,
DataControls, Midas, Qreport және DesisionCube беттерінде болады.
DataAccess  бетінде визуалды емес компонент орналасқан, олардың көмегімен
мәліметке қатынасты ұйымдастыруға болады:
    - DataSourse – мәліметтер көзі ;
    - Table – ДҚ  кестесіне негізделген мәліметтер жиыны ;
    - Query – SQL сұрауына негізделген мәліметтер жиыны ;
    - StoredProc – серверде сақталған процедураға  негізі мәліметтер жиыны;
    - DataBase - ДҚ мен байланысуы;

      -    Session – БД да  ағымдағы жұмыстар сеансы .



    DataControls бетінде келесі визуалды компоненттер орналасқан;
    - DBGrid – тор ( кесте )
    - DBNavigator – навигациялы интерфейс
    - DBText - жазу
    - DBEdit – бір жолдық  редактор
    - DBImage – графикалық бейне
    - DBListBox – қарапайым тізім
    - DBComboBox – қиыстырылған тізім
    - DBCheckBox – тәуелдісіз ауыстырып- қосқыш

      QReport бетінде келесі визуалды компоненттері орналасады

            - QuickRep - есептеу

            - QRSubDetail – байланысқан  кестелерге арналған есепберу жолағы

            - QRBand – есепберу жолағы

               - QRGroup - топ

      QRLabel - жазу

      Қосымша құру.  ДҚ кестесін  құру.

   Қарапайым қосымша жасаулары негізгі кезеңдері:
    - ДҚ кестелерін құру ;
    - Қосымша форма құру .
    DataBaseDesktop  бағдарламасын қолданып, ДҚ кестелері құру.
    Жаңа кесте құру процесі, New|Table командасымен басталады интерактивтік
тәртіпте және келесі пункттерден құралады :
    - кесте үлгісін таңдау ;
    - кесте құрылымын беру ;
    - кілттік алаңдары көрсету ;
    - индексті  анықтау ;
    - алаңның мәнін анықтау ;
    - парольді  анықтау ;
    - кестелер аралық сілтемелік  бүтіндікті сұрау ( байланыстың ).
        Алдымен CreateTable терезесінде форматы : Paradox 7 таңдалады Кесте
        үлгісі таңдалғаннан кейін кесте құрылым анықтама терезесі көрінеді .
        Table properties ( кесте қасиеттері )
    - Secondary Indexes – индекс тапсырмасы ;
    - Validity Checks – алаң мәнін енгізуге шек қою;
    - Password Security – парольді  анықтау ;

      Referential Integrety – кестелер аралық сілтеме бүтіндігін анықтау.

      Қолайлы  Secondary  Indexes  таңдауында  Define(  анықтау  )-   Define
Secondary Indexes ( екінші индексті беру) батырмасы  мүмкіндіріек  болады.Оң
тізімде бейнеленген және индекс параметрі,  осы   терезеде  индекс  алаңдары
беріледі, негізгілері келесі фактілер көмегімен өзгереді:

      Unigue – алаңдарды құратын индекске кіретін уникальді мәндер .

      Case Sensitive – жол типті алаңдарға символ регистрлері есептеледі .

      Descending – мәндер кемуі ретінде сорттау орындалады .

      ОК және индексті алаң құрамы, Save  IndexAs  терезесі  көрінеді,  онда
индекс аты беріледі . Save As кестені сақтауы.

      Қосымша форма жасау

      Table 1, DataSource 1, DBGrid 1 және DBNavigator 1

      DataBaseName


      Table 1, TableName

                  Activ True

      Datasource – Dataset

      DBGrid – DataSource




      ДҚ-мен жұмыс істеуге арналған компоненттер

      БД кестелері дискде орналасады. Олар физикалық объекті  болып  келеді.
Кестеде орналасқан мәліметтер операцияларына мәліметтер жиыны қолданылады.

Мәліметтер жиыны


      Мәліметтер -жиыны жазбалар, ол  бір  немесе  бірнеше  ДҚ  кестелерінен
алынған .  Жазбалар  белгілі  бер  ережемен  таңдалынатын  мәліметтер  жиыны
логикалық кесте  деп  аталады.Мәліметтер  жиынының  және  кестелердің  өзара
әрекеттері  физикалық файл және  файлды  айнымалымен  өзара  байланыстырады.
Delphi-де  НД  жұмысы  жұмыс  істеу  үшін  Table  Query  ,  StoredProc  және
DesisionQuery компоненттері  қолданылады .

      StoredProc –ДҚ жойылған  әрекеттестік ұйымы ,

      DesisionQuery – шешімдерді қабылдайтын  жүйелерінің құруыға арналған .

      ДҚ мүмкіншіліктерін TDataSet сыныбын қамсыздандырады, ол  редакциялауы
және  НД-да ауыстыру  .  ТTable  және  ТQuery  компоненттері  TBDE  TDataSet
класында  туындайды.   ДҚ   кестесінің   орналасқан   жерін   көрсету   үшін
DataBaseName  қасиеті  қолданылады.   НД-ны   жазбалар   санымен   басқаруды
таңдаудың  қосымша  түрімен:фильтрация  немесе   SQLсұранысы   арқылы   іске
асырылады.Мәліметтер  жиынымен  операция  организациялары  мәліметтерге  екі
түрлі амал қолданылады:

      1.Навигациялық

      2.Реляциялық

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

      Реляциялы тәсілі жазбалар тобын өңдеуге негізделген. Егер бір  жазбаны
өңдеу қажет болса , бәрі-бір бар топты өңделеді, себебі ол бір  жазба  болып
есептелінеді.   Реляциялы   тәсіл   -сұранысына    негізделген   және     SQ
Lбағытталған деп аталады. Жайылған ДҚ БД жұмыстары үшін қолданылады .

      ТTable жиынының  ерекшеліктері

      ТTable компоненті ДҚ  бір  кестесімен  байланысқан  мәліметтер  жиыны.
Навигация тәсілінге  негізделген  және жергілікті ДҚ  қолданылады .
    - Table мәліметтер жиынында  ағымдағы индексті көрсетуі мүмкін. Олар
      келесі операциялар үшін қажет:
    - жазулардың сорттауы
    - жазулардың іздеуі
    - кестелер аралық байланыстардың құруы .

      Index Name немесе Index Fieldnames muna String қасиеттерінің арқасында
ағымдағы индексті  орнатуға болады.

      кесте құрғанда берілген индекс  тізімінен ағымдағы индекс таңдалынады.

      Index  Name  және  IndexFieldNames  екі  қасиеті  ұқсас  және   бірдей
қолданылады, бірақ IndexName мәні  болып кесте  құрылғанда  берілген  индекс
аты, ал IndexFieldNames қасиеттерінің мәні индекс құрылған алаң аты  болады.
Егер бірнеше алаңнан тұратын  индекс  қолданылса  онда  IndexName  қасиетіне
бұрынғыдай осы индекстің аты, ал IndexFieldNames қасиетін  осы индекске  осы
керекті алаңдар аты саналады. Мысалы, ағымдағы индекстің тапсырмасы

      Table 1. IndexName :=‘ indName ’

      Table 2. IndexFieldsName :=‘ Name ’;

      Table1 және Table2 компоненттері   бір кестемен. байланысқан,  indNamе
анықталған индекстің  Name алаңы үшін.

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

      Мысалы2.  Ағымның басты индекстің сапасы ретінде тапсыру.

      Table 1. IndexFieldsNames :=‘ Name ; Post ; BirthDay ’;

      Table1 компонентімен  байланысқан ДҚ  кестесіне арналған негізгі
индекс анықталған. Оған кілтті алаң Name Post; BruthDay кіреді ;Бұл индекс
ағымдағы ретінде орнатылады .


      Ағымдағы индекстің құрамдағы алаңдарға рұқсатты  IndexFieldsCount және
IndexFields қасиеттерінің  көмегімен алуға болады .

      Integer типі IndexFieldsCount  қасиет  ағымдағы  индексте  алаң  санын
құрады. Уақытда  қосымшаны  орындауға арналған рұқсат  қасиеті.  IndexFields
қасиеті ( Index : Integer )типті   ағымдағы  индексті  алаңмен  хабарласады,
Index  айнымалысы  осы  индекс  алаңның  индексіне  индекс  нөмір   сұрайды.
Есепберу 0-ден басталады.  Индекстер  көбінесе  кесте  құруда  анықталынады,
бірақ  процесте  қосымша  орныдауда  динамикалы  ADDIndex  және  DebateIndex
тәсілдер көмегімен өзгерістер болуы мүмкін.

      Мысалы : кестеге индексті қосуы .

      Procedure Tform 1. ButtonClick ( Sender : TObject );

      Begin

      || монополиялық рұқсат режимінде кесте аудармасы ||

      Table 1. Close ;

      Table 1. Excluisive := true ;

      Table 1. Open ;

      || индексті қосуы ||

      Table  1.  AddIndex  (‘  indPost   ’,‘   Post   ’,(   ixDescending   ,
ixCaseInsensitive ));

      || монополиялық режимнің жабылуы ||

      Table 1. Close ;

      Table 1. Excluisive := false ;

      Table 1. Open ;

      End ;

      Түсініктемелер : регистер әріптеріне  тәуелсіз  мәндер  кемуі  бойынша
орналасқан  сорттау  тәртібін  құру  НД   indPost   кестесімен   байланысуы.
DeleteIndex процедурасы ( constName  :  string  )кестеден  Name  параметрмен
берілген индексті жояды.

      Table 1. DeleteIndex ( indPost );




                                  Дәріс №8



      Тақырыбы: Аспаптық құралдармен жұмыс. Delphi –де деректер қорының
тіркеуі
   1. Delphi-де  ДҚ кестесін құрудың негізгі этаптары

   2. ДҚ орналасуын беру
   3. ДҚ-ға Псевдонимді меншіктеу


      Сабақтың мақсаты: Delphi-де  ДҚ кестесін құрудың негізгі этаптары
   ДҚ анықтамасы. ДҚ ол файлдардың жиынтығы: кестелердің, индекстері және
триггерлері , кестелер аралық байланысты бейнелейді .

    ДҚ құралады :
    - ДҚ кестесі ,
    - индекстер,
             - ескертулер ( мемо - алаң ) және т . б .
      Бір кестені анықтау үшін жеке файл құрылады . Сондай бөлек файлдар
кестелер индексін және  мемо-алаңын  сақтауы үшін қолданылады. Бұл файлдар
бір жерде және бірге сақталуы керек, олай болмаса, ДҚБЖ дұрыс жұмыс
істемеуі мүмкін, сондықтан БҚ-ның барлық компаненттерін бірге сақтау керек.
   Delphi-де ДҚ құру ( немесе Delphi жұмысқа арналған ) ДҚ сақталынған және
орналасқан орыннан басталады.

   ДҚ орналасуын беру  ДҚ белгілі бір компьютерде  директорияда болуы
мүмкін.

       Мынау директория бөлістері жолмен істеуге болады ( немесе жолмен
папка жасаулары ) ДҚ компоненттеріне арналған .
    Осы директорияны бөлу жолымен  жасауға болады . Директорияны өзінің
компьютерде, серверде тамыр каталогте немесе подкаталогеде. Құруға болады,
мысалы :
    1) C :\ Primer ;
    2) C :\ \ \…..\ Primer .
    Әдеттегі мәліметтер базасының  жергілікті режимде ДҚБЖ Paradox, dBase
және FoxPro форматында  құрылған ДҚ жұмыс  істейді ( немесе ДҚ кестелері ).




    ДҚ-ға Псевдонимді меншіктеу
    ДҚБЖ технологиясында ДҚ  атауына псевдонимді қосады, сонда ДҚБЖ
программалары псевдоним арқылы іске асырылады.
    BDE Administrator  утилитінде аталған байланыста  Delphi болуы тиісті.

    - ДҚ-да мекенжай көрсетілген.
    Delphi –де ДҚ-ны құру немесе  Delphi-де жұмыс істеу орналасуы және
сақталынуы басталады.
    Сайып келгенде , ДҚ –құруда алғашқы қадам өзіміздің мысалда осы қадамда
орындалады біздің компьютерде түбір католог "C :"дискісі директроияда
біздің мәліметтер базасы орналасып директория аты-" ". онда  бума көмегімен
құрылған директория  аты C:" :\ ". егер ДҚ тегерішінде жасалған болу D
дискісінде құрылса , оның аты  "D :\ ".

    "C :\ "мәліметтер базасын кез келген  жұмыс атын беруге болады,бірақ
біз құратын ДҚ-ны сол  атпен "C :\ PRIMER "  қалдырамыз.

    Осылайша , бүркеншік ат ( немесе алиас ) ДҚ " PRIMER ".

    ДҚ тіркеуі . Delphi –де ДҚ тіркеуі BDE Administrator утилитінің
көмегімен іске асырылады. Сондықтан біздің "C :\ PRIMER " BDE Administrator
іске асырамыз.

    BDE Administrator  екі варианттың қолдауында  жүреді :

    1. Windows жұмысшы столына тікелей :
     (Пуск/Программы/Borland Delphi 3/BDE Administrator).

    2.Алдымен Delphі-дің  негізгі модулі жіберіледі,ол  экранғы IDE-нің
жоғарғы қатарында Delphі-дің басты менюі орналасқан.

                                    [pic]




    Сурет  8.1. Delphi өңдеуінің интегралдық жүйесі

     DateBase менюін ашамыз және одан Explоrer командасын таңдаймыз.Осы
командамен  BDE Administrator утилитін жібереміз.Жібергеннен кейін келесі
амалдар орындалады:

   Негізгі менюден Object | New элементі таңдаймыз. Көрінген терезеде (сурет
.4) ДҚ құрылған типті (Standard )өзгеріссіз қалдырып  ОК басамыз .

   Администратормен  терезенің сол жағында  STANDARD1 терезесін көреміз. Оны
 PRIMER атымен өзгертеміз Ол үшін ДҚ атына тышқанды шертіп  жаңа мәтін
енгіземіз.

                                    [pic]

   8.2.-сурет. Мәліметтер базасының драйвер типін таңдау терезесі

   Оң жақ терезеде ДҚ параметрлері келтірілген . Оларды өзгеріссіз
қалдырамыз, тек атын өзгертеміз. Бұл параметр ДҚ орналасқан катологқа жолды
енгізу үшін жол сілтейді.Жолды енгізу үшін PATH алаңын шертіп оң жақта
пайда болған [pic] батырманы басып С:\PRIMER каталогын таңдап ОК батырмасын
басамыз. (3-сурет).

   Енді псевдонимнің анықталуын есте сақтауымыз керек, ол үшін сол жақ
терезеде тышқанның оң жақ батырмасымен псевдоним атын шертеміз және Apply
элементін  менюде таңдаймыз. Пайда болған диалогты терезеде псевдонимнің
өзгертулерін есте сақтаймыз да,  ОК батырмасын басуымыз керек.

    Сонымен  BDE Administrator  утилитінен шығуымыз керек. Содан соң
псевдоним құру аяқталды. Енді оған басқа утилиттерден хабарласуға болады.
Бірақ ДҚ псевдонимі бар каталог әлі бос мәліметтер базасының кестесін құру
керек.




                                    [pic]

      Сурет 8.3. Мәліметтер базасының псевдонимінің параметрлі терезесі





                                  Дәріс №9
      Тақырыбы: Деректер қорының кестелерін құру

      1. Кесте құрылымын конструкциялау

      2. Кестелерді толтыру және есте сақтау.




      Сабақтың мақсаты: ДҚ кестелерін толтыру және құрылымды қалыптастыру,
кестелер арасындағы байланысты орнату.


      ДҚ құруды былай бейнелейміз.  Концептуалды  жобаға  сәйкес  мәліметтер
базасы  2 өзара байланысқан кестелерден тұрады. Бірінші  кесте  басты  болып
табылады.
        Кестенің әрбір жолы өріспен сәйкес келеді. Бағаналардың
        тағайындаулары :
      • Fields Name - алаң аты ;
      • Type - алаң типі ;
      • Size - алаң өлшемі (жолдардың алаңы үшін );
      Key - '*'жұлдыздан құралады,  егер алаң алғашқы кілтті құрамына енсе .
Егер алғашқы кілтке бірнеше алаң  құюға кірсе , онда   олар  алғашқы  кілтте
қатысудағы  жүйелілікпен анықталуы тиісті.  Сонымен  қатар,  барлық  алғашқы
индекс  құрамына кіруші алаңдар, басқа алаңдар  алдында  анықталу  тиісті  ,
яғни жоғары алаң тізімінде болу.

   2.  ЖҰМЫСТЫ ОРЫНДАУ РЕТІ

      A . Мастер – кестені  конструкциялау

      Деректер қоры кестесін құру үшін   Database  Desktop  (DBD)  )(  Пуск|
Программа | Borland Delphi 3| Database Desktop )  утилитін  жіберу  қажетті.
Утилит жіберілуінен  кейін  жұмысшы  псевдонимі   утилитін   орнатамыз.  Бұл
псевдоним  үндеместен   жұмыс  істейін  утилит.  Егер   жұмысшы   псевдонимі
орнатылмаса, онда  DBD  жэұмыс  істеген  сайын  псевдонимді  көрсетіп  отыру
керек, бұл уақытты көп алады.
             Жұмысшы псевдонимін орнату үшінбас менюдан  File | Working
        Directory элементін  таңдау керек  және Aliases түсетін тізімінде
        псевдоним атын PRIMER-ді  таңдау , одан кейін Ok батырмасын  басу
        керек.

        Осыдан  кейін   ДҚ  кесте  структурасы  анықтамасы  терезесі   пайда
болады.(9.1-сурет)

                                    [pic]




      Сурет-9.1. Database Desktop утилиті: ДҚ кестесінің  құрылымын  анықтау
терезесі

      Кесте құрылым конструкциялау. ДҚ кестесін құру үшін  бас менюден  File
| New | Table элементін таңдау  керек.  Create  Table  терезесінде  көрінген
(Paradox7) құрылған кесте үлгісі өзгертусіз қалдырамыз  және  Ok  батырмасын
басамыз . Осыдан кейін белгілі ДҚ кесте құрылымы  терезесі көрінеді ( сурет-
9.1).

                                    [pic]

      Сурет-9.2. Өріс алаңын таңдау
    " Материалдар "  кестесіне  кіруші  алаңдарды  анықтаймыз.  Field  Name
бағанасына Material енгіземіз . Алаң типіні анықтау үшін,  Type  бағанасымен
шертіңіздер және ашық жер (пробел) пернесін басыңыздар. Бұған жауап  ретінде
керек алаң типті таңдау үшін алаң типі тізімі шығады. ( сурет-9.2).

    СУБД Paradox мүмкін барлық типі 9.3-суретінде келтірілген.

     Material алаңы типін  анықтау үшін, Alpha таңдаймыз және бағанға  Size
–ға 20мәнін көрсетеміз. Key бағанына жұлдызшаны сыйғызамыз осы алаң  алғашқы
кілтті құрамына енетінін білдіреді. Ол үшін мынаның клавиатурада кез  келген
символды басамыз.

    Кесте-мастері  алғашқы кілтіпен индектеледі.

           Materialу  кестесінің  басқа  бағаналарына анықтамалар  енгіземіз
(сурет-9.3).

                                    [pic]




   Сурет-9.3. Materialy  кестесінің құрылымын анықтау

             Есеп  шарттарына  сәйкес  берілген   кестенің  барлық  алаңдары
толтырылауы  тиісті  .  Сондықтан  әрбір  алаңды  мәндермен  міндетті  түрде
толтыру талабын анықтаймыз.Бір алаңнан  екінші  алаңға  өту  үшін   Required
Field ауыстырып қосқыштары қосамы. Басқа алаңдар  мағынасына шек  салу  үшін
қызмет етеді :
   • Minimum value - алаңның ең аз мәнін анықтайды
   • Maximum value - алаңның барынша үлкен мәнін анықтайды
   • Default value – алаң мәнін үндемеумен анықтайды
    Picture – алаңның бейнелеуінің шаблонын анықтайды . Шаблон  құру үшін
Assist батырмасын басу Бір алаңда мәннің болмауы алаңның шектелген мәнінің
қойылмағанын білдіреді.


    Кестелерді    толтыру    және    есте    сақтау.      Кесте    құрлымын
конструкциялағаннан кейін Database Desktop-та  таблицаны  толтыруға  болады.
Кестені орыс алфавитінде толтыру мүмкін болмауы мүмкін онда латын  алфавитін
пайдалануға болатынын атап өтейік.
    Содан соң С:\PRIMER каталогында құрылған кесте ( Materialу )  аты
анықтағаннан кейін  Materialу файлы құрылады.

                                    [pic]

    Сурет-9.4. Кестені сақтау терезесі

    Құрылған  кесте реструктурлануы.  Егер  ДҚ  бар  кестелерге  өзгерістер
енгізу керек болса,  File|Open|Table  меню  элементін  таңдау  керек,  пайда
болған диалогты терезеден  кесте  атын  таңдап  Ок  батырмасын  басу  керек.
Кесте мазмұны көрсетіледі. (9.5-суретте Materialу кестесінде  жазуларды  жоқ
болады ,  өйткені біз оған мәліметтерді енгізген жоқпыз ).

                                    [pic]

    Сурет -9.5 Materialy кестесінің мазмұны – жазбасы әлі көрінбейді

     Біз DBD-дан(бірнеше жазбаға өзгеріс енгізіп  немесе  өшіргіміз  келсе)
тура  кестені жаңа жазбамен толтырғымыз келсе F9 батырмасын басуымыз керек.

    Кесте құрлымын өзгерткіміз  келсе  Table|  Restructure  меню  элементін
таңдаймыз. Ізінше кесте құрлымын анықтайтын диалогты терезе көрсетіледі.

    Б.Кесте деталін конструкциялау
      Кесте деталі болып табылатын екінші кесте құрылымын анықтаймыз "
материалдардың түсуі " (сурет-.9.6) . Бұл кесте құрлымын констукциялау
әдісі кесте мастерімен ұқсас. Келесі айырмашылықтар бар.


                                    [pic]


      Сурет-9.6  Prihod кестесінің құрылымы
      Бәріне алаңдарға  N_ Prih алаңынан басқасына Required атрибутін
тағайындаймыз, өйткені бұл алаң автоинкрементті болғандықтан оны мәнмен
толтырғанда жаңа жазбаны автоматты түрде есте  сақтайды.

      “ Кіріс датасы ”,“ Материал ” алаңдарына индекс құрамыз. Ол  үшін  біз
қиылысатын  Table  Properties  тізімінен    Secondary   Indexes)   элементін
таңдаймыз  .  Осыдан  кейін  диалогты  терезе  9.7-  суретте  көрсетілгендей
көрініс береді.

                                    [pic]

      Сурет 9.7.Терезенің оң жағына  Secondary Indexes элементі пайда болды



             Жаңа индексті анықтау үшін , Define батырмасын басамыз.
        Көрінген диалогтық терезеде  Fields алаңында біз анықтаған кестенің
        тізім мазмұны көрсетіледі. Index Fields алаңы құрылған индекске
        кірушілерді сақтау үшін  тағайындалған.  Fields тізімінен Index
        Fields тізіміне нақтылы алаңды көшіріп алу үшін  оң бағдарша
        бейнелеуі бар  батырманы басу керек. Алаңға тізімді жүйелілі қосу
        маңызды, өйткені ол  тізімде алаңның алмасу ретін анықтайды.  Index
        Fields тізіміне керек алаңдарды сыйғызған соң ( сурет .9.8), Ok
        батырмасын басамыз .
                                    [pic]


        Сурет -9.8. Индекс құрамына кіретін өрістерді анықтау

      Көрінген терезеде индекс  аты  сұралады  (  сурет.9.9)  Аты  енгіп  Ok
батырмасын  басу керек .

                                    [pic]

      Сурет 9.9. Индексті сақтау терезесі
        Индекс атын алаң атымен қою  ұсынылмайды. Өйткені келесіде көрініп
        тұрғандай  жаңа индексті қосқаннан кейін оның аты индекстер
        тізімінде пайда болады.
        9.10- суретте көрсетілген, жаңа индексті қосқанан кейін  оның аты
        индекстар тізіміне пайда болады.


                                    [pic]


        Сурет 9.10. Prihod кестесі үшін анықталған индекстер тізімі


        Индекс  аты бойынша шертіп , біз оны өшіре аламыз (Erase батырмасы)
        немесе өзгерту (Modify батырмасы ).

   Құрылған кестені Prihod атымен  сақтаймыз.

      В. Деректер қорын конструкциялау

      Мәліметтер базасының  конструкциялау

      Енді   ДҚ   кестеден   тұтас   конструкциялаймыз.    Олардың   құрлымы
конструкциясын кестелерден  тұрады.Есептің қойлымынан  белгілі  болғандай  "
Материалдар " және " Материалдардың кірісі "  кестесі  “бірдің-көпке”  деген
қатынасында, олай дейтініміз  Materialy  кестесіндегі  бір  жазбаға   Prihod
кестесіндегі сол материалға бірнеше  жазба  сәйкес  келеді.  Байланыс  алаңы
болып  2  кестеде  бар  Materialy   алаңы  болып  табылады.кете   мәліметтің
бүтінділігін ашықтайық .

        Paradox  –те  сілтемелік  бүтінділік  біріншіден  кесте   арасындағы
байланысты 2-ден каскадты жерді анықтайды.

      Prihod кестесін  ( элемент File менюі  |  Table  |  Open  )ащып   және
кестені  өзгерту құрлымы режіміне ( Table  |  Restructure  )  кіреді.  Table
Properties түсетін тізімінде Refrential Integrity элементін  таңдаймыз  және
Define бүркеншектегі шегесін басамыз . көрінген диалогтық терезеде  (  сурет
-9.11) Fields тізімінде Prihod кестелері далаларды көрсетілген ,  ал  Tables
тізімінде – primer базасының кестелері көрсетілген .

                                    [pic]

      Сурет 9.11. Сілтемелік бүтіндікті құруға арналған терезе

      Tables тізімінде Materialy кестесін таңдаймыз және сол жақ  бағдаршаны
басамыз . Parents Key алаңына  ( аталық  кесте кілті )  Materialy  кестсінің
бірінші кілті көрсетілген .

      Update rules айырып қосқыштар   Materialy  кестесінде  жазбаларды  жою
немесе  Materialy  кестесінде  алаң   байланыс   мәнінің   өзгеруін   Prihod
кестесінің каскады әсерін анықтайды:
      • Cascade – Prihod кестесінд бағынышты жазуларды жою немесе каскадты
        өзгеріс;

      Prohibit - Materialy кестесінде жазбаны жою  немесе  байланыс  алаңына
өзгерісті шектеу. Cascade таңдап ( сурет -9.12) Ok  кнопкасын басамыз.

                                    [pic]

      Сурет -9.12.Сілтемелік бүтіндік шартын анықтау

       Paradox  –те  атау  сұралып  –сілтегішті  бүтіндік  аталынады.  Атыны
енгіземіз  мысалы Materialy мысалы _ Prihod _ Integrity  және  Ok  кнопкасын
басамыз .енді құрылған сілтегішті бүтіндік аты тізімге орналасады.

      Prihod ( Save кнопкаыс )кестесіндегі өзгерістерді есте сақтап,  Prihod
( Table | Restructure ) кестесінің реструкизациясы режіміне  қайта  кіреміз.
Table properties  тізімінде Secondary Indexes элементін таңдаймыз  индекстер
тізімінде Material атмен пайда болған  жаңа  индексті  көреміз  .Бұл  индекс
сілтегіш бүтіндік құрылған  кезде  автоматты  түрде  тұрғызылған   (  сурет-
.9.13).



                                    [pic]


      Сурет-9.13. Сілтілік бүтіндікті құрғанан кейінгі  Prihod  кестесіндегі
индекстер тізімі

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




   Дәріс №10

Тақырыбы: Delphi-де ДҚБЖ-н құру.


   1. ДҚБЖ құрамын анықтау

   2. ДҚБЖ компоненттерін құру жобасы және жоспары
   3. TDataModule контейнерін құру

        Сабақтың мақсаты: Экрандық форманы құру, ДҚ-ға рұқсатты орнату және
мәліметтерді өңдеуді ұйымдастыру

ДҚБЖ құрамын анықтау

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

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

      Қолданушы жқмысының тәртібін келесі тәсңм арқылы берейік.

      Қолданушы жұмысының тәсімі.

      Қолданушы интерфейсі  бас  меню  арқылы  жүзеге  асырылады.  Сондықтан
жүйеде бас меню болу қажет.

      Қорға ақпаратты енгізу үшін бөлек экрандық форма  қажет.  Қорды  бөлек
экрандық формада қарастыру керек.

      Сонымен қатар қолданушы қорда баспа түріндегі мәліметті алу керек,  әр
түрлі мәліметтер әртүрлі формада болу қажет.  Осы  барлық  шығыс  мәліметтер
есептік  немесе  есептеу  формалары  деп  аталады.  Сондықтан    қолданушыға
есептік формаларды алу қажет.

      Осылайша есептерді алу үшін қолданушынығ  толық  жұмысына  қажет  есеп
формаларын қарастыру қажет.

      Қарастырылған формалар негізінде қолданушы  жұмысының  тәртібі  келесі
түрде іске асырылады.

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

      Қорды алдын-ала қарау үшін ол менюден қорды қарау  формасын  шығарады.
Қолданушы  үшін  есепте   мәліметтерді   шығару   үшін   әртірлі   нұсқаулар
қарастыруға болады. Қолданушы бас  менюден  қорды  алдын-ала  қару  формасын
шақыра  алады  және  одан  мәліметтер  мен  есеп  формасын   таңдай   алады.
Генерацияланған есеп нұсқауы баспа құралына беріледі. Иілгіштікке жету  үшін
ақпаратты енгізу режимінде  және  қорды  алдын-ала  қарау  режимінде  есепті
қалыптастыру нұсқауын қарастыру қажет.

      Осылайша жоғарыда көрсетілген “қолданушы –жүйе” жұмысының  тәсімі  нде
жүйе жұмыс істеу үшін келесі формалар қажет екені көрініп тұр:
      • Меню үшін форма;
      • Қорға мәліметтер енгізу үшін форма;
      • ДҚ-ны алдын-ала қарау үшін форма;
      • №1-есеп үшін форма
      • №2-есеп үшін форма
      • №3-есеп ұшін форма
    Жоғарыда ДБЖ-ның сыртқы формасының көрсетілуі берілді. ДБЖ-ның жұмыс
мүмкіншілігін қамтамасыз ету үшін ДҚ формасымен байланысты
қамтамасыздандыру керек: экрандық формада ДҚ мәліметтерін өңдеу. Ол келесі
пунктерде жасалады.

      ДҚБЖ компоненттерін құру жобасы және жоспары
    Сыртқы көрініс  формасына  басқа  ДҚБЖ-да  ДҚ-ға  қатынау  қамтамасының
құралдары және өңдеу  процедуралары  болу  керек.  ДҚБЖ-ны  құрайтын  барлық
компоненттер жиынтығы құрулы және сақтаулы болу керек.
      ДҚБЖ-ны жобалаудың негізі форма болып табылады. Форма  барлық  қалған
компонентердің  негізі  және   тасымалдаушысы   болып   мәліметтерді   өңдеу
процестері үшін фундамент қызметін атқарады. Бұл тәсілдің  теориялық  негізі
объектіге бағытталған технология жобасы және бағдарламалау болып табылады.
      Алайда объектіге бағытталған технология жобасы және  бағдарламалаудың
теориялық сұрақтарына арнайы тоқталмаймыз.
    Енді  ДҚБЖ  жобасын  құрайық,  яғни  ДҚБЖ  компоненттерінің  арасындағы
байланысты,  құрамын  және  тағайындалуын  бекітеміз.  Ол   үшін   қолданушы
жұмысының жоғарыда көрсетілген тәсімінен шығамыз.
      Қолданушы жұмысы ұшін үш есеп формасы қажет. Сондықтан әрбір экрандық
және септік форма үшін бөлек форма берілу керек.
    Delphi-де  ДҚ  және  ДҚБЖ  формалады  арасындағы  ақпараттық   байланыс
анықталған визуалды емес компоненттер арқылы іске асырылады.  Сондықтан  ДҚ-
мен экрандық форма арасындағы байланысты қамтамасыз ету үшін  жобада  арнайы
визуалды  емес  компонент  (контейнер)  TdataModule  қолданылады,  ол  бөлек
құрылу керек.
      Осылайша эвристикалық алдын-ала сілтемелеуден шыға біздің форма  үшін
қажет тізімді берейік:
      • Меню үшін форма;
      • Қорға мәліметтер енгізу үшін форма;
      • ДҚ-ны алдын-ала қарау үшін форма;
      • №1-есеп үшін форма
      • №2-есеп үшін форма
      • №3 есеп үшін форма
      • TDataModule компоненті
    Жобалаушы үшін ең ыңғайлы форманың және олардың компоненттерін
қарастыру тәртібі келесі болып табылады.
 1) TDataModule компоненті
 2) Меню үшін форма;
 3) Қорға мәліметтер енгізу үшін форма;
 4) ДҚ-ны алдын-ала қарау үшін форма;
 5) №1-есеп үшін форма
 6) №2-есеп үшін форма
 7) №3 есеп үшін форма
    ДҚБЖ құру үшін формалардың екі әдіспен беру керек:
      1. Егер алдын-ала олардың саны белгілі болса, монитор экранында және
         сәйкесінше IDE Delphi жобасның қоймасында (repository) алдын-ала
         визуолды және визуалды емес формалардың қажет санын шығаруға
         болады. File/New form командасы көмегімен визуалды формалар
         қосылады, ал File/New data module командасымен визуалды емес форма
         қосылады. Біздің жүйе алты визуалды форма және бір TDataModule
         компонентін талап етеді.
      2. Егер жоба үшін қажет формалар саны белгісіз болса, онда монитор
         экранында және сәйкесінше IDE Delphi жобасның қоймасына
         (repository) ДҚБЖ құрудың ағымды деігейінде жоба үшін тек қажетті
         форма қосылады. Экранда формаларды қою келесі команда арқылы іске
         асырылады. Басқа сөзбен айтқанда әрбір форма қажеттілік молшері
         бойынша қосылады.
            Бұл жағдайда жоба қоймасына жаңа форманы қосу (File/ Add to
        project) командасын қосу арқылы іске асырылады.
            Осылайша жобадан шығатын болсақ, мәліметтерді өңдеу процедурасы,
        экрандық және есептік формалардан жоғарыда қойылған есепті
        автоматтандыру үшін ДҚБЖ құру бойынша жұмыс жоспарын ұсынайық.
      Алдымен ДҚБЖ-ның барлық формаларын құру үшін қажетті формаларды
экранға шығару керек болсын деп есептейік. Егер форма жетіспесе оларды
қажетті санға дейін жеткізейік. Бұл (File/New form) іс-әрекетін форма саны
қанша талап етсе сонша рет қайталау және бір контейнерді File/New data
module командасын қайталау жолымен жасалады.

      Енді форманың жобалау тізбегін анықтайық.  Жалпы  жағдайда  формаларды
құру тізбегі  ретсіз,  бірақ  сонда-да  біз  жоғарыда  сипатталған  тізбекті
тағдаймыз.  Формаларды  хаттау  және  құру  тізбегі   ДҚБЖ   құру   процесін
жеіәлдетеді.

      ДҚБЖ құруды  ДҚ-мен  байланыс  үшін  TDataModule  контейнерін  құрудан
бастаймыз. ДҚБЖ формасын жобалаудың экрандық  формадан  бастаймыз,  онда  ДҚ
құрамы көрсетіледі.

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

      Сонымен қатар әртүрлі  форма  компоненттенрі  арсында  байланыс  жасау
керек. Бір экрандық формада жүйе жұмысын аяқтау командасын қарастыру  қажет.


      Компоненттер жиыны және олардығ формада орналасуын анықтағаннан  кейін
олардың  ДҚ-ға  қатынауы  жасалады  және   форманың   әр   компоненті   үшін
мәліметтерді өңдеу процедурасы құрылады.

      Жоғарыда көрсетілген анықтамадан  көреміз:  ДҚБЖ  ДҚ  сияқты  көптеген
компоненттерден тұрады. ДҚБЖ-нығ барлық  компоненттері  қалыптастыруды  және
бағдарламалуды талап етеді. Сондықтан оларды  ДҚ  сияқты  анықталған  орында
сақтау керек. Бұл мақсат үшін C:\Primer каталогында  АРР  қосалқы  каталогын
құру қажет. Онда біз өңделген қосымшааларды сақтаймыз.

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



   TDataModule контейнерін құру

       Экранды    формамен    ДҚ    байланысы    арнайы     компаненттермен
қамтамасыздандырылады,  олар  визуальды  емес  компанент  деп  аталады.  Бұл
элементтер конструкциялау режимінде ғана көрінеді, ал жүйенің  жұмыс  режимі
экранында көрінбейді.

       Егер  ДҚБЖ  бір  экрандық  формадан  тұрса,  онда   визуальды   емес
компаненттерді сақтау үшін контенер түріндегі арнайы қойма қажет  емес.  Бұл
жағдайда  визуальды  емес  компаненттерді  сол   жалғыз   экрандық   формаға
орналастыруға  болады.  ДҚ  қатынай  алатын  экрандық  форманың   көптігінен
қатынауды келесі түрде ұйымдастыруымызға болады.
       Барлық экрандық және есепберу формаларынан ДҚ қатынау (байланыс)
 қажет. ДҚБЖ-ның бірнеше экрандық формалары бар және олардың ДҚ-ға
 қатынауын екі тәсілмен жүргізуімізге болады.
      1.Әр форманың (және оның компоненттерінде)    ДҚ-ға  қатынауын  қалған
 формаларға тәуелсіз автономды іске асырамыз.
      2.Екінші тәсіл әр форма үшін ДҚ-ға қатынауды ұйымдастыруды
 қайталамауды ұсынады. Барлық экрандық және есепберу формалары үшін  арнайы
 TDataModule компонент арқылы бірдей қатынауды ұйымдастыру.  TDataModule
 типті компанент ішіне визуальды компоненттері TTable, TQuery, DataSource,
 бар контейнер ұсынады.Онда ДҚ-ға қатынау керек формалар қатынауды
 TdataModule компоненті арқылы алады. Сондықтан ДҚБЖ құруда әр экрандық
 TdataModule типті компанентімен байланыс орнату қажет.
       Сонымен ДҚБЖ жұмысы үшін TDataModule типті компанент құру қажет.
 Delphi ортасында  TdataModule данасын құру  File|New Data Module меню
 пункті арқылы іске асады.

      TDataModule компонент  мәліметтер  базасымен  жұмыс  жасау  компоненті
контейнер қызметін атқарады.   Delphi   компонент  палитрасына  Data  Access
парағында тышқанмен ТТаblе визуальды емес  компонент таңдаймыз (сурет.  20),
тышқанды шертіп және содан   контейнерде  тышқанды  шертеміз.  Осыдан  кейін
компаненттің бейнеленуі контейнерде қалады.

                                    [pic]

      Сурет-10.1. Delphi компоненттері палитрасы

      TTable   компоненті  (басқада  компоненттер  сияқты,  мысалы,  TQuery,
TDataSource) мәліметтерге қатынау  және  сақтау  үшін  қолданады,  сондықтан
визуальды емес компанент деп аталады, ал визуализациялау мақсатына  визуалды
компаненттер қолданылады.  (TDBGrid, TEdit және т.б).

      TTable компонентін орналастырғанан кейін енді оның қасиетін орнатайық.
Ол үшін  форманың  сол  жағында  болатын  объекті  инспекторын  пайдананамыз
(Object Inspector). Егер ол көрінбесе   F11  батырмасын  басып  шақыруымызға
болады,   Объектов  инспекторы  тышқан  көмегімен  бөлінген  компоненттердің
қасиетін орнатуға мүмкіндік береді. TTable компонентін тышқанмен бөлейік.

      DatabaseName  (ДҚ  псевдонимі)  қасиетінің  мәнін    PRIMER-ге   тізім
көмегімен немесе оны қолмен енгізіп орнатамыз TableName (ДҚ кестесінің  аты)
қасиетінің  мәнін  түскен   тізім   көмегімен   Materialy.DB-ға   орнатамыз.
Осылардан кейін True-ға  Active қасиеті  мәнін  орнатамыз.  Осыдан  кейін  в
TTable компонентінің  (үнсіздік  бойынша  аты  Table1)  Materialy.DB  шынайы
кестемен шынайы байланысы болады.

      TTable және TQuery (кейінірек қарастырамыз)  компоненттері  мәліметтер
жиынын сақтау үшін қызмет  етеді.  Мәлңметтер  жиыны  түсінігі  ДҚ  кестелер
түсінігінен кейінірек, олар келесідей мәліметтер жиынын құрай алады:
      • ДҚ кестесі алаңының немесе жазбалардың ішкі көптігі (TTable, TQuery
        компоненттері);
      • ДҚ бірнеше кестелерінен форматталған жазбаларынан (TQuery
        компоненті).
       DataModule контейнеріне TdataSource қасиетін орнатайық.Ол біз №3
 формаға кейінірек қосатын визуалды және визуалды емес (осы жағдайды
 Table1) компоненттер арасын байланыстыратын звено қызметін атқарады.
 Сондықтан TDataSource қасиетін жиі мәліметтер көзі (қоры) деп атайды.
 TDataSource  компанентінің  DataSet (мәліметтер жиыны аты) қасиетін түскен
 тізімді таңдау фолымен орнатайық
       TdataModule-не қандайда болмасын атпен сақтау керек(үнсіздік бойынша
 Unit5.pas). TdataModule сипатталған модулінің аты unit, осы   TdataModule-
 де орналасқан  TdataSource және ДҚ қолданылатын қосымшанаң барлық түріне
 unit модуль текстіне қосылады.  Бұл  Delphiсының басты менюі File|Use Unit
  меню элементіне жазылады. Әрі қарай мәліметтер жиынының  мәліметінмен
 жұмыс істейтін визуальды компаненттер өзінің DataSource қасиетінде
 TdataSource және  TdataModule компанентіне сай келетін  аттар құру керек.
 Аты қосымша болады: алдымен TDataModule  компанентінің аты содан нүктеден
 кейін- TDataSource компонентінің аты, мысалы  DataModule5.DataSource1.

                  MБ –на қортынды орнату және мәліметтерді өңдеуді
             ұйымдыстыру экранды форма құру(қарапайым вариант)



    А. ДҚБЖ менюі үшін

      Экранды  форма құру . форм 1 диалог терезесінен  таңдап ОК  батырмасын
басып   №1 формаға  (View|Forms  меню  элементі),   өтейік  Standard  филтра
компанент беттерінен  MainMenu  компаненті  формасына  орналастрайық  ,содан
кейін менюді өңдеу амалдарын шақырамыз.(2 амалмен жасауға болады.):
    • №1 форма ішінде  MainMenu команентіне
    •  2 рет басу арқылы формада бөлінген компанент
    • Object Inspector  терезесіне  өтейік  Items  қасиетін шертіп  [pic]
      бастрмасын басайық.

      Form1.MainMenu1          меню           конструтурында           болып
“Файл/Ввод/Просмотр/Отчет/Выход  ”  меню   пункіттеріне    береміз.   Келесі
деңгейге өту үшін .  Басамз. Меню пункттерін жеке топтарға  визуальді
бөлу  есеп беруден кейін(-),  плюс символдарын бірнеше рет  қолданамыз“Ввод”
меню  пункітіне  “Название  материала/Поступление  материала”  ішкі   менюін
құрамыз. Ол үшін оны бөліп  тышқанның  оң  жақ  батырмасын  шертеміз.  Пайда
болған терезе  Create Submenu пункітін таңдаймыз.

      Енді   меню   құрылған   кезде   менюдің   әр    пункттеріне    кодпен
байланыстрамыз,ол   пайдаланушы   берілген    пункітті    таңдалған    кезде
орындалады.осы  OnClick  оқиғасының  конструктор  менюінде   болып   өңдеуші
процедура құру үшін меню пунктінде тышқанды екі  рет  шерту  керек  .  пайда
болған OnClick оқиғасының өңдеуші процедурасы редактор терезесінде осы  меню
пункітін таңдалған кезде  орындалатын кодты жазамыз. Мұндай нәтижені  Object
Inspector терезесі Events парағында бар өңдеуші  процедура   атын  тышқанмен
екірет шерту арқылы алуымызға болады.

      Мысалы: просмотр пунктіне келесі кодты енгіземіз.

       Form1.Visible := False;

      Form3.Visible := True;

      Материаланың түсу элементінің менюі:

      Form1.Visible := False;

      Form2.Visible := True;

      Шығу элемент менюі: Сlose;

      File|Save Project As элемент менюін таңдау жобасын сақтаймыз,  алдымен
жоба  формасының  аты  сұралады(бізде  5  форма   аттары   Form1   …   Form4
DataModule5)  'Unit*.pas'  атымен  мормалаларды  сақтаймыз.содан  жоба   аты
сұралады.,жобаны 'appl.dpr' атымен сақтаймыз.

      №1. формы unit модул текстіне  Unit2және  Unit3модуль аттарын қосамыз.


      Осыдан кейін қосымшаны орындаймыз. (Delphi ортасынан шықпай  қосымшаны
орындау үшін F9 батырмасын басу қажетті),ал  қосымша  құрып  оны  Delphi-ден
басқа ортаға жіберу  үшін  Ctrl+F9   батырмалар  комбенациясын  басып   және
.ехе кеңейтілуі және  атымен  құрылған  файлды  жібереміз.  Біздің  жағдайда
'appl.exe' файлын жіберу керек.

      Жұмыс жасап тұрған қосымшаны  Run|Program Reset –пен тоқтатуға болады.





                                  Дәріс №11

Тақырыбы:  Деректер қоры құрамын көрсету үшін экрандық форма құру

      1. Экранды формада ДҚ-ның бір кестенің мазмұнын ұсыну

      2. ДҚ-ң екі кестелерінің мазмұнын ұсыну .

Сабақтың мақсаты: мәліметтерді және олардың қасиеттерін бейнелеуге  арналған
компоненттерді үйрену, кестелер арасындағы байланысты орнату.

      Екі кесте бір-бірімен кілт арқылы байланысады. Байланысқан кестелердің
біреуі негізгі,  екіншісі  қосымша  кесте  болады.  Деректер  қорымен  жұмыс
істеуге   арналған   компоненттер   DataAccess   (деректерге   кіру)    және
DataControls (деректерді басқару) беттеріндегі  компоненттер  кітапханасында
орналасқан.

      Деректер  қорында  қолданатын  әрбір   қосымша   келесі   үш   түрдегі
компоненттердің біреуін қамтиды:
         • Деректер қорымен тікелей байланысатын деректер жиыны (dataset)
           компоненттері. Бұл  Table, Query компоненттері;
         • Бірінші түрдегі,визуалды және деректерді басқару компоненттері
           арасындағы ақпарат алмасу деректер көзі (Datasource)
           компоненттері арқылы болады. Бұл компонент Data Source болып
           табылады;
         • DBGrid, DBText және DBEdit сияқты, деректерді басқару және
           визуалды компоненттер.

                    1) Экранды формада ДҚ-ның бір кестенің мазмұнын ұсыну
         Алдымен ДҚ бір кестесіне қатынай алатын қарапайым экрандық форма
құрайық .
      №3 формасына View/ Forms менюінің элементін  таңдау арқылы өтеміз,
сұқбаттық  терезеден  Form3 таңдап Ok батырмасын басамыз. Компонент
палитраларын  ТDВGrid компонентін формаға  орналастырамыз (Data Controls
беттерінен). Data Source қасиетінің  ТDВGrid компонентін №3 форманың unit
модуль текстінің unit 5 модулінде  сипатталған Data Module Data Source1
мәніне орналастырамыз( бұл үнсіздік бойынша Delphi-ге Data Source өзіміз ат
берген  қосылған) ТDВGrid компоненті кестелі формада мәліметтер жиынын
бейнелеу үшін  қызмет етеді.
      Формаға батырма ТButton (компонент палитра Standаrd беті) компонентін
қосып, Cancel Button объекті испекторларын  пайдаланып  компонентке ат
береміз (Name қасиеті). Батырма тақырыбын (Caption қасиеті) Отменаға
(болдырмауға) өзгертеміз .

          11.1.- суретте өңделетін форма түрі көрсетілген .



                                    [pic]


      Сурет 11.1. Өңдеу этапындағы форма түрі

          Пайдаланушы  батырманы  басқанда   орындалатын  кодты   батырмамен
байланыстырайық. Формада  қалып  OnClick  оқиғасын  өңдеу  процедура  кодына
төмендегідей кодты  жазамыз.

         Close :

         Forml.Visible:=True;

       Run менюінен (немесе F9) Run компонентін таңдап Delphi-ге  қосымшаны
орындатуға  жібереміз.  Қосымша Файл/Ввод  менюінен  Просмотр  (Қарап  шығу)
командасын таңдаймыз .

                11.2. - суретте жұмыс істейтін қосымша түрі көрсетілген .

                                    [pic]

   Сурет 11.2. Орындау кезіндегі №3 форма түрі
     Мәліметтер  жинағына  жазбаларды   (Materialy.DB   кестесінде)   DBGrid
компонненті арқылы қосуға болады .
     Жазбалар қосу үшін Insert батырмасын басуымыз керек, немесе  мәліметтер
жиынының  соңғы жазбасында болып  “  төмен  қарай  бағыт”  батырмасы  арқылы
мәліметтер жиыны  жаңа жазба  режиміне  автоматты  түрде  көшеді.  Мәліметті
енгізгеннен кейін мәліметтер жиынында жазба алаңын батырма  көмегімен  басқа
жазбаға  өту арқылы  есте  сақтауға  болады.  Esc  батырмасын  бассақ  жазба
сақталынбайды. Жазбаларды өзгерту  үшін   керекті  орынға  ағымдағы  жазбаға
нұсқағышты  орналастырамыз  және  керек   жерде   мәндерді    өзгертеміз   .
Мәліметтер жиыны автоматты түрде түзету режиміне көшеді.
            Жазбаларды өшіру үшін оған ағымдағы жазба нұсқағышын
        орналастырып Ctri+Del батырма перне комбинациясын басамыз .




   2) ДҚ-ң екі кестелерінің мазмұнын ұсыну .
            Енді жұмысты күрделендірейік ДҚ-ң екі кестесінің мазмұнын екі
        вариантта ұсынайық:
          а) Экранды формада кестелер арасындағы байланысты орналастырмай;
         б) Кесте мәліметтерін кесте арасындағы  байланысын есепке ала
        отырып бейнелейік.
        Бір формада екі мәліметтер жиынын байланыстыруды көрсетейік.
        Экранды формада ДҚ кесте мәліметтерін арасындағы байланысты орнатпай
         бейнелеу ата-аналық, Деректер жиыенында ағынды жазбаға сәйкес
        бағынышты мәліметтер жиыны көрінетіндей.
           Data Module 5 контейнеріне PRIMER  мәліметтер базасының Prihod
кестесімен жұмыс істеу үшін Table компонентін  қосайық (Table2 атымен).
Data Source компонентін формаға қосамыз (Data Source2). Осы компоненттің
Dataset қасиетін   Table2  мәніне орнатамыз. TBDGrid компонентін №3 формаға
орналастырамыз және Data Source2  мәніне Data Source қасиетін
орнатамыз.(11.3.- сурет) Тable2  Aсtive қасиетін  True-ға  орнатамыз.
Осыдан кейін Prihod.DB шынайы сәйкес кестелерінің TTable компоненттерімен
нақты  байланысы  басталады.



                                    [pic]
        Сурет-.11.3. Өңдеу кезіндегі негізгі және бағынышты мәліметтер
жиыны бар  форма


        Материал (Materialy DB кестесі) жайындағы мәліметтерді қарауда
өзгертпеу үшін True жағдайында DB Grid1 компонентінде ReadOnly қасиетін
орнатамыз .
             Қосымшаны орындауға  жібереміз. ТDBGrid 2 компонентінің Prihod
        DB кестесіне бірнеше  жазбалар қосайық .N_Prihоd алаңының мәні
        автоматты форматтанатынына назар аударайық (11.4- сурет).

                                    [pic]



    Сурет- 11.4. Бағынышты мәліметтер жиынында негізгі МЖ-ның ағымды
жазбасына байланысты  жазба көрсетіледі

        2.2)Экранды формада ДҚ кестесінің  мәліметтерін   бейнелеу,  оларды
 арасындағы байланысты есепке алып,  мәліметтер  жиынын   арасындағы  Master
 –Detaie байланысын жүзеге асыру арқылы .

        Prihod, DB және Materialy, DB мәліметтер базасының  кестелері  “бір-
көпке ” деген байланыста екені белгілі. Біз бұл кестелер арасындағы
сілтемелі  бүтіндікті  анықтап  алдық, Table1 мәліметтер жиынында  жазбаға
нұсқағышты (Materialy DB) орнатуда Тable2 (Prihod DB) мәліметтер жиынында
Table1 ағымдағы материалдық  кіріс туралы  жазбасы  көрсетілетіндей
етуімізге болады. Бұл Master–Detail мәліметтері  жинағының байланыс
механизмі арқылы жүзеге асады .


          Тable2 компоненті үшін инспектор объектілеріне Data Source Master
Source қасиет мәндерін орнатайық.  Master Fields қасиет батырмасын басамыз.
Пайда болған Field Link терезесіне байланыс параметрін орнатайық. Available
Indeхes алаңында ағымдағы индекс ретінде “Material” алынуын таңдайық.
Detail Fields тізімінде Material алаңын таңдап Add батырмасын басамыз.
Joined Fields алаңында “Material→ Material” өрнегі форматталады. (11.5-
сурет)  OK батырмасын басамыз .


                                    [pic]




   Сурет-11.5. MasterFields қасиетінің мәнін орнату терезесі


        Тable2 компонентіде ағым индекс (FieldIndeхNames қасиеті)
“Material” алаңында  тұрғызылған  индекске ауыстырылған.


        Енді Тable2 мәліметтер жиынында Table1 мәліметтер жиынының ағымды
материалдар  кірісі жайлы жазбалар 11.6-суретте көрсетілген.


                                    [pic]

   Сурет-11.6 Master-Detail байланысы –негізгі мәліметтер жиынында тек
бағынышты жазбалар көрсетіледі






                                  Дәріс №12

   Тақырыбы: ДҚ-ғы мәліметтерді енгізу үшін  экрандық форма құру


   1. Экрандық формаға ДҚ мәліметтерін басқару батырмасын қосу.

      Экрандық формадағы  TDBGrid модификация варианттары





   Сабақтың мақсаты: ДҚ басқаруға арналған компаненттерді үйрену

      Деректер жиыны келесі негізгі жағдайлардың біреуінде болуы мүмкін:
         • dsEdit – ағымдағы жазбана түзетуге болады;
         • dsInsert – жаңа жазба қойылады.

        Тағы басқа жағдйлар болуы мүмкін.  Жоғарыда  көрсетілген  жағдайлар
қосымшаның  орындалу  барысында  болады,  бірақ  тікелей  емес,  ал   келесі
әдістердің қолдану арқылы:
             • Edit әдісі деректер жиыны dsEdit жағдайына аударады;
             • Insert әдісі деректер жиынына жаңа жазба қояды.

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

   ДҚ-ғы мәліметтерді енгізу үшін  экрандық форма құру


      Әрі қарай жұмыс үшін  DataModule5 контейнерін дайындаймыз. Data Access
парағының  Delphi   компоненттер   палитрасынан   TTаblе   визуальдық   емес
компонентін қосып,  қасиеттерінің мәніне DatabaseName-ді орнатамыз,   Tаblе3
қасиетінің мәнін  TableName (ДҚ кесте аты)  орнатамыз PRIHOD.DB-да.   Осыдан
кейін Active қасиетіне  True мағынасын орнатамыз .  TDataSource  компонентін
орналастырып  DataSet  (мәліметтер  жиынының  аты)  қасиетін  орнатамыз,  ал
DataSource  компанентіне   Table3  мәнін   береміз.   PRIHOD.DB   кестесімен
байланыстыру үшін визуальдық компанентті  контейнерге  қосу  міндетті  түрде
контейнердегі  DataModule ұқсас компоненттер және ол  циклдік айналып  жүруі
мүмкін.

      №2  формасына  Data   Controls   компоненттер   палитрасынан   TDBGrid
компонентін    қосамыз.    TDBGrid   компонентіне   қасиет   орнатамыз,   ал
DataSource3 мәнін  жорамалдап  №2   формасындағы  unit  текст   модульдеріне
Unit5  модулі атын қосамыз.

      Енді  Table3  мәліметтер  жиынының  жазба  алаңына  тек  қана   DBGrid
компоненті торымен емес, мәліметтер жиынының жеке жазба  алаңына   қатынауға
мүмкіндік беретін,  жеке визуальдық компанентермен қатынауға болады.

      №2 формаға TDBEdit  (Data  Controls  компоненттерінің  палитрасы)  екі
компонентін қосамыз.  DBEdit  компоненті  арқылы  қатынауға  болатын  алаңды
анықтаймыз.  Ол  үшін  DataSource  3-ке,   DatPrih   және   DataField-тердің
қасиетіне DataSource мәнін  орнатамыз. DBEdit2  компоненті арқылы  қатынауға
болатын алаңды  анықтаймыз. Ол  үшін   DataSource  3  және  Kolvo  DataField
қасиетінің мәніне DataSource орнатамыз.
    Material алаңына қатынау үшін  бізге бұдан да күрделі компоненттер
керек, ол  Prihod.DB  кестесіндегі  Material алаңының  мәндерін енгізуге
мүмкіндік берер еді. Осы мақсатта  DBLookupComboBox компонентін үнсіздікпен
TDBLookupComboBox атымен орналастырамыз. Мына компоненттерге  келесі
қасиеттерді орналастырамыз:



 – DataSource - DataModule мәніне  5. DataSource 3;
 – DataFiled - Material;
 – List Source - DataModule мәніне 5. DataSource 1
 – ListField - Material мәніне ;
 – KeyField - Material мәніне.

      Экрандық формаға ДҚ мәліметтерін басқару батырмасын қосу.

      Әрі қарай экрандық формаға ДҚ кестелерімен  навигацияны жүргізуге және
оны жағдайымен және жазбаларымен басқаруға   мүмкіндік   беретін  батырмалар
жиының құруға болады.

              Ол  үшін  қосымшаға  TButton  батырмасының   бес   компонентін
қосамыз.     (компоненттердің     палитрасынан    Standard    парағы)    Осы
компоненттердің бұл атын (қасиет Namе  ),  инспектор   объектілерін  қолдана
отырып сәйкес InsertButton  ,  EditButton  ,  DeleteButton  ,  PostButton  ,
CancelButton өзгертеміз.

   Осы  компонентер  тақырыбын   инспектор   объектілерін   қолдана   отырып
сәйкесіне  " Добавить ", " Изменить  ",  "  Удалить  ",  "  Запомнить  ",  "
Закрыть"

   ( сурет -12.1) өзгертеміз.

                                    [pic]
    Сурет -12.1. Мәліметтер жиынының ағымды жазба алаңымен жұмыс істеуге
арналған

      Тышқан көмегімен  InsertButton батырмасын таңдаймыз  және  оған    екі
рет   шертеміз.  Осыдан  кейін  редактор  кодына  өтеміз  және  ІnsertButton
батырмасына арналған OnClick InsertButton батырмасын басып оқиға  өңдеушісін
анықтаймыз:

      Procedure TForm 2. InsertButtonClick ( Sender : TObject );

      Begin

      DataModule 5. Table 3. Insert ;

      End ;

      Insert-әдісі DsInsert жазбаны  қосу жағдайға Table  мәліметтер  жиынын
көшіреді.   Алаң   мәнін   енгізу   DBEdit   1,   DBLookupComboBox   енгізуі
компонентерімен жүзеге асырылады.

Ол үшін мәліметтер жиыны  dsBrowse қарап шығу режимінде болуы қажет.


      EditButton батырмасын басқандағы өңдеушіні анықтаймыз:

      Procedure TForm 2. EditButtonClick ( Sender : TObject );

Begin


      DataModule 5. Table 3. Edit ;

      End ;

      Edit   әдісі   Table1-дегі  мәліметтер  жиынын   dsEdit   жазба   қосу
жағдайына көшіреді. Алаңдар мәнін редакторлау DBEdit-1  DBLookupComboBox  1,
DBEdit  2  компаненттермен  жүзеге  асырылады.  Ол  үшін  мәліметтер   жиыны
dsBrowse жазбаларды қарау режимінде тұру керек.




      DeleteButton :батырмасын басқандағы өңдеушіні анықтаймыз:

      Procedure TForm 2. DeleteButtonClick ( Sender : TObject );

      Begin

      IF MessageDlg (' растаудың жазу қашықтауы ', mtConfirmation ,[ mbYes ,
mbNo ],0)= mrYes THEN DataModule 5. Table 3. Delete ;

      End ;

      Table мәліметтер жиыны  dsBrowse  жазбаларды  қарау  режимінде  болса,
диалогты терезе шақырылады (Message Dlg функция орындалуда)  егер  қолданушы
 Yes  батырмасын басса,  Table1  мәліметтер  жиынындағы  жазбаларды  өшіруге
болады.

      PostButton батырмасын басқандағы өңдеушіні анықтаймыз:

      Procedure TForm 2. PostButtonClick ( Sender : TObject );

      Begin

      DataModule 5. Table 3. Post ;

      End ;

      Егер мәліметтер жиыны жаңа жазба қосу  немесе   редакторлау  режимінде
орналасса, ДҚ  кестесіндегі  ағымды  жазба  жағдайын  еске  сақтайтын   Post
мәліметтер жиыны әдісі орындалады. Мәліметтер жиынын есте сақтағаннан  кейін
dsBrowse қарау режимі жүргізіледі.

      CancelButton батырмасын басқандағы өңдеушіні анықтаймыз:

      Procedure TForm 2. CancelButtonClick ( Sender : TObject );

      Begin

      Close ;

      Form 1. Visible := true ;

      End ;

      Егер мәліметтер жиыны жаңа жазба  қосу  немесе  редакторлау  режимінде
орналасса, Cancel мәліметтер жиыны әдісі ДҚ  кестесіндегі   жазбаларды  есте
сақтауды алып тастайды және мәліметтер  жиынын  қарау  режиміне   ауыстырады
және меню формасына өтеді.

      Мәліметтер жиынына мәліметтер қосу және өзгерту сонымен қатар   DBGrid
қасиетіне True мәнін орнатамыз. Жаңа жазба қосқан немесе бар  алаңды  түзету
кезінде,   DBEdit   1,    DBEdit    2    компонентеріне     DBLookupComboBox
компонентіндегі  мәндер   тізімінен   таңдау   жолымен   енгізуді   қолданып
мәндерді  енгізуге  болады.  Жазбаларды  өзгерту  кезінде  диалог   терезесі
беріледі.(12.2- сурет)




                                    [pic]

      Сурет-12.2. Жаңа жазба қосу

      Жазбаны өшірген кезде келесі диалогты терезе шығады (сурет- 12.3).




                                    [pic]

      Сурет -12.3. Жазбаны өшіруді растау терезесі

   ДҚ мазмұнын ұсыну үшін өте күрделі экрандық формалар


      Экрандық формадағы  TDBGrid модификация варианттары


      N_Prih Prihod кестесіндегі уникальдықты  қамтамасыз  ету  үшін  N_Prih
алаңының мәнін байқауға қажет және басқа  ешбір  күш  түсірмейді.  Cондықтан
берілген алаңға ең жақсысы DBGrid2  бағаналарының  құрамында  көрсетпеу.  ДҚ
кестесі  алаңынан  қайсысын  мәліметтер  жиыны  үшін  қосымшадан  қолданудан
Delphi-де сілтеудің екі мүмкіндігі бар.

      Бірінші әдіс осы мәліметтер жиыны ассоцияланған. ДҚ  кестесінен барлық
алаңды үнсіздікпен қолдану, бұл әдіс  әрқалай  үнсіздікпен  орындалады  және
Table1  және Table 2 мәліметтер жиынын құру кезінде анық емес қолданылады.

        Екінші  әдіс  ассоцияланған  мәліметтер  жиынымен  ДҚ   кестелерінің
бағыныңқы жазба алаңын қолданудан тұрады.

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

       DataModule  5  компонентінен   тышқан  көмегімен  Таblе2  компанентін
таңдаймыз.  Экранда пайда болған қалқыйтын менюден  Fields Editor  элементін
таңдаймыз. Редактор алаңында (сурет 30 )  пайда  болған  тізімнен  тышқанның
бірінші бастырмасын менюден Add Fields меню элементін таңдаймыз.

      ДҚ  Prihod кестесінің барлық алаңдар тізімі көрсетіледі.

      N _ Prih (сурет 12.4.6) алаңынан басқа барлық алаңды  белгілеген  (мен
Shift бастырмасы көмегімен),  Add бастырмасын басамыз. Енді  редактор  алаңы
тізіміне белгіленген алаңының бәрі қосылады.(сурет-12.4.6)




   [pic]            [pic]            [pic]




                    а)                                                    б)
                                                    в)
      Сурет-12.4. Редактор алаңымен жұмыс:

      а) редактора алаңының бос тізімі; б)алаң қосу; в)  редактора  алаңының
толтырылған тізімі.




      №3 формасындағы  DBGrid 2 бағандары құрамында, енді Table 2 мәліметтер
жиыны үшін редактор алаңынан қосылған алаңдар ғана  бар  болатынын  байқауға
болады.

      Редактор  алаңдарында  мәліметтер  жиынының  алаңдар  тізімін  анықтау
(Таblе2-нің тышқанның оң батырмасын басып тұрғанда) мынаған келеді,  осындай
жолмен қосылған  Delphi –дегі қосымшаға қосылған  алаңға   Tfield  автоматты
түрде құрылады.(мәліметтер жиыны алаңында ) Бұндай әрбір компанент  үнсіздік
пен уникальдық атпен аталады.  Бірінші  құрылған  алаң  мәліметтер  жиынының
атын алады(2), екінші реттік құрылғандары—ДҚ кестесінің алаңның атын алады.

                                    [pic]

      Сурет-12.5. DBGrid2 алаңы құрамы редактор алаңы тізімімен анықталады.



             Material  алаңына сәйкес TField компаненті Таblе2 Material
        сияқты аталады. Егер алаңдар редакторына сәйкес алаң атына шертсек,
        онда инспектор объектілерінде алаң қасиетін орналастыруға немесе
        өзгертуге болады. Сондақтан нақты алаң үшін оқиға өңдеушісін
        анықтауға болады.

       DBGrid2-ң  параметрлерін оның бағаналардың атауы   орысша  болатындай
етіп өзгертеміз ол үшін тышқанның оң  жағын  басып  DBGrid2   компонентінде,
қалқыитын менюден Columns Editor   элементін   таңдаймыз.  Экранда  редактор
терезесі пайда болады,(сурет12.6.а). TDBGrid  столы  сипатын  өзгерту   үшін
нақты анық емес бағаннан анық бағанға көшу керек . Ол үшін  Add  All  Fields
батырмасын  басу  керек,  нәтижесінде  Таblе2       компанентінің   редактор
алаңында   анықталған   әрқайсысы    алаңға    сәйкес    келетін    бағандар
қосылады.(сурет 12.6.б)




      [pic]                                     [pic]




      Сурет -12.6. а) DBGrid2 бағандардың бос тізімі;

      б) бағандардың толтырылған тізімі




      Әрбір бағанның тақырыбын өзгерту үшін тышқан көмегімен  бағандар  атын
таңдау және объектілер  инспектрлерінен Caption элементінің  Title  қасиетін
ашу,  бұл  тізімде  бағандар  тақырыбы  болады;   сәйкес   түрде   тақырыпты
өзгертеміз және содан кейін бағандар редакторынан  DBGrid2 –ден шығамыз.

      Таblе1  мәліметтер жиыны үшін тағыда осыны қайталаймыз.(сурет-12.7)

                                    [pic]

      Сурет-12.7. DBGrid 1және  2 бағандар тақырыбын орнату

      №2 формадағы  Таblе3  мәліметтер  жиынының  жазбаларын  сорттау  ретін
өзгертеміз.  Ол  үшін  объектілер  инспектрлерінде   Таblе3  копманентіндегі
(DataModule5  те)  IndexFieldNames  қасиетіне    “DatPrih   Material”   мәні
қалқитын тізімнен таңдау жолымен өзгертеміз  осыдан  кейін  қайтадан  DBGrid
редактор  колонкасына  кіріп,  DatPrih  бағанын  тышқан  көмегімен  Material
бағанын  алдындағыдай  қылып  “перетацим”  қосымшаны   компилярлаймыз   және
орындауға  жібереміз.12.8-сурет  көрсетілген  Table2  мәліметтер  жиыны   ДҚ
PrihodДВ кестесімен ассоцияциялған, қосымшада  кіріс  датасымен  сортталған,
ал әрбір кіріс датасы ішінде материал атауымен.




                                    [pic]

      Сурет -12.8. Түсу датасы бойынша сортталған материалдар

Электрондық формада саналатын алаңдар

       Егер форма  №3 саналатын алаң құру қажет болса, онда былай істеледі:

    1. Редактор алаңына  жаңа  алаң  құру  керек,  оны  Calculated   сияқты
белгілеу. Бұл  үшін  DataModule  5–ке  өту  керек,  қажетті  ағымды(  тышқан
көмегімен) НД () жасап; тышқанның оң жағын басып Field Editor менюін  таңдап
және қайтадан тышқанның оң жағын басып,   New  Field  менюін  таңдау,  сонан
кейін диалог терезесіне алаң атын көрсету қажет, оның типі және жолдақ  алаң
үшін ұзындығын ( сурет 12.9)


                                    [pic]



Сурет-12.9. Жаңа алаң қасиетін анықтау терезесі


    Жаңа алаң үшін  TField компоненті құрылды, қатынасты редактор  алаңымен
жүзеге асыруға болады.
           2. Қолданылатын алаңға  жататын  НД  (Table2)  компоненті  үшін,
OnCalcFields оқиға өңдеушісі анықтау қажет .
            Мысалы, Table 2 НД арналған,  қауымдастырылғанға ТБДпен “ Кіріс
        ” ті, есептеліп, Table 2 Vychisl  алаңына “ ия ” мәнін енгіземіз ,
        егер Table 2 Kolvo алаңында осы жазбаның 100-ден көп мәнінен тұрады,
        ал керісінше болса, Table 2  Vychisl алаңына бос мән береміз:

      Procedure TDataModule 5. Table 2 CalcFields ( DataSet : TDataSet );

      Begin

      IF Table 2 Kolvo . Value >100 Then

      Table 2 Vychisl . AsString :=' ия '

      А

      Table 2 Vychisl . AsString :='';

      End ;

        Егер   AutoCalcFields   мәліметтер   жиынының    қасиетінде    True
анықталған болса, OnCalcFields оқиғасы  берілген НД  dsEdit   және  dsInsert
режимінде саналатын алаң модификациясы кезінде  бастайды,  онымен  реляциялы
байланысқан  (ТБД өзіне тұтастыққа шектеу орнатылған кезде ).

        Осы OnCalcFields  оқиға  процедура  -  өңдеушісі  есептелетін  алаң
немесе  алаңдар  тобының  мәнін   есептеу   алгоритімін   жүзеге   асыруынан
құрылады. Осы өңдеушіде  мән  тек  саналатын  алаңға  меншіктеу  керек  және
алаңға меншіктеле алмайтын белгілі  ДҚ  құрлымында  (қосымша  12.10  суретте
көрсетілген).

                                    [pic]

   Сурет-12.10. Жіберілген қосымша түрі


        Ескерпе.  Кейде  саналатын  алаңға  мән  меншіктеу  қажет   басқаша
айтқанда кейде кейбір  айнымалы  формаларында  есептелінетін  алаң  мәндерін
жазу тиімді болады. Мысалы біз НД Tbl жазбаны  қосайық   Summa   алаң  мәнін
кейбір алгоритімдер есептелініп Summa алаң  мәнін  есептеу  үшін  TekOstatok
айнымалысы қолданылады. Біз TekOstatok мәнін Tbl алаңында  есептелінетін  әр
жазбаға енгізуімізге болады.
    Бір   қиындық  кездеседі:  мәліметтерді   есептелетін   алаңға   енгізу
OnCalcFields оқиға  өңдеушіде  және   жергілікті  айнымалы  TekOstatok  мәні
таратылған уақытта жүргізіледі.

        Мына жағдайда    Tbl жаба  қосатын  алгоритмді  орындау  процесінде
қандайда бір динамикалық тізімде  локальді  айнымалы  мәндерін  есте  сақтау
керек,  содан  кейін   OnCalcFields   оқиға   өңдеушідегі   сәйкес   келетін
элементтерді алап тастау керек,  осы элементтердің мәндерін Tbl  ТО  алаңына
қосу керек.







   Дәріс №13



Тақырыбы: SQL  тілінің мүмкіндігі  және оларды ДҚ-да қолдану.

   1.  Экрандық  форманың  әртүрлі  кестелерінің   SQL-сұратуды   пайдаланып
      мәліметтерді бейнелеу

   2. Есеп беру формасын құру және олардың ДҚ-ға қатынауын орнату және
      мәліметтерді өңдеуді ұйымдастыру



      SQL  тілі (Sructured Query language – құрылымдық сұраныстар тілі)
деректер қорына күрделі сұраныстарды қалыптастыруға мүмкіндік береді.

   Сұраныс  бұл  нәтижесінде  сұрақты  қанағаттандыратын  жазбалар  жиынынан
алынатын   деректер  қорына  қойылған  сұрақ.   SQL    синтаксисінің   жалпы
ережелері өте қарапайым.

    ЖҰМЫСТЫ ОРЫНДАУ РЕТІ

        Экрандық  форманың  әртүрлі  кестелерінің  SQL-сұратуды  пайдаланып
мәліметтерді бейнелеу

        Бірнеше кестелерден мәліметтерді бейнелеу үшін  форма  құрайық,  ол
үшін  TdataModule5  контейнеріне  TQuery  компонентін   жайғастырамыз  (Data
Access компонент палитра беті). Үнсіздік бойынша оның аты  Query1.   PRIMER-
ге  DatabaseName қасиетін орнатамыз. TDataSource (DataSource 4)  компонентін
орналастырамыз. Query1 мәніне DataSet  қасиетін орнатамыз.

      №4 формаға   TDBGrid  компонентін  орналастырамыз.  Оның    DataSource
қасиетін  DataSource4 мәніне орнатамыз.
    Объектілердің инспекторында  Query1 компоненті үшін SQL-қасиетін тауып
[pic] батырмасын басамыз. Содан пайда болған редактор терезесінде   SQL
–сұрату текстін тереміз.

      SELECT P.DatPrih, P.Material, P.Kolvo,Т.Zena,

      (P.Kolvo * T.Zena) As Stoim

      FROM Materialy T, Prihod P

      WHERE T.Material = P.Material

      ORDER BY P.DatPrih, P.Material

             Және Ok батырмасын басамыз .

      Осыдан  кейін Query1. Active қасиетін True мәніне  орнатамыз.  Query 1
мәліметтер жиыны қоймаға түскен материалдар жайындағы мәліметтерден  тұрады.
Бұл жиынның жазба  құрамына   DatPrih  (кіріс  датасы),  Material  (материал
аты), Kolvo (кіріс мөлшері), Zena  (  берілген  материалдар  бағасы),  Stoim
(кіріс материал құны) алаңдары  кіреді.   SQL  қасиетінің  сұрату  текстінен
мәліметтер жиыны екі кестеден "жиналатыны" көрініп  тұр:  Materialy.DB  және
Prihod.DB кестелері.  Material алаңының бірдей мәндері бар  ДҚ  кестелерінің
жазбалары біріктіріледі

      №1формасының есеп беру пунктіне келесі код енгіземіз :

      Form 1. Visible := False ;

      Form 4. Visible := True ;

      Query 1 мәліметтер жиынына  жаңа  жазбаларды  қосуға  және  мәліметтер
жиынындағы  жазбаларды  өшіруге  немесе  өзгертуге  болмайтынын   ескеруіміз
керек.ДҚ жалғыз "жиналатын" бұл  мәліметтер  жиындарының  типін  оқуға  ғана
болады.




                                    [pic]

   Сурет-13.1.  Әртүрлі  кестеден  мәліметтерді   бір   мәліметтер   жиынына
біріктіру


    Есеп беру формасын құру және олардың ДҚ-ға қатынауын орнату және
мәліметтерді өңдеуді ұйымдастыру

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

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




      Жүйе жұмысын  тексеруі және жіберілу


      Өңделетін жүйені оқтын-оқтын орындауға жіберіп және  оны  жұмыс  істеу
қабілетін тексеру керек.Жұмыс істеу қабілетін құрудың   кез-келген  этапында
жүргізуімізге болады оны толық құруды аяқтау міндетті  емес  тек  минимальді
конфигурациясын алсақ   жеткілікті. Минимальді  конфигурациясын  ДҚ және  ДҚ
қатынайтын жалғыз форма құрады.

      Жүйені жіберу үшін құрылған барлық компаненттерді есте сақтау керек.

      Rиn | Rиn  командасы арқылы жүйені жіберу жүзеге асады,   ыстық  перне
F9  батырмасы көмегімен де жіберуге болады.

      Жүйе байланысын қалған жағдайда немесе жүйеден  шығу   мүмкін  болмаса
оқиғасында немесе жүйеден шығу  Rиn  |  Program  Reset  командасы  көмегімен
жұмысты үзуді  жүзеге асаруға болады.

      Жүйе жұмысын тоқтатқанана кейін оны өңдеуге және жөндеуге болады.

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

      Егер экрандық форма ережесін  бейнелеу  тіленілетін  вариантқа  сәйкес
келмесе6 онда оны Project Prgect/Options меню элементі көмегімен  Main  Form
алаңында өзгертуге болады.







   Дәріс №14

Тақырыбы:  Delphi- де  есеп беру формасын құру
   1. Есеп беруді құрудың  компоненттері
   2. Есептік форманы құрудың негізгі әдістері



Сабақтың мақсаты:  Есептік форманы құрудың негізгі әдістері


      Жүйенің жұмыс нәтежесін принтерден шығару немесе файл  түрінде  сақтау
қажет. Бұл мақсатта есеп беру формасы құрылады.

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

      Экрандағы жуық бейнелеумен есеп  беруді  құрудың  әртүрлі  варианттары
бар:
     - экранда кестені бейнелеу содан кейін есеп беру үшін жазбаны таңдау;
     - экранда таңдалған жолмен есеп беруді бейнелеу;
    - есеп беруді бейнелеу.

Есеп беруді құрудың  компоненттері

      Delphi  3  есеп  беруді  құру  үшін   QReport  компонентінің   палитра
беттерінде жиырмадан астам компанент орналасады. "Басты  "  компонент  болып
есеп  берудің  тәртәбән   толығымен   анықтайтын   TQuickRep,,    компаненті
есептеліненді.   Басқа   компаненттер   есеп   берудің   қосыша   бөлңктерңн
анықтайды:

      TQRBand  –  мәліметтердің,  тақырыптардың,   титулдардың   орналасуына
дайындық,  есеп беру негізінен TQRBand  компанентінен құрылады:
 – есеп берудің  таұырып ауданы;
 – есеп берудің беттер ауданы;
 – есеп берудің топтар ауданы;
 – есеп берудің бағандар атының ауданы;
 – дитализацияның ең соңғы деңгейінің бейнесңн құру үшін  детальді құру
   ауданы;
 – подвалдың есептеу ауданы ;
 – подвалдың беттер ауданы ;
 – подвалдың топтар ауданы;
TQRSubDetail - ТБД арасындағы қатынастар арқылы Master-Detail есеп берудегі
бағынышты кестелердің ауданын анықтайды; TQRGroup – есеп беруде
топтастыруды құру үшін қолданылады;
TQRLabel – есеп беруде статикалық текстң орналастыруға мүмкіндік береді;
TQRDBText – есеп беруде мәліметтер жиыннының алаңын орналастыруға мүмкіндік
береді;
TQRExpr - өрнектің мәндер қортындысын шығару үшін қолданылады, берілген
компаненттің формалар редакторының көмегімен нәтежелер аргоритмі құрылады.
TQRSysDate – есептегіштің, нөмірлердің , беттердің, даталардың  басқа да
мәндерін шығару үшін қызмет етеді;
TQRMemo – комментари берілген алаңның есеп беруін шығару;
TQRRichText – форматталған  комментари алаңының есеп беруін шығару ;
TQRDBRich Text – мәліметтердің құру алаңы болып табылатын форматталған
коментари берілген алаңның есеп берун шығару;
TQRShape – есеп беруде графикалық  фигураларды шығару үшін қызмет  етеді,
мысалы тіктөртбұрыш;
TQRImage – есеп беруде мәліметтер алаңының жиынын болып табылатын
графикалық ақпараттарды шығару үшін қолданылады;
TQRChart – есеп беруде графиктерді құру үшін қолдану.

TQuickRep компонент

      TQuickRep компоненті есеп берудің  сипаттамасын  толығымен  анықтайды.
Бұл компанентті формаға орналастырғанда  есеп  берудің  торы  пайда  болады.
Содан кейін бұл торда қосымша бөліктер орналасады, мысалы, TQRBand тобы

      TquickRep  компоненттерінің   негізгі   тәсілдерін   және   оқи,аларын
қарастырайқ.

      Қасиетті

      property Bands: TQuickRepBands;

      Көптеген логикалық мәндерден  (False/True) тұрады ;

      HasColumnHeader – есеп беру бағанының тақырыбы;
HasDetail – детальдік  информация;
HasPageFooter –беттердің подвалы;
HasPageHeader –беттердің тақырыбы;
HasSummary – есеп берудің подвалы;
HasTille –есеп берудің тақырыбы.
                                    [pic]

   Сурет-14.1.  Есепберудің  бос  торы.   Формеға   TQuickRep    компонентін
орналастырғанан кейін құралады

                                    [pic]




   Сурет-15.2. Есепберу компанентін орналастырғанан кейінгі есепберу торы

      property DataSet: TDataSet;

      мәліметтер жиынына сілтейді, осының арқасында есеп  берулер  құрылады.
Есеп беруді үлестіру үшін жалғыз НД  қолданылады.

      Бірнеше БДкестелеріне  байланысты  ақпараттарды  шығару  қажет  болса,
SELECTоператорының көмегімен жалғыз НД да  біріктіріледі.Бұл  жағдайда  есеп
беру үшін НД орынына TQUERY компанентін қолдануға болады.

      Бірнеше байланысқан  НД ақпараттарын есеп беруге қосуға  болады,  егер
бұл мәліметтер  жиыны  Master-Detail  қатынасымен  байланыста  болса  .  Бұл
жағдайда НД орынына  Master-набор  көрсетңледі,  ал  Detail-наборына  сәйкес
келетін сілтеме TQRSubDetail компанентінде жүзеге асады  .Егер  есеп  беруді
мәліметтер наборының байланыс баған  ақпаратына  қосу  керек  болса  ,  онда
компазитті есеп берудң қолданамыз, ол  дегеніміз  басқа  топтардан  құралған
есеп беру.

      property Frame: TQRFrame;

      есеп беру параметрлерінің рамкаларын анықтайды;
Color – рамка сызығының түсі;
DrawBottom – астыңғы сызықты шығару керек пе жоқ па соны анықтайды;
DrawLeft- сол жақтағы сызықты шығару керекпе  жоқ па соны анықтайды ;
DrawRight-оң жақтағы сызықты шығару керекпе  жоқ па соны анықтайды ;
DrawTop-үстінгі жақтағы сызықты шығару керекпе  жоқ па соны анықтайды ;
Style – сызық стилін анықтайды;
Width • пиксельді сызық енін анықтайды.

      property Page: TQRPage;

       Беттердің параметрлерін анықтайды

      property PrinterSettings: TQuickRepPrinterSettings;

      принтер  параметрлерін анықтайды

      property PrintIfEmpty: Boolean;

      мәліметтер жоқ болса да есеп беруді басу керектігін көрсетеді  (True),
Әдістер

      procedure NewPage;

      Жаңа бетке  көшуді  орындайды   BeforePrint  немесе   AfterPrint  есеп
беруде компаненттерді өңдеуде қолдануға болады,  .ал   OnPrint,  OnStartPage
және OnEndPage  қолдануға болмайды.

      procedure Preview;

      есеп беруді терезеге жуықтап  шығарады

      Есеп беруді өңдеу уақытында жуықтап көру терезесңнде баспаға шығрғымыз
келсе онда төмендегілер қажет;
 – Есеп беруді тышқан көмегімен таңдау;
 – Тышқаннығ оң шертпесін басу;
 –  всплывающи меню інде Preview  элементін таңдау.
    Ескеретін жағай осы уақытта кейбір мәліметтер мысалға, мәліметтер
алаңының жиынын шығару мәні көрінбейді . Олар тек орындалатын уақытты ғана
шығарылады.

      procedure Print;

      есеп беруді принтерде шығару;

      procedure PrinterSetup;

      обеспечивает  установки  принтера  параметрлерін  орнатуды  қамтамасыз
етеді .

      Оқиға

      property AfterPreview : TQRAfterPreviewEvent;

      есеп беруді жуықтап көретін терезе жабылған кезде орнайды.

      property AfterPrint: TQRAfterPrintEvent;

      есеп беруді баспадан шығарғаннан кейін кіріседі .

      property BeforePrint: TQRBeforePrintEvent;

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

      property OnEndPage : procedure(Sender : TObject);

      есеп берудің соңғы бетін генерация үшін дайындау  моментінде  кіріседі
property OnStartPage : procedure(Sender : TObject);

      есеп берудің бірінші парағын генерацияға дайындау моментінде кіріседі.
      Компонент TQRBand

      TQRBand компоненты есеп берудің негізгі қосымша бөлігі болып  табылады
және оларға статикалық текстерді және мәліметтерді  орналастыру  үшін.  Есеп
беруде компаненттердің орналасуы және тәртіп қасиеттерімен анықталады.

      property BandType : TQRBandType;

      Төменде осы қасиеттердің жуық мәндері :
rbTitle – есеп берудің тақырып компанентін анықтайды. TQRBand,
компанентінде орналасқан ақпарат есеп берудің барлық басқа бөліктерінде
орналасады. Бұл TQRBand компанент түрі bi есеп берудің ақпарат тақырыбында
қолданылады.
rbPageHeader – беттердің тақырып компанентін анықтайды. Осы қасиет және
мәндер  Band  орналасқан компанентте ақпарат есептеудің  әр жаңа парағы
шығарылады.
rbDetail – детальді информация  компаненті  НД есеп беруіндегі жаңа жазбаға
өту үшін әркез шығарылады. Есеп беру барлық НД жазбалары үшін басылады,
DataSet, есеп беру қасиетімен анықталған біріншісінен бастап соңғысына
дейін TQuickRep автоматты түрде.
rbPageFooter – беттер подвалының  компоненті. Есеп берудің барлық беттері
үшін шығарылады.
rbSummary – есеп берудің подвал компоненті. Выводится на пост странице
отчета после всей иной информации, но перед под последней страницы отчета.
rbGroupHeader – топтың тақырып компоненті. Есеп беруде ақпаратты топтастыру
пайдаланылады, әр жаңа топ енгізген кезде шығарылады.
rbGroupFooter – топ  подвалының  компоненті. Есеп беруде ақпаратты
топтастыру үшін пайдаланады , топтың барлық мәліметтерінен кейін топ
аяқталғанда шығарылады.
rbSubDetail – бағынышты мәліметтер жиынында детальді ақпарат алу үшін
қолданылатын компанент, Master-Detail көмегі арқылы қосымшада есеп беруде
екі немесе оданда көп ақпаратты шығару үшін қолданатын  компонент.  . Бұл
мән компанентке TQRBand формаға  TQRSubDetail компанентін орналастырған
кезде автоматты түрде меншіктеледі. BandType  қасиетінде бұл мәнді
программа орналастырмау керек .
rbColumnHeader – бағанға тақырыпты орналастыру компаненті Есеп берудің
беттердің тақырыбынан кейін әрбір бетте орналасады.
rbOverlay – есеп берудің алғашқы версияларын сәйкестіру үшін қолданылады.

   Қасиеті

      property Enabled: Boolean;

      TQRBand компонентінде есеп беруде ақпарат басу керек пе   (True)немесе
жоқ па  (False) көрсетеді .

      Қасиет

      property ForceNewPage: Boolean;

      TQRBand құрамындағы ақпарат жаңа беттен басылуы керек пе  (True)  әлде
жоқ па (False) екендігін көрсетеді .

      Оқиға

      property BeforePrint: TQRBeforePrintEvent;

      TQRBand  компонентінің ауданында орналасатын  ақпаратты  басу  алдында
туындайды.








   Дәріс №15
Тақырыбы: Қарапайым есеп беруді құру
     1. Баған тақырыбын көрсету үшін TQRBand қолдану
     2. Есепберуде топтық мәліметтер




      TQuickRep және  TQRBand компоненттер  құрамында  топтық  ақпараты  жоқ
қарапайым есеп беруді құру үшін жеткілікті болып табылады.

   ДҚ  Prihod.DB  кестесі   қоймаға  материалдар  түсу  жөнінде    мәліметтә
құрайды. ТБД құрамына төмендегідей алаңдар кіреді.
 – N_Prih – материала келу оқиғасының уникальді  нөмірі
 – DataPrih-түскен күні
 – MATERIAL – материал аты;
 – KOLVO –түскен материалдар көлемі.

    Түскен материалдардың тақырыбы  мен  мәліметтерінен  тұратын   қарапайым
есептеу  құрайық.  Есеп  беруге  материал  түскен  барлық  фактілер  кіреді.
Сұрыптау материалдардың түсу нөмірі арқылы жүреді.

      TTable (Table1 аты) компанентін  №6 формаға орналастырып  ДҚ Prihod.DB
  кестесімен  байланыстырып  ашайық.  (Active  =  True)  QReport   компонент
палитрасы  бетінен  TQuickRep   (   QuickRep1   аты)   компонент   формасына
орналастырамыз.  DataSet   қасиетіне   Table1   мәнін    орнатамыз,   осылай
мәліметтер жиынын  есепберуге шақырамыз. Есепберуге  TQRBand  (аты  QRBand1)
компонентін  қосамыз.

      BandType     қасиеті QRBandl компонентіне  үнсіздікпен  rbTitle,  мәні
орнатылады, яғни QRBand1 компоненті есепберу тақырыбын  анықтайды.  Есепберу
кеңістігіне  QRBand1компонентін,  TQRLabel  (статикалық  текст)  компонентін
QRLabel1 атымен орнатамыз. Осы компаненттің  Caption  қасиетін  'Поступление
материалов на склад' мәнін орнатамыз,  Font қасиетіне  16  пунк  биіктіктегі
қисық майлы шрифті қоямыз. Есепберу түрі 15.1-суретте көрсетілген.







                                    [pic]




      Сурет-15.1. Есепберуде оның тақырыбы ғана анықталған

      Енді есепберуге мәліметтерді Prihod кестесіне  сәйкес  орналастырамыз.
Ол үшін  есепберуге  жаңа  компанент  TQRBand  (QRBand2  аты)  орнатып  оған
BandType  қасиетіне   rbDetal     мәнін  орнатамыз.Содан  кейін  топқа  төрт
TQRDBText  компанетін  QRDBText1  ...   QRDBText4   атымен   орналастырамыз.
Берілген  компанеттерді  МЖ-ның  сәйкес  алаңымен  байланыстырамыз-  N_Prih,
MATERIAL, DataPrih, KOLVO. Ол үшін  QRDBText  әрбір  компанентіне    DataSet
қасиетінде Table1 мәнін орнатамыз, ал  DataField  қасиетіне  сәйкес  келетін
алаң атын орнатамыз. Есепберу түрі 152 – суретте көрсетілген.

                                    [pic]

      Сурет-15.2. Детальді ақпараттар тобтарымен және  тақырыбымен  берілген
есепберу

      Алған есеп беруді қарау үшін оған  тышқанның  оң  жағын  басамын  және
жылжымалы менюдан  Preview элементін таңдаймыз. Осылай  есепберудің  жуықтап
көру терезесін аламыз. (15.3-сурет).




                                    [pic]

      Сурет-15.3. Жуықтап қарау терезесіндегі есепберудің мазмұны


      Алдын ала көру терезесін “Просмотр”  батырмасы арқылы ұйымдастырамыз.

      №4 формасына TButton компонентін орналастырамыз.   Для этого добавим в
форму. Осы батырманың  тақырыбын (қасиеті  Caption)  арқылы  өзгертаміз,  ол
үшін  “Просмотр” инспектор объектісі қолданылады.

      Form6. QuickRep1.Preview;

Баған тақырыбын көрсету үшін TQRBand қолдану

      RbColumnHeader  мәнінде   орналасқан   BandType   қасиетінің   TQRBand
компоненті  баған тақырыбын көрсету үшін   қолданылады.  Бағандар  тақырыбын
TQRLabel компонетінің көмегімен анықтайды

      Алдындағы бөлімдерде берілген  есеп  беруде  TQRBand  (QRBand3  аты  )
компонентін    қосып,     rbColumnHeader    мәнін     BandType     қасиетіне
орналастырамыз. Есеп беру  кеңістігіне  тағайындалған   QRBand3   анықталған
TQRLabel  (аттары   QRLabel2  ...  QRLabel5)  4  компанентін  және   Caption
қасиетіне  осы компаненттер мәндерін “Кіріс  №”   ”  материал  аты”   “Дата”
“мөлшері ”  орналастырамыз. Font  қасиетіне берілген  компанент  шриф  астын
сызу  режимін орналастырамыз .  Есеп  берудің  алдын  ала  қарау  терезесіне
шығып,  әр бет үшін  есепберудің  алдын ала  қарау  бетінің  жоғарғы  жағына
бағанның аттары жазылады.(15.4-сурет )

                                    [pic]

      Сурет-15.4. Есепберуде бағандар тақырыбы көрсетілген

Беттердің подвалының  және тақырыпты көруде  TQRBand  қолдану


      BandType қасиетіне  rbPageHeade  мәні  орнатылған  TQRBand  компоненті
беттер тақырыбын көруде қолданылады.  Ол басқа ақпараттың  алдында  әр  жаңа
бет үшін шығарылады.

   BandType  қасиетіне rbPageFooter    мәні  орналасқан  TQRBand  компоненті
беттер  подвалында статикалық тексте  (TQRLabel  компоненттері)  орнатылады,
өріс мәндерінде (TQRDBText компоненті), өрнек шығару  нәтежесінде   (TQRExpr
компонеті).

      Алдынғы  бөлімдерде  қаралған  есепберуде   TQRBand   (QRBand4   аты)
компанентінде орналастырып   және  rbPageHeader   мәнін  BandType   қасиетін
орналастырамыз.Бет тақырыбына   ешқандай  тексті  жазбаймыз  ,   жай  беттің
жоғарғы жағы сызығын  сызамыз . Ол үшін True мәнін  Frame.  DrawTop   беттің
тақырып компанентінің  қасиетіне   орналастырамыз  ,   ол  ауданның  жоғарғы
шетінің  сызығы шығуына көмектеседі.

    Анологты түрде есеп беруде беттің   подвал  компанентін  (QRBand5  аты)
анықтаймыз және rbPageFooter  мәнінің қасиетіне орналастырамыз. Есеп  беруді
алдын ала көру  режиміне кіріп,  әр беттің  жоғарғы  және  төменгі  сызықтар
шыққанын көреміз.

TQRSysData компонентін  көмекші және жүйелі ақпараттар  көруде қолдану


      TQRSysData  компоненті   көмекші  және  жүйелі   ақпараттарды   көруде
қолданылады. Көрсетілетін ақпарат түрі  қасиеттермен анықталады.

      property Data : TQRSysDataType;

      Төменде осы қасиеттердің мүмкіндігі көрсетілген .

    • qrsColumnNo – есеп берудің ағымды бағанының нөмірі (бір бағанды  есеп
беру үшін әрқашанда 1).

    •  qrsDate – ағымды дата .

    •  qrsDate Time - ағымды дата және уақыт.

    • qrsDetailCount - ДҚ  да  жазбалар  саны   бірнеше  ДҚ   қолданылғанда
master-жиында  жазба саны TQuery компоненті  ДҚ –да  көрсетілгенде.

    • qrsDetaUNo – ДҚ ағымдағы жазба  нөмірі  .   Бірнеше  жинақта  master-
жиындағы ағымдағы жазбаның нөмірі .

    • qrsPageNumber – ағымдағы есеп беру бетінің нөмірі .

    •  qrsPageCount – ағымдағы есеп берудің жалпы бетінің нөмірі.

    •  qrsReport Title – есепберудің жалпы саны .

    • qrsTime – ағымдағы уақыт.

      QRBand5  есеп беру подвалының компанентіне  TQRSysData  (QRSysDatal...
QRSysData2 аты)  2  компанентін  орналастырамыз.   Data   қасиетіне  qrsDate
(ағымдағы  дата  )    мәнін    бірінші   болып   орналастырамыз..   2-ші   –
qrsPageNumber  мәнін ( есеп беруде алдындағы беттің нөмірі  )  .  Есепберуді
алдын ала көру  режиміне кірейік . Енді  есепберудің  әр  бетінің  подвалына
бет нөмірі және ағымдағы дата шығарылады.

 Есепберуде топтық мәліметтер
    Жоғарыда біз есепберуді ТБД  Prihod.DB   дан  материал  түсу  ақпаратын
қарастырайық, қоймаға “тура солай” шығарылады.

    TQRGroup   компоненті    ақпаратты   топтастыруда   қолданылады.   Оның
Expression қасиеті  өрнекке сілтейді топқа  ДҚ   жазбалар  кіреді  .  Шартты
қанағаттандыратын  өрнек  әр  анықталған  топқа  топтың  подвалына    топтың
тақырыбы  шығарылады.  ВапаТуре  қасиетінің  мәнімен    TQRBand   компоненті
топтың подвалы ретінде қолданылады.

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

      Мысалы: Қоймаға түскен материалдар  атымен топтастырылады., Ол үшін №7
 формада есепберудің мәндер жиынын   анықтайық  (ТТаblе  компоненті,  Table1
аты, TablelName  -  Prihod.DB  қасиеті,  Active  -  True).  ДҚ-на   ағымдағы
индексті  Material  өрісі  арқылы  орналастырайық  (FieldIndexNames   немесе
IndexName қасиетінде ).
    Есепберуді орналастырамыз:

      • есепберу тақырыбы- QRBand1 атымен  TQRBand  компоненті   ВапаТуре  =
rbTitle қасиеті;

      • бағандар тақырыбы- QRBand2 атымен TQRBand  компоненті,   ВапаТуре  =
rbColumnHeader қасиеті ;

      • топты- QRGroup1  атымен TQRGroup компоненті.

      • детальді информация ауданы - QRBand3  атымен  TQRBand  компоненті  ,
ВапаТуре = rbDetail қасиеті;

      • топ  подвалы  -  QRBand4  атымен  TQRBand  компоненті,   ВапаТуре  =
rbGroupFooter қасиеті.

      QRGroup1 компонентінде орналастырамыз:

      • FooterBand қасиетіне  QRBand4 мәнін ;

      •  Expression қасиетіне  Table1 мәнін  .MATERIAL  мәнін,   ол  формула
болып табылады және  формула  редакторында  құрылады.  Expression    қасиеті
мәндер өрнегі  визуалды емес ) TQRExpr компонентін топқа  орналастыру  керек
және  Table  Material  болатындай  етіп   анықтау  керек.(  44-сур).  Топтың
подвалы  QRBand4  компонентінде  Kolvo  өрісімен   сумманы   санаймыз(түскен
белгілі материал соммасы ),  ол үшін топтың подвалында  TQRExpr  компонентін
(  TQRExpr2  аты  )   орналастырып    және   Expression    қасиетінің   мәні
SUM(Table1.KOLVO) формуласы болатындай етіп  анықтау керек .

      Детальді  ақпарат   тобына   TQRDBText    компанентін   орналастырамыз
мәліметтердің  кейбірі  N_Prih,  Material,  DataPrih  және   Kolvo  өрісімен
байланысқан.

      15.5-суретте  көрсетілгендей   етіп   есепберудің   статикалық    текс
аудандарын  толтырамыз.
      15.6-сурет те алдын ала көруде есепберу режимі көрсетілген .

                                    [pic]

   Сурет- 15.5. Формулалар орналастыру


      15.6-суретте  көрсетілгендей   етіп   есепберудің   статикалық    текс
аудандарын  толтырамыз.

                                    [pic]



      Сурет-15.6. Тауар бойынша топталған  есепберу макеті



      №4 формасында”Группа” баспасын басу  арқылы  алдын ала көру  терезесін
шақырамыз. №4 формадағы   TButton  компонентін  қосамыз,   батырмаға  уақиға
өңдеушісі  батырмасын басамыз  OnClick:

      Form7. QuickRep1.Preview;
      15.7-суретте  бір топтың подвалы көрсетілген – онда  материалдық
суммалық кірісі  туралы ақпарат шығарылады.


                                    [pic]


      Сурет -15.7. Жуықтап көру терезесіндегі тауар бойынша топтауы
көрсетілген есепберу










Фильтрді қолдану арқылы есепберуді қалыптастыру

      True орнатылған  Filtered қасиеті  фильтрацияны инициирлайды,   уақиға
өңдеушісінде OnFilterRecord шарты  жазылған   Мысалы,  егер  ДҚ  –да  фильтр
орнатылса.

       begin

      Accept := DataSet['KOLVO'] >= 500;

      End;

      Онда True-ге  Table1.Filtered  -ті  орнату  фильтрацияға алып  келеді;
Онда тек  500 ғана  мәні болатын 'KOLVO' өрісі  жазбаның   мәліметтер  жиыны
көрсетіледі.

      False да  Filtered   орнату фильтрацияны алып тастауға  әкеледі,  оның
шарттар OnFilterRecord уақиғаларында көрсетіледі

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

      Қоймаға түскен материалдарға    топтастыру  мәліметтерінсіз  қарапайым
есепберуді құру ;


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

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

        Дайын  пиктограмманы  қосымшамен   байланыстыру   керек.   Ол   үшін
Project|Options-ты  таңдап,    Application   қаптамасына   шертеміз.   Title
өрісінде Sklad  тексін егізіп  содан  кейін  Load  Icon   батырмасын  шертіп
пиктограмма файлына сілтейміз.

      Тапсырылған    тақырып    Windows    тапсырма    панелінде     қосымша
идентификациясы үшін қолданылады.

       Тестирлеу  және  қолданбаны  өңдеу.  Тестирлеуден  кейін  бізде  іске
қосылмаған шығару/атауы материал  меню  пункті  қолданылады.  Жаңа  материал
қосылу  үшін   форма  құрамыз   оған    TDBGrid   компонентін   орналастырып
DataSource1 мәнінде DataSource   қасиетін  орналастырамыз.  Tbutton  батырма
компанентін  формаға  қосып   ол  компанентке  ат  береміз  (Name   қасиеті)
CancelBtn батырма тақырыбын (Caption  қасиеті  )  ға  өзгертеміз.  Қолданушы
басатын  кнопканы   кодты  батырмамен  байланыстырамыз..   Формада   OnClick
уақиғасын өңдеу процедурасын  құру үшін тышқанмен "  Жабу"-  батырмасын  екі
рет шерту  керек. Редактор кодына келесі кодты жазамамыз.




      Сlose;

      Form1.Visible := True;

     №  1  формасына  көшіп   №  8  формадағы   шықыру  коды   менюпунктінде
Ввод/Название материала кодын жазамыз.:

      Form1.Visible := False;

      Form8.Visible := True;
    Осымен қолданба дайындығы аяқталды деп санаймыз.

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

      Жаңа есепберу формасын (№9  формасы) құрайық  .  Формаға  TQuickRep  (
QuickRep1  аты)  компанентін  орналастырайық  ,  бірақ  мәліметтер   жиынына
ұйымдастыруды    Query1    арқылы    құрамыз.    Бұл    DataSet    қасиетіне
DataModule5.Query1 орнатамыз.Басқа да компаненттер және есепберу  аудандарын
сатикалық текспен толтырамыз  15.8-суретте көрсетілгендей .

                                    [pic]

      Сурет-15.8. Қорытынды есепберу макеті

      Есепберудің соңында барлық түскен  материалдардың   қортынды  соммасын
словесдік  түрде  қосамыз.   Ол  үшін  TQRBand  атымен  QRBand4  компанентін
қосамыз, қасиеті ВапаТуре = rbSummary.

      TQRLabel компонентін (аты QRLabel7) QRBand4-ке орнатамыз.

      Unit4  –ке  көшіп  уақиғалар   өңдеушісіне   OnClick   батырма  "Итог"
мынандай код:

       procedure TForm4.Button5Click(Sender: TObject);

      var ss: String;

      begin

      Str(TempTotal,ss);

      Form9.QRLabel7.Caption := SumNumToFull(TempTotal);

      Form9.QuickRep1.Preview;

      end;
      Unit5-ке  TempTotal  айнымалысын анықтаймыз және  қоймаға түскен
материалдардың TempTotal қортынды соммасына  шығару кодын қосамыз..
      var
        DataModule5: TDataModule5;
        TempTotal: Integer;
             implementation
      AfterOpen қасиетіне  тышқанды екі рет шертіп , объект инспекторында
Unit5-ті ашып , келесі кодты қосамыз:
      procedure TDataModule5.Query1AfterOpen(DataSet: TDataSet);
      begin
      Query1.First;
          TempTotal := 0;               { use temp for efficiency }
          while not Query1.EOF do
          begin
            TempTotal := TempTotal + Query1Stoim.Value;
            Query1.Next;
          end;
      SumNumToFull(TempTotal);
      end;
      Project|Add to Project  менюін қолдана отырып, Writesum.pas жазбасына
проект модулінің аударма санын қосамыз, модуль листингін қолданбаға келтір.




   15.9-суретте  алдын ала көру терезесінде  қортынды есепберу көрсетілген.
                                    [pic]

      Сурет-15.9. Тауар бойынша есеп беру қорытынды мәнмен

   Есепберуді құруды жалғастырамыз. QRBand4 өрісіне TQRLabel (аты  QRLabel8)
компонентін орналастырамыз,  Caption  қасиетін "Итого:"-ға өзгертеміз:  Тағы
бір TQRExpr (аты QRExpr1) компонентін қосып   және   Expression   қасиетінің
мәнін  SUM(Table1.Stoim) формасын құрайтынын анықтаймыз.



2. Машықтану сабақтары

   Машықтану сабағы №1-4

   «Мәліметтер қоры кестесімен жұмыс» .

   Мәліметтер қорын құру

      Қолданылатын  мәліметтер  қоры  бірнеше  кестелерден  тұрады.   Келесі
қадамда белгілі  бір  ДББЖ  мен  мәліметтер  қорының  архитектурасын  таңдау
керек. Ол үшін көбіне локальды ДББЖ алынады (Мысалы:  Paradox7).  Мәліметтер
қорын жеке қапшықта (каталогта) сақтау  керек.  Қапшық  атауын  «Alias»  деп
аталатын бүркеншік атаумен беруге де болады. Алиас қапшық орналасқан  жолдың
жазылуын, ізделу уақытын қысқартады.

      Мысалы: Firma1 каталогын оның ішінде   Firma1  мәліметтер  қорын  құру
керек болсын.
1) Жоғарғы мәзірдің TOOLS – DATABASEDESKTOP командасын орындаймыз.
2)  Пайда болған терезеде TOOLS – ALIASMANAGER  –  NEW   командасын  орындап
   мәліметтер қорының атауын енгіземіз, мәліметтер қорының атауы мен  қапшық
   атауы бірдей бола береді, сондықтан Firma1 деп енгіземіз.
3) Осы терезенің драйвер типі жолында DRIVERTYPE – STANDART деп көрсетеміз.
4) Осы терезедегі BROWSE батырмасын басып құрылған қапшық  жолын  көрсетеміз
   (C:\ProgramFiles\Borland\Delphi\Project\Firma1)   сосын   ОК   батырмасын
   басамыз.
5) Алиасты BDE-ге жіберу керек пе? Сұрағына ИӘ деп жауап береміз.
      Жаңа кесте құру:
1) File – New – Table командасын орындаймыз.
2) Кесте форматын таңдау үшін TableType жолында  Paradox7  дегенді  көрсетіп
   OK батырмасын басамыз.
3) Келесі терезеде кестенің құрылымын анықтаймыз. Кестенің құрылымы  кестеге
   енетін өріс атауларын  (FieldName),  типтерін  (Type),  өріс  жазуларының
   ұзындықтарын (Size), кілттік өрісті (Key) көрсетуден тұрады.  Бұл  ортада
   кесте өрістерінің атаулары латын әріптерімен теріледі.  Ал  өріс  типтері
   келесідей мәндер қабылдайды:

   Alpha – мәтіндік өріс, ұзындығы 255 символға дейін .

   Number –  нақты тип, -10307 нен +10308 дейін.

   $(Money) – ақшалық тип, алдыңғы тип сияқты.

   Short –  қысқа бүтін тип, -32768 ден +32767 дейін

   LongInteger –  ұзақбүтін тип, -2147483648 ден +2147483647 дейін.

   #(BCD) –  жоғарғы дәлдіктегі нақты тип.

   Date –  дата типі.

   Time –  уақыт типі.

   @(Timestamp) – дата және уақыт типі.

   Memo – ұзақ мәтіндік тип, ұзындығы 255 символдан артық.

   Formatted Memo – форматталған мәтіндік тип (һаріп –  шрифт  түсі,  стилі,
бейнесі көрсетледі).

   Graphic –  Графикалық тип.

   OLE (Object Linking and Embedding) – осы технологияны ұстанатын ақпаратар
типі.

   Logical – логикалық тип.

   +(Autoinctement) – санаушы, автоматты түрде мәні 1-ге өсіп отырады.

   Binary – еркін ұзындықтағы екілік деректер типі.

      Кілттік өрістің атауы тізімде бірінші  орналасып  соңына  ID  әріптері
тіркеледі де Key бөлігінде жұлдызшамен белгіленеді.
4) Осы терезеде өрістердің қасиеттері көрсетіледі:
1. Required Field – міндетті түрдегі өріс.
2. Minimum Value – минималды мәні (сандық әрістер үшін).
3. Maximum Value – максималды мәні (сандық әрістер үшін).
4. Default Value – үндемеген немесе атап көрсетпеген жағдайда шығатын мән.
5. Picture – енгізу маскасы.
5) Кестені сақтау үшін Save As батырмасын басып шыққан терезеде файл  атауын
   (мысалы Client.db), алиас атауын (мысалы Firma1) көрсетеміз де сақтаймыз.




       DataAccess  компоненттер   панелінен   Ttable   компонентін   қалыпқа
орналастырамыз.   Осы   объектіні   белгілеп   ObjectInspector   терезесінде
компонент қасиетін көрсетеміз:
1) Мәліметтер қорының атауы  DatabaseName жолында жазылады (Мысалы MyBase).
2)  Ttable  компонентімен  байланысқа  түсетін  кестені  көрсету   TableName
   жолында жазылады (Мысалы: Client.db, Қосымшада келтірілген).
3) Осы кестеге программа арқылы қатынасу керек  болса  Active  жолында  True
   деп жазамыз.

      Осы  операциялардан  кейн  қалыпқа  орнатылған  компонент  көрсетілген
мәліметтер  қоры  кестесіндегі  деректермен  байланысады.  Бірақ  байланысты
бірден тура осылай орнатпай, аралық деңгейдегі деректер  көзі  деп  аталатын
TdataSource компонентін де қолдануға болады. Әрбір  деректер  көзі  деректер
модулінде орналастырылғаннан кейін  белгілі  бір  кестемен  DataSet  қасиеті
арқылы байланысады.




                                Тапсырмалар:
1.  Дельфи  қосымшасында  деректер  базасымен   жұмыс   неден   басталатынын
   көрсетіңіз.
2. Дельфи қосымшасын қолданып 1- таблицада келтірілген деректер  базаларының
   тақырыптары  бойынша  өрістерді  өздеріңіз   анықтап   деректер   базасын
   құру.Атрибуттар  атауларын  және  қасиеттерін  өздеріңіз  анықтаңыз.  Оны
   кемінде 10-15 жазумен толтырыңыз.
3. Құрылған деректер базасын арнаулы жаңа қапшыққа сақтаңыз.
4. Деректер базасының әр атрибутына сәйкес қалыпқа  компонент  орналастырып,
   олардың қасиетін анықтаңыз.




     Машықтану сабағы №5-8

    «Мәліметтерді өңдеуге қолданылатын компоненттер».



1) Деректер кестесі деп аталатын TDGrid компоненті

      Мәліметтер қоры кестесіндегі жазуларды өшіру, жөндеу, жаңа  жазу  қосу
   керек  болса  ол  үшін  программалық  код  жазудың  қажеті  жоқ,  қалыпқа
   DataControls  (деректерді  басқару  элементтері)  деп  аталатын  панельде
   орналасқан  TDGrid   компонентін  орналастырып,   DataSource   қасиетінде
   қажетті деректер көзін көрсету керек.
2) Навигатор компоненті TDBNavigator

      Бұл  компонент  кестенің  жазуларын  навигациялау  үшін   қолданылады.
   Навигация  жазу  бойымен  жылжу  дегенді  білдіреді.  Бұл  компонент   10
   батырмадан тұрады:
1. First –  бірінші жазуға жылжу
2. Prior – алдыңғы жазуға жылжу
3. Next – келесі жазуға жылжу
4. Last – соңғы жазуға жылжу
5. Insert – көрсеткіш орналасқан жазу орнына жаңа жазу қою
6. Delete – ағымдағы жазуды өшіру,  егер  ConfirmDelete  қасиетін  True  деп
   қойса өшіруді орындауды құптау хабарламасы шығады.
7. Edit – ағымдағы жазуды жөндеу
8. Post – кестеге енгізілген өзгертулерді сақтау
9. Cansel –енгізілген өзгертулерді сақтамау
10. Refresh – мәліметтер қорынан деректерді жаңадан оқып кестенің  жазуларын
   жаңарту.



3) Деректер тақырыбы (надпись) компоненті TDBText:

      Ұзақ мәтін сақталған өріс жазуларын көрсету, өзгерту үшін қолданылады.
   Tlabel  компонентіне  ұқсас.   DataSource    қасиетінде   деректер   көзі
   көрсетіледі, DataField қасиетінде қолданылатын өріс көрсетіледі.
4) Жөндеу өрісі компоненті TDBEdit:

      Ағымдағы жазуды өзгерту, көрсету үшін қолданылады. Алдыңғы компонентке
   ұқсас. Қосымша қасиеті ReadOnly  қасиетін  True  десе  кестенің  жазулары
   өзгертуді қабылдамайды.
5) Бейне компоненті TDBImage:

      Мәліметтер қорында сақталған бейнелерді, суреттерді  экранға  шығаруды
   орындайды. Егер AuttoDisplay қасиеті True десе өрістегі  бейне  автоматты
   түрде экранда көрінеді.  Егер  ол  қасиет  көрсетілмеген  болса  LoadMemo
   әдісін шақыру арқылы орындауға болады. Бейнені өріске қою, көбейту,  т.б.
   операциялар Picture қасиетінде көрсетіледі.
6) Деректер тізімін қолдану компоненті TDBComboBox:

      Бұл компонент ашылған тізімнен деректі  таңдау,  қолдануды  орындайды.
   Енгізу облысындағы  мәтін  жиыны  қажетті  жазуға  жылдам  жылжу,  немесе
   тізімде жоқ элементті енгізуге мүмкіндік  береді.  ComboBox  компонентіне
   ұқсас, тек қосымша қасиеті Style  жолында TcomboBoxStyle  арқылы  тізімге
   енетін элементтердің бейнелену стилі көрсетіледі.
7) Деректер жалаушасы (флажок)  компоненті TDBCheckBox:

      Бұл компонент көмегімен екі  жағдайдың  бірін  қабылдайтын  өрістердің
   мәндерін көрсетуге болады. Компонент логикалық  мән  қабылдайды.  Өрістің
   қандай жағдайда тұрғанын және оның мәнін өзгертуге көмектеседі.
8)  Деректерді  топтап  ауыстырып-қосу  (группа  переключателей)  компоненті
   TDBRadioGroup:

      Бұл компонент өрістің шектелген міндер жиынын көрнекі  түрде  шығаруды
   орындайды.  Әр  мәнге  ауыстырып  қосу  тобының  біреуін  сәйкестендіруге
   болады. Ауыстырып қосу атауларының  тізімі  Items  қасиетіне  енгізіледі,
   оның типі Tstrings  болады.  Тізімге  сәйкес  мәндер   Values  қасиетінде
   сақталады, типі  String болады.




Кестені шығару




            Кестені экранға екі түрде шығаруға болады: торкөз түрінде,  жеке
өрістер түрінде. Мысалмен көрсетсек:

   А) “Wares” кестесін торкөз түрінде шығару керек болсын.

   1.  DataAccess  панелінен  қалыпқа  Ttable  компонентін   орналастырамыз.
Қасиеттерін береміз:
1) Мәліметтер қорының атауы DataBaseName -  Firma1 деп.
2) Кесте атауын TableName – Wares.db деп.
3) Кесте активті болсын Active  - True деп.

   2. DataAccess панелінен қалыпқа  TdataSource  компонентін  орналастырамыз
да қасиетін көрсетеміз:
1) Керекті кестені көрсету DataSet  - Table1 деп.

   3. DataControl панелінен қалыпқа  TDBGrid компонентін орналастырамыз,  ол
кестеден деректерді торкөз түрінде шығарады. Қасиеттерін көрсетеміз.
1) Байланыстырылатын кестені көрсету DataSource -  DataSourse1 деп.

      1. Қалыпқа   Ttable,  TdataSource  компоненттерін  орналастырамыз.  А)
   мысалындағы сияқты компоненттер қасиеттерін көрсетеміз.

      2. DataControl  панелінен  қалыпқа   TDBGrid  компонентінің  орнына  9
   TDBEdit  компоненттерін  ,  бір  TDBText,  бір   TDBMemo   компоненттерін
   орналастырамыз да қасиеттерін көрсетеміз:
1) Деректер көзін көрсету үшін  DataSource - DataSource1 деп.
2) Шығарылатын өрістерді  көрсету  үшін   DataField  жолында  мысалы:  Name,
   Adress, ClientsName, DateOfBirth, Age т.б. деп
3) Адамның жасын есептеу үшін есептеу өрісін  TDBText формуласын береміз.
4) Адамдарға қосымша мағлұмат шығару үшін TDBMemo -  Description  деп.
   1. Қалыпқа Tlabel компоненттерін орналастырған соң  өрістердің  атауларын
      береміз.
   2. TDBRadioGroup компоненті үшін тақырып береміз. Мысалы “Клиент жынысы”.
       DataSource,  DataField  қасиеттерінен  басқа  Items  қасиеті  жолында
      мәндерді енгіземіз: әйел, еркек деп.
   3. TDBComboBox  компонентінің  тақырыбын  семьялық  ағдайы  деп  береміз.
      DataSource  DataField  қасиеттерінен  басқа  Items   қасиеті   жолында
      “семьясы бар, бойдақ, ажырасқан” мәндерін енгіземіз.
   4. TDBCheckBox компонентінің  Caption қасиетіне “Балалары”  деп  жазамыз.
      Алдыңғы   мысалдан   белгілі    DataSource,   DataField    қасиеттерін
      көрсетеміз.
   5.  DataControls  панелінен    TDBNavigator   компонентін   орналастырып,
      қасиеттерін береміз:
1)  DataSource - DataSource1 деп
2)  Hints  - көмекші хабарлама шығару массиві, орысшаға аударуға болады.
3) ShowHint – True деп
   1.  DataControls панелінен TDBImage  компонентін орналастырып қасиеттерін
      береміз:
1) Stretch  - True деп
2) Dialogs панелінен OpenPictureDialog1 компонентін қалыпқа әкелеміз.
3)  DBImage1 компонентін белгілеп,  OnDblClick  оқиғасына  программалық  код
   жазамыз:

      Begin


      If OpenPictureDialog1.Execute then begin

      Table2.Edit;

      DBImage1.Picture.LoadFromFile(OpenPictureDialog1.FileName);

      Table1.Post;

   End;




                      Кестелер арасында байланыс орнату



            Мысалмен қарастырамыз. «Тауарлар» (3-кесте),  «Тапсырыстар»  (1-
кесте) кестелері торкөз түрінде шығарылған болсын.
1.  Қалыпқа  Table3   компонентін   орналастырамыз.   Table3-ң   қасиеттерін
   көрсетеміз:
   1) Name  - “LinkedTable” деп атайық.
   2) DataBaseName  - Firma1 болады.
   3) TableName  - Order.db болады.
2. “Тапсырысдар” және  “Тауарлар” кестелері арасында байланыс орнатамыз:
   1) Active – False ltqv3p
   2) Жоғарғы  мәзірдің  Tools  -   DeskTop  командасымен  Оrder.db  тәуелді
      кестені ашамыз.
   3) Осы кесте үшін басшы өрісті индекстейміз.  Индекстеу  кезінде  жазулар
      алфавит бойынша орналасады: Table – Restructure командасын орындаймыз.
   4)  Пайда  болған  терезедегі  Table  Properties  қасиетіндегі   ашылатын
      тізімнен индекстелетін басшы өрісті көрсетеміз, ол   WaresNum  болсын.
      Оған SecondaryIndexes деп қоямыз.
   5) Define батырмасын басамыз, сонда мәліметтер қорында бар өрістер тізімі
      шығады,  бзге  қажеті  WaresNum  деп  көрсетіп    Indexed   Fields   –
      инддекстелетін өрістер тізіміне енгіземіз де OK батырмасын басамыз.
   6) Пайда болған терезеде индекстелген файл атауын WaresNumIndex деп жазып
       OK , сосын Save батырмаларын басамыз.
   7) Desktop кестесін,  Desktop терезесін жабамыз.
3.  Тәуелді  кестенің  қасиеттерін  көрсетеміз:  Ол  үшін  қалыптағы  Table3
   компонентін белгілейміз де:
   1) MasterSource - DataSource1  деп,  негізгі  кестемен  байланыстырылатын
      звеноны көрсетеді.
   2) IndexName – WaresNumIndex деп қолданылатын индексті көрсетеміз.
   3) MasterFields қасиетінде байланыстырылатын  өрістер  тізімі  көрсетілуі
      керек, ол үшін    “…”  батырмасын  басамыз.  Пайда  болған  терезедегі
      DetailFields  тізімінде   WaresNum   жолын,   MasterFields   тізімінде
      WaresID жолын көрсетіп ADD, сосын  OK батырмаларын басамыз.
   4) Барлық кестелердің Active қасиетін True деп қоямыз.
4. Қалыпқа  TDBGrid3, DataSource3 компоненттерін орналастырамыз.
   1) DataSource3 компонентінің  DataSet қасиетін LinkedSouce деп береміз.
   2) TDBGrid3 компонентінің  DataSource қасиетін  DataSourse3  деп береміз.
5.  Құрылған  қосымшаны  орындау  үшін  F9   пернесін   басамыз.   Нәтиженің
   орындалуын бақылаймыз.





   Тапсырмалар:

1. Вариантыңыз бойынша құрған  деректер  базасына  қатысты  қалып  пен  база
   арасында байланыс орнатыңыз.
2. Әр компоненттің қасиетін анықтаңыз.
3. Құрылған кестелерді экранға шығаруды ұйымдастырыңыз.
4. Деректерді торкөз түрінде шығаруды орындаңы.
5. Деректерді басқа да түрмен экранға шығаруды ұйымдастырыңыз.
6. Қосымшада келтірілген деректер базаларын құрыңыздар.
7. Өз беттеріңізбен қосымшада келтірілген  “Клиенттер”  және   “Тапсырыстар”
   кестелерін байланыстырыңыздар.










    Машықтану сабағы №9-12.

   «Есептелінетін өрістер» .



    Мәліметтер қорында өріс ретінде табылмаған,  бірақ  қолданылуы  өрістер
сияқты қосымша өрістер бар оларды есептелінетін өрістер дейді.  Атауы  айтып
тұрғандай  бұл  өрістер  мәліметтер  қорындағы  қандай  да  бір   деректерді
қолданып белгілі бір есептеуді орындап, нәтижесін көруге  мүмкіндік  береді.
Есептелінетін өрістер мәліметтер  қорынан  тыс  құрылады  және  оны  кестеде
қолдануға болады. Кестеге жаңа есептелінетін өріс қосу немесе  тіркеу  керек
болсын. Кестенің өрістер тізіміне атауы  CalcField  типі  String  (FieldType
жолында типті көрсетеміз), варианты  Calculated болатын жаңа  өріс  қосамыз.
Осыдан кейін кесте үшін  OnCalcFields оқиғасына программалық код жазылады.
    Мысал: «Client.db»  кестесінде  «Клиент  жасы»,  «Сумма»  есептелінетін
өрістер құру керек болсын.
    Деректерді кестеге код көмегімен енгізу.
1.  Жаңа  Form2  қалыбын   құрамыз   да   Unit1   және   Unit2   модульдерді
   байланыстырамыз:
   1) Негізгі Unit1модулінде қолданылатын  Unit 2 модулін  сипаттаймыз.  Ол
      үшін  Uses… сөзінен кейін  Unit2 деп толықтырып жазамыз.
   2)  Қолданылатын  модульде  негізгі  модульді   сипаттаймыз.   Ол   үшін
      implementation сөзінен кейін  {$R*.DFM}сөзіне  дейін  Uses Unit1  деп
      жазамыз.
2. Form2 калыпқа Win32  компоненттер  панелінен  MonthCalendar1-  календарь,
   Additional панелінен  екі  BitBth  компоненттерін  орналастырып,  олардың
   Kind қасиеттерінде сәйкесінше  OK және  Cancel деп  көрсетеміз.  Терезені
   безендіру үшін  Shape компонентін қолдануға болады.  Оның  сырт   бейнесі
   немесе пішіні  Shape қасиетінде көрсетіледі.
3.  Form1  қалыбындағы  кестеде  есептелінетін   өріс   ұяшығында    Button1
   компонентін орналастырып, тақырыбын “…” деп береміз. OnClick оқиғасы үшін
   мына программалық кодты жазамыз:
    Form2.Left:=Form1.Left+Button1/Left;
    Form2.Top:=Form1.Top+Button1.Top;
    Form2.ShowModal; // терезе модальды болуы үшін,
    4.  Form2 қалыбында  OK батырмасы үшін программалық код жазамыз:
    Form1.Table1.Edit;
    Form1.Table1.Fields[9].AsDateTime:=MonthCalendar.Date;
      Квадрат жақшадағы индекс келесідей анықталады: Table1  компонентін  2
рет басып, шыққан  терезеде  контекстік  мәзір  шақырып  одан   AddAllFields
командасын орындау керек.  Объектілер  инспекторы  терезесінде   DateOfBirth
қасиеті үшін  Index жолында  9 деп көрсетеміз.
4. Есептелетін өрістер үшін программалық код жазамыз:
   1) Table1 компонентін белгілеп  AutoCalcFields қасиетінде  True дейміз.
   2) Table1  компонентін  2  рет  басып  контекстік  мәзірден  AddAllFields
      командасын орындаймыз да есептелінетін өрістерді белгілейміз,  Мысалы:
      Age   өрісі,   қасиеті   FieldKind    -   FkCalculatedболады.    Сосын
      Form1.Table1 терезесін жабамыз.
   3) Table1 компонентін белгілеп  OnClickField  оқиғасы  үшін  программалық
      код жазамыз:
    Year, YearNew:integer;
    Begin
      Year:=StrToInt(FormatedDateTime(‘YYYY’, TableDateOfBirth.Value));
      YearNew:=StrToInt(FormatedDateTime(‘YYYY’, Date));
      Table1Age.Value:=YearNew-Year;
    End;
    Мұндағы Value  –  ағымдағы  мән  дегенді  білдіреді.   FormatedDateTime
функциясы датаны шығару әдісін өзгертуге мүмкіндік береді.  Ағымдағы  датаны
Date функциясы шығарады.


                                Тапсырмалар:
1. Құрылған деректер базасын ашып, кестелерін экранға шығарыңыз.
2. Деректер базасына есептелетін өрістерді қолданыңыз.
 1. Деректер базасындағы жазуларды реттеуді көрсетіңіз.
 2. Деректер базасы бойынша ќарапайым сұраныс ќұру.
      - Сандық өрістегі жазулар санын анықтау
      - Белгілі бір өрістің қортындысын анықтау
      - Берілген шартты қанағаттандыратын жазу өрістерін шығару




   Машықтану сабағы  №13-16.

    “Фильтр – сүзу”.
              Деректер    кестесі    жазуларынан    белгілі    бір    шартты
қанағаттандыратын жазуларды сүзіп алу сұраным  немесе  фильтр  деп  аталады.
Шарт  Filter  қасиетінде  өрнек  түрінде  жазылады.  Сұранымдар  көбіне  SQL
арнаулы  тілінде  жазылады.  Бұл  тіл  барлық  ДББЖ-де   құпталған.   Filter
қасиетінде жазылған мәнді  Delphi  ортасы  автоматты  түрде  SQL  сұранымына
айналдырады да қай ДББЖ-н қолданып отырсаңыз, сол типке  сәйкес  орындалады.
Программаны орындауға жібергенде  DBGrid тізімінде шартты  қанағаттандыратын
жазулар ғана шығады.
             Мысалы;   “Wares.db”   және    “Order.db“   кестелерінде   сүзу
операциясын жүргізу керек болсын.
1. Қалыпқа  тақырыптары  “тауар  атауы  бойынша”,  “тауар  бағасы  бойынша”,
   “Тапсырысдар саны бойынша” деп аталатын үш  TradioButton  компоненттерін,
   “Мән” деп аталатын  Tlabel компонентін,  деректерді  енгізу  үшін   Tedit
   компонентін, “Сүзу” және “Сүзуді алып тастау” деп аталатын  екі   Tbutton
   компоненттерін орналастырамыз.
2.  Код  көмегімен  Filter  қасиетіне  шарт  береміз.   Filter   қасиеті   –
   деректерді сүзіп шығару шарты.  Filtered – сүзуді орындау.
3. Tbutton OnClick
      Begin
            Table1.Active:=False;
      Table1.Filtered:=False;
            Table2.Active:=False;

      Table2.Filtered:=False;

      If RadioButton1.Checked=true then begin

      Table1.Filter:=’Name’+’ ‘ +Edit1.Text+’ ‘;

      End;

      If RadioButton2.Checked=true then begin

      Table1.Filter:=’Price’+’ ‘ +Edit1.Text+’ ‘;

      End;

      If RadioButton3.Checked=true then begin

      Table1.Filter:=’Amount=’+’ ‘ +Edit1.Text+’ ‘;

      End;
            Table1.Active:=True;
      Table1.Filtered:= True;
            Table2.Active:= True;

      Table2.Filtered:= True;

   End;

   Тапсырма:

1.  Өз  құрған  деректер  базаңыз  бойынша   жазуларға,   өрсітерге   фильтр
   операциясын қолдануды көрсетіңіз.




   Машықтану сабағы №17-20.

   “Сұраныс құру” .
1. Сұраныс құру компоненті Tquery:

   DataAccess панелінде орналасқан  Tquery  компоненті  бірнеше  кестелерден
қажетті  жазуларды  шығарып  алуға  көмектеседі.  Ал   нәтижесінде   алынған
деректермен  жұмыс   Ttable   компонентімен   орындалады.   Сұраныс   құруда
Structured Query  Language  (SQL)  тілінің  маңызы  зор.   SQL  операторлары
программалық  кодтан  оырндалады.  Tquery   компонентінің   SQL   қасиетінде
операторды  жазып  көрсетуге  болады.,  оны  орындау  үшін   ExecSQL   әдісі
қолданылады.

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


   Оператордың жазылуы келесідей: SELECT өрістер тізімі FROM кесте атауы;

   Мысалы: SELECT Name, Salary FROM Client.db .

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

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

    Select *  From Client.db

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

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

   Мысалы: SELECT * FROM Client.db WHERE Cash>=120000 and Cash<=1000000




                       Структуралы сұраныстар тілі SQL

   Мысалмен қарастырамыз: Client.db кестесінде сұраныс құру керек болсын.
1. DataAccess панелінен  Form1 қалыбына  Tquery компонентін  орналастырамыз.
   Ол Ttable компонентінің онына қолданылады.
2. Қалыпқа  TDBGrid, TdataSource компоненттерін орналастырамыз. Қасиеттері:
   1) TdataSource:Dataset -  Query1 мәнін береміз.
   2) Query1 компоненті үшін DataBaseName - Firma1 болсын.
3. Объектілер  инспекторы  терезесінде   SQL  қасиетіндегі   “…”  батырмасын
   басамыз. Бұл жолда  SQL тіліндегі команданы жазамыз. Мысалы:

   А)  SELECT ClientsName.Salary  FROM  Client.db  –  фамилия  мен  жалақысы
туралы деректер алынсын деп  OK батырмасын басамыз.
4. Query1 компонентінің Active қасиетін  True дейміз.




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

            Мысалмен қарастырамыз:
1. Жаңа қосымша құрамыз.
2. Қалыпта   TDBGrid,  Tquery,  TdataSource  компоненттерін  орналастырамыз.
   Олардың қасиеттерін көрсетеміз.  Client.db кестесін қолданайық.
3. Барлық сатып  алушы  клиенттер  шығару  керек  болсын.  Қалыпқа   Tbutton
   компонентін орналастырып  “Filter”  деп  атаймыз.   Tedit  өрісіне  сатып
   алушы фамилиясын енгізгенде осы клиент үшін барлық деректі торкөз түрінде
   шығаруы керек болсын.   Tquery компонентінің  Append қасиетін қолданамыз.
4. “ Filter” компонентін басу оқиғасына программалық код жазамыз:

      Begin


      If Edit1.Tet<>’ ‘ then Begin

      Query1.Active:=False;

      Query1.SQL.Clear;

   Query1.SQL.Append(‘select client.db where  Name.Like’+’  ’+  Edit1.Text+’
’);

      Query1.Active:=True;

      End;

      Else Begin

      Query1.Active:=False;

      Query1.SQL.Clear;

      Query1.SQL.Append(‘select * from client.db);

      Query1.Active:=True; End; End;
5. Қосымшаны орындауға жіберіп фамилияны енгізген  соң  “Filter”  батырмасын
   басамыз.

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

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

   Тапсырмалар:

      1. Деректер базасы  бір  бірімен  байланысатын  екі  немесе  одан  көп
кестелерден тұрсын. Бірнеше  кестелер  арасында  байланыс  орнату.  Схемасын
көрсету.
2. Деректер базасы бойынша сұраныстардың түрлерін құрып көрсету:
      - қарапайым сұраныс құру.
       - сұранысты компоненттер көмегімен құру.
      - сұраныс құрудың программалық кодын қолдану.
      - барлық деректерді қолданып толық нәтижелі сұраныс құру.







   Машықтану сабағы №21-26.

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

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


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


      Мысал қарастырайық. Client.db  кестесінде  іздеу  операциясын  қолдану
керек болсын.

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

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


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

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

   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;


                                  Тапсырма:
   1. Деректер базасында белгілі бір  шарттарды  қанағаттандыратын  өрістер
      жазуларын іздеу операцияларын көрсету:

      - біртіндеп іздеу

      - бинарлы іздеу программалық кодтарын құру.







   Машықтану сабағы №27-30 .

   “Есеп құру”
        Есеп –  мәліметтер  қорындағы  жазулардан  құжат  түрінде  аяқталған
   нәтиже береді. Ол нәтижені  бірден  принтерге  жіберуге  болады.  Qreport
   (Есеп)  панелінен   TquickRep  3.0.5.  компонентін  құру  осы  проблеманы
   шешеді.   Qreport  панелінің  басқа  да  компоненттері  есептің   қажетті
   элементтерін көрсетуге көмектеседі. Әр  компоненттің  Band  деп  аталатын
   жолағы болады. Есепте келесі негізгі компоненттер қолданылады:
        Есеп жолағы компоненті  TQRBand:  Есепте  белгілі  бір  элементтерді
   орналастыру, топтау бейнелеуін көрсетеді.  TquickRep  бейнелеуді  көрнекі
   түрде орындайды.
        Есеп тақырыбы компоненті TQRLabel: Tlabel компонентіне ұқсас. Есепте
   қажетінше мәтін жазуға көмектеседі.
        Шығару өрісі компоненті  TQRDBText: Деректер жиынынан өріс  мәндерін
   шығару үшін қолданылады. Деректер жиыны DataSet  қасиетінде  көрсетіледі.
   Ал қажетті белгілі бір өріс  DataField қасиетімен көрсетіледі.  Компонент
   орналасқан  жолақ  мәні   BandType  -   rbDetail  болуы  керек.  BandType
   қасиетінің одан басқа да мәндері бар:

      RbTitle – есеп тақырыбы

      RbPageHeader – жоғарғы колонтитул

      RbDetail – жазу тақырыбы

      RbPageFooter – төменгі колонтитул

      RbSummary – есеп қортындысы

      RbColumnHeader – баған тақырыбы

      RbGroupFooter – бөлім тақырыбы

      RbGroupHeader –бөлім қортындысы

      Алдын  ала  қарау  компоненті  TQRPreview:  Құрылған  есепті   баспаға
шығармай тұрып алдын ала қарауға көмектеседі. Ол .шін   OnPreview  оқиғасына
Preview  әдісін  шақырады.  Есеп  құруға   мысал   келтірейік:   “Тауарлар”,
“Клиенттер”,   “Тапсырысдар”  кестелерін  қолданамыз.  Ол  үшін  жаңа  қалып
құрамыз. Себебі әр есеп әр терезеде құрылады.
1. File – New Form  командасын  орындаймыз.  Unit1  және  Unit2  модульдерін
   байланыстырамыз.
2. Qreport панелінен Form2 қалыбына   QuickRep  –  жылдам  есеп  компонентін
   орналастырамыз. QuickRep1 қасиетін көрсетеміз.
3.  DataSet - Table1 деп қолданылатын кестені көрсетеміз.
4.  Bands қасиетінде  “+” батырмасын басамыз:

   А)   HasTitle  -  есеп  тақырыбына  берілетін  облыс.  Тақырыпты  Qreport
панеліндегі QRLabel1 компонентінің көмегімен жазамыз.

   Б)  HasColumnHeader  –  есепте  көрінетін  өрістер  атауларына  берілетін
облыс.

   В)  HasDetail  –  кестелерден   алынатын   деректерге   бөлінетін   облыс
(детализация облысы деп аталады). Оны көрнекілеу үшін  QRShape1  компонентін
қолданады.
5. Кестеден деректерді шақыру QRDBText компонентінің  көмегімен  орындалады.
   Оның екі қасиетін көрсетеміз:

   А)  DataSet -  Table1 деп.

   Б) DataField - Name, Price, т.б. деп өріс атауларын көрсетеміз.
6.  Құрыған  есепті  көру  үшін  контекстік  мәзірден   Preview   командасын
   орындаймыз. Пайда болған терезеде  PrintPreview батырмасын басамыз
7.  Есеп облыстарының келесі қасиеттері бар:
1) HasPageFooter – төменгі колонтитул
2)  HasPageHeader  –  жоғарғы   колонтитул,   қосымша   QRLabel1,   QRLabel2
   компоненттерін қолданып, “Фирма1” дейміз
8. Есептің жалпы қасиеттері:
1) Options  - “+”
2) FirstPageHeader – бірінші бетте жоғарғы колонтитул бар ма, көрсету  (True
   немесе False).
3) LastPageFooter -  соңғы бетте төменгі колонтитул бар  ма,  көрсету  (True
   немесе False)
4) HasSummary –  қортынды  жасау  облысы  True  дейміз.  QRLabel1,  QrLabel2
   компоненттерін орналастырып «Сатып алушы клиенттер саны» т.б. деп жазамыз
9. Form1  қалыбында  “Қарау”  батырмасын  орналастырып,  оны  басқанда  есеп
   құратын программалық кодта  Preview әдісін жазамыз:

      Begin


      If Radiogroup1.ItemIndex=0 then Begin

      Form2.QRLabel14.Caption:=DatetoSte(Date);

      Form2.QRLabel16.Caption:=TimetoSte(Time);

      Form2.QRLabel20.Caption:=IntToSte(Table1.RecordCount);

      Form2.QuickRep1.Preview;

   End;

                                Тапсырмалар:



   1. Деректер базасы бойынша белгілі бір есеп құру.
   2.  Form1 қалыбында “принтерге шығару”  деген атаумен Button2  батырмасын
      орналастырып, оны басқанда  есепті  принтерге  шығаратын  программалық
      кодты өз беттеріңізбен жазыңыздар. Print әдісі қолданылады.

Жалпы есеп құру

            Мысалмен қарастырайық: Байланыстырылған «Тауарлар», «Клиенттер»,
«Тапсырысдар» кестелерін қолданамыз.
1. Жаңа қалып құрамыз.
2. Qreport панелінен қалыпқа  QRSubDetail1  компонетін  орналастырамыз.  Бұл
   қосымша деректерді детализациялау үшін  бөлінетін  облысты  көрсету  үшін
   қажет. Қасиеттерін қөрсетеміз:
   1) DataSet – LinkedTable дейміз
   2)  QRSubDetail1  облысында  DBText12,  13,  …,  Label12,  13,   …   т.б.
      компоненттерді орналастырамыз. Атауларын береміз.
   3)  Барлық  DBText12,  13,  …   компоненттерінің    DataSet,    DataField
      қасиеттерін анықтаймыз.
3.  Есепті  көру  ұшін  контекстік  мәзірді   шығарып   Preview   командасын
   орындаймыз да, шыққан терезеде  PrintPreview командасын орындаймыз.





   Тапсырмалар:

Деректер базасының шектеулі атрибуттарын қолданып есеп құру.
Деректер базасын қолданып есепті құрудың әдістерін көрсету.
Есеп жолағы компонентін қолданып есеп құру.
Есеп тақырыбы компонентін қолданып есеп құру.
Алдын ала қарау компонентін қолданып есеп құру.







3.  СТУДЕНТТЕРДІҢ ӨЗДІК ЖҰМЫСЫ


3.1. сӨж  Тапсырмалары
   1. Unit1.pas редактор коды терезесі
   2. Компаненттер қосымшасы
   3. Standard қосымшасы
   4. Additional қосымшасы
   5. Win32  қосымшасы
   6. Dialogs  қосымшасы
   7. Диалогтық функциялар мен  процедуралар
   8. Файлдық жүйедегі жұмыс үшін
   9. Нақты сандармен жұмыс үшін
  10. Айналдыру функциялары мен процедуралары
  11. Реттік мәндермен жұмыс үшін
  12. Статистикалық функциялар мен  процедуралар
  13. Char жолымен жұмыс істеу функциялары
  14. Тригонометриялық функциялар  мен  процедуралар




   СӨЖ-ні жүргізу түрі: Тақырыптар бойынша сұрақтарға  ауызша  және  жазбаша
жауаптар берілуі керек.































3.2. СОӨЖ  тапсырмалары:
      Дельфи  қосымшасын  қолданып   1-   таблицада   келтірілген   деректер
базаларының  тақырыптары  бойынша  өрістерді  өздеріңіз   анықтап   деректер
базасын құру.Атрибуттар атауларын және қасиеттерін өздеріңіз анықтаңыз.  Оны
кемінде 10-15 жазумен толтырыңыз.

   Деректер базасының әр атрибутына сәйкес қалыпқа  компонент  орналастырып,
олардың қасиетін анықтаңыз. ТАБЛИЦА №1

|Вариант   |Деректер базаларының тақырыптары                                    |
|№         |                                                                    |
|1         |Мектепте жоғарғы сыныптағы оқушылар және олардың оқу үлгерімі туралы|
|2         |Мектептегі қызметкерлер структурасы туралы                          |
|3         |Мектепте төменгі сыныптағы оқушылар және олардың  оқу үлгерімі      |
|          |туралы                                                              |
|4         |«Трансаэро» компаниясының қызметі туралы                            |
|5         |«Темір жол» кестесі туралы                                          |
|6         |Кітапханадағы әдебиеттер құрылымы туралы                            |
|7         |Кітапханадағы қызметкерлер туралы                                   |
|8         |Студенттердің ГТО нормасы туралы                                    |
|9         |Қазақстанның футбол командалары және олардың көрсеткіштері туралы   |
|10        |Қазақстанның хоккей командасының ойындары мен ойыншылары туралы     |
|11        |Бала бақша қызметі туралы                                           |
|12        |«Орифлейм» косметикамен айналысу фирмасының қызметі туралы          |
|13        |Университеттің профессорлық-оқытушылық құрамы туралы                |
|14        |Университеттің администраторлық қызметі туралы                      |
|15        |  Әуе жолы кестесі туралы                                           |
|16        |Жоғарғы оқу орындарын тәмәмдаушыларды тарату жұмыстары бойынша      |
|17        |Студенттердің стипендия алу структурасы бойынша                     |
|18        |Сынақ - Емтихан тапсыру ведомосы туралы                             |
|19        |Спорттың бір түрі бойынша жарыс қортындысы туралы                   |
|20        |Университеттің күндізгі оқу бөлімі бойынша студенттік құрамы туралы |
|21        |Сиднейде өткен олимпиада қортындысы туралы                          |
|22        |Кітап сатумен айналысатын фирмалар туралы ақпарат туралы            |
|23        |Бір мекеменің кадрлар бөлімінің жұмыс структурасы туралы            |


   СОӨЖ-ні  жүргізу  түрі:   Осы   тапсырмаларды   зертханалық   сабақтардың
тақырыптары бойынша орындау керек.
-----------------------

                               Деректер базасы




                               База көшірмесі




                          ДБ-мен жұмыс үшін қосымша




                                  ДБ ядросы




                               Желілік сервер




                            Қолданушы компьютері




                               Деректер базасы




                         Деректер базасының сервері




                     ДБ (Клиент)-мен жұмыс үшін қосымша




                                  ДБ ядросы




                            Қашықтатылған сервер




                            Қолданушы компьютері







   1-деңгей







   2-деңгей







   3-деңгей










А




                                     В1




                                     В2




                                     В3




                                     В4




                                     В5




                                     С1




                                     С2




                                     С3




                                     С4




                                     С5




                                     С6




                                     С7




                                     С8




                                    Роза




                                    Асем




                                    Қалам




                                   #11296




                                  Клиенттер




                                Қызметкерлер




                                  Товарлар




                                 Тапсырыстар






Пәндер