Зертханалық жұмыс

Зертханалық жұмыс №7-8

Тақырыбы: Delphi ортасында мәліметтерді бейнелеуді басқару

Мақсаты: ADOTable компоненттерінің қасиеттері және әдістерімен танысу және қолдану. Мәліметтерге қатынас жасау компоненттерін жеке модульге орналастыру және осы модуль ресурстарын қолдану. Өріс атаулары мен типтерін бейнелеуді басқару

 

Теориялық түсініктеме

 

TADOTable компонентінің қасиеті

TADOTable компонентінің көптеген пайдалы қасиеттері бар. Олардың көпшілігі қарапайым қолданылады. Осы қасиеттерінің негізгілерін қарастырайық.

§  MasterSource – бұл қасиетте ағымдағыға қатысты негізгі кесте көрсетіледі. Бұл қасиетті байланысқан кестелермен жұмыс істегенде толық қарастырамыз.

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

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

§  TableName – мәліметтерін өңдейтін кестенің атауы.

§  Cachesize – кэш-жадының көлемі. Егер бұл жерге 50 санын орнатсақ, онда кестеге алғаш қосылғанда бірінші 50 жолды таңдап, оларды локальды жадыға орналастырады, бұл оларға қатынасты жеделдетеді. Қалған жолдар серверден қажетінше жүктеледі.

§  CanModify – бұл қасиет  Readonly қасиетіне ұқсас және кесте мәліметтерін өңдеу мүмкіндігін көрсетеді.

§  CommandTimeout – команданың орындалуын тосу уақыты. Егер компонент мәліметтер қорына команда бағыттаса, ол күту таймерін іске қосады, егер команда орындалмаған жағдайда, күту таймері аяқталған соң қателік туралы хабарлама шығарылады.

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

§  Connectionstring – мәліметтер қорына қосылу жолы.

§  CursorLocation – кестедегі мәліметтерді оқып, ағымдағы позицияны көрсететін курсордың орналасуы. Курсор серверде немесе клиенттің машинасында тұруы мүмкін.

§  CursorType – курсордың типі. Бұл жерде келесі нұсқалардың біреуі мүмкін болады:

o    ctUnspecified – курсордың орны көрсетілмеген.

o    ctOpenForwardOnly – курсор тек алға жылжи алады.

o    ctKeyset – бұл кестеге қосылған бір қолданушының өзгерісі басқаларына көрінбейді.

o    ctDynamic – динамикалық курсор, мұнда бір қолданушының өзгерісін қалғандары көре алады.

o    сtstatic – статикалық курсор, мұнда бір қолданушының өзгерісін қалғандары көре алмайды.

§  Filter – фильтр жолы.

§  Filtered – кесте фильтрленетін кесте болып табылама. Егер false  орнатсақ, онда фильтр жолы есепке алынбайды.

§  IndexFieldNames – индекстелген баған атауы. Индекстер мәліметтерді сұрыптау үшін және кестелер арасында байланыс үшін қолданылады.

§  RecNo – ағымдағы ерекшеленген жолдың номері.

§  RecordCount – кестедегі жолдар саны.

§  Sort – сұрыптау типі көрсетілетін жол. Мысалы, Телефон өрісі бойынша сұрыптау үшін келесі жолды жазу керек: ADOQuery1.Sort:=’Телефон ASC’. ASC операторы өсу ретімен сұрыптау керектігін көрсетеді. DESC операторы кему ретімен сұрыптауды көрсетеді.

§  Active – егер бұл қасиет True болса, онда кесте ашық тұр.

§  AggFields – мұнда барлық агрегаттық өрістер сақталынып тұр.

§  AutoCalcFields – егер мұнда болса, онда өрістерді автоматты түрде санау керек.

§  Bof – бұл қасиетке әсер етуге болмайды, егер ол True болса, онда онда біз файлдың басында тұрмыз.

§  FieldCount – мұнда кестедегі өрістердің саны сақталады.

§  Fields – бұл өріс арқылы басқа өрістердің мәндеріне қатынас жасауға болады. Айталық сізге 4-ші өрісте қандай мән тұрғаны қажет, ол үшін келесідей жазу керек: Table.Fields.Fields[4].AsString. AsString әдісі мәнді жол түрінде алу қажеттігін көрсетеді.

§  FieldValues – бұл қасиеттің көмегімен көрсетілген өрістің кез-келген мәніне оңай қатынас жасауға болады. Өріс атауын тік жақшада көрсету керек. Мысалы, Table1.FieldValues[‘Телефон’]:=’3346598’;.

§  FilterOption – фильтр баптауы. Мұнда келесі параметрлерді көрсетуге болады:

o   FoCaseInsensitive – фильтр регистрге сезімтал емес.

o   foNoPartialCompare – егер осы параметр тұрса, онда салыстыру филтрде көрсетілген мәннің тура көшірмесімен жүргізіледі.

§  Modified – егер бұл қасиет True болса, онда кестеге өзгерістер енгізілген.

 

TADOTable компонентінің әдістері

Енді осы компоненттің әдістерін қарастырайық.

§  BookmarkValid – бұл әдіс қалташалардың дұрыстығын тексереді. Жалғыз параметр ретінде TBookmark типті қалташаны көрсету керек, егер ол «шынайы» болса, онда нәтиже True болады.

§  CancelUpdates – кэш жадыда сақталған жаңалауды қайтару.

§  CompareBookmarks - екі қалташаны салыстыру. Бұл әдісте Tbookmark типті екі параметр бар. Бұл екі қалташа салыстырылады. Егер қалташалар тең болса, онда нәтиже 0-ге тең, егер біріншісі екіншісінен кіші болса, нәтиже -1 болады, егер біріншісі екіншісінен үлкен болса, нәтиже 1 болады.

§  DeleteRecords – жазбаларды жою. Әдісте қай жазбаларды жою қажеттігін анықтайтын бір параметр бар. Сіз келесі мәндерін көрсетуіңізге болады:

o   ArCurrent – ағымдағы жазбаны ғана жою;

o   arFiltered – орнатылған фильтрді қанағаттандыратын жазбаларды жою;

o   arAll – барлық жазбаны жою;

o   arAllChapters – барлық ADO тарауларындағы жазбаларды жою.

§  Append – кесте соңына жаңа жазба қосу.

§  Cancel – егер енгізілген өзгерістер әлі Post әдісінің көмегімен сақталмаған болса, ағымдағы жолдағы өзгертуді қайтару.

§  Close – кестені жабу.

§  Delete – ағымдағы жолды жою.

§  Edit - өңдеу режіміне өту. Осыдан кейін өріс мәндерін өзгертуге болады.

§  FieldByName - өрісті атауы бойынша табу. Жалғыз параметр ретінде жол түрінде өріс атауын көрсету керек, және де нәтижесінде ТField объектісі түріндегі өріске сілтеме аламыз.

§  First – кестедегі бірінші жолға өту.

§  Insert – кестеге жаңа жол қою.

§  IsEmpty – егер әдіс True  мәнін берсе, онда кестеде жазбалар жоқ.

§  Last – кестедегі соңғы жазбаға өту.

§  Next – келесі жазбаға өту.

§  Post – барлық өзгерістерді қабылдау.

§  Prior – Кестедегі алдыңғы жазбаға жылжу.

§  ReFresh – мәліметтер туралы ақпаратты жаңалау.

§  UpdateRecord – Ағымдағы жазбаны жаңалау.

 

Жұмысты орындауға нұсқау

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

Қажетсіз өрістерді тығып, бізге қажеттілерін ғана көрсеткіміз келсе, мәліметтерді бейнелеуді басқаруды үйренуіміз қажет. Бұл сұрақты үйренбес бұрын біздің қорға тағы да екі өріс қосайық:  Дата және Ұялы телефон. Ол үшін MS Access бағдарламасында әзірленген мәліметтер қорынан Анықтама кестесіне, Конструктор режимін пайдаланып, 3 кестедегі құрылымға қарай отырып, аталған екі өрісті қосайық:

3 кесте

Өріс атуы

Типі

Сипаттама

Key1

Счетчик

Бұл кілттік өріс. Өріс өлшемі – Длинное целое. Индекстелген өріс – Да (қайталану болмауы керек).

Тегі

 

Текстовый

Өріс өлшемі – 20 . Индекстелген өріс – Да (қайталану бола береді).

Аты

Текстовый

Өріс өлшемі – 10 . Индекстелген өріс – Да (қайталану бола береді).

Тобы

Текстовый

Өріс өлшемі – 5 . Индекстелген өріс – Да (қайталану бола береді).

Мекен-жайы

Текстовый

Өріс өлшемі – 50 . Индекстелген өріс – Да (қайталану бола береді).

Ұлты

Числовой

Өріс өлшемі – Длинное целое. Индекстелген өріс – Нет.

Дата

Дата/время

Индекстелген өріс – Нет

Ұялы телефон

Логический

Индекстелген өріс – Нет

Кестені жабыңыз.

Енді Delphi ортасына өтіп, дайындалған мысалда өзгертілген кестені бейнелеп көрейік.

Алдымен мәліметтер қорына қатынас жасау компоненттерінің орнын арнайы жеке терезеге ауыстырайық. ADOConnection1, DataSource1 және BookTable компоненттерін ерекшелеңіз. Осы ерекшеленген компоненттерді контекстік менюіндегі Вырезать (Cut) командасының көмегімен қиып ал. Жоғарғы мәзірден File|New|Data Module командасын таңда. Нәтижесінде арнайы Data Module терезесі жасалынады. Бұл терезе мәліметтерге қатынас жасау компоненттерін сақтау үшін қажет. Контекстік менюден Вставить (Paste) командасын пайдаланып, қиып алынған компоненттерді осы терезеге орналастырайық. Осы компоненттерді еркін орналастыруға болады (мысалы, 5-суретте көрсетілгендей). Енді қолайлы болу үшін мәліметтер қорына қатынас жасауды ұйымдастыруға арналған компоненттерді осы терезеге орналастырамыз. Жаңа модульді DataModuleUnit атауымен сақтаңыз. Жоба менеджерін ашыңыз (Project немесе View менюінен Project Manager), осы терезені қолайлы етіп орналасыруға болады. Енді басты формадан мәліметтер модуліне немесе керісінше өту осы терезенің көмегімен оңай жүзеге асады.

 

image

 

image

Егер жоба менеджерінен қандайда бір форманы ашып көріп, жаппаған болчаңыз, оны код редакторының терезесінің қалташаларынан табуға болады (7-суретте көрсетілгендей).

image

Форма мен оның кодының арасында ауысу үшін, F12 пернесін басу қолайлы. Енді басты формаға өтіңіз, мұнда DBGrid1 торында мәліметтер жоқ екенін байқаймыз. Неліктен? Себебі, ол мәліметтерге қатынас жасау компоненттерімен байланысты жоғалтты. Торды ерекшелеп, DataSource қасиетін шертіңіз, онда мән жоқ. Себебі, мұндағы қажетті компоненттерді жеке формаға орналастырдық. Оны басты формамен байланыстыру үшін DataModuleUnit модулін Uses бөлімінде көрсету керек. Мұны тікелей қолмен жазуға да болады немесе File менюінен  Use Unit пунктын таңдаймыз. Пайда болған терезеден жаңа DataModuleUnit  модулін таңдап Ok батырмасын басу керек.

Код редакторында төмендегі жазба пайда болу керек.

Implementation

Uses DataModuleUnit;

{$R *.dfm}

Енді DBGrid1торын ерекшелеп DataSource қасиетінде мәліметтері торда көрсетілуі тиіс DataSource1 компонентін көрсету керек (Datamodule2.DataSource1). Енді DataModule2 модуліне өтіп мәліметтерді бейнелеуді баптайық. Тышқанды BookTable компоненттіне екі рет шертсеңіз, алдыңызда мәліметтер қоры өрістерін редактрлеу терезесі пайда болады (8-сурет).

Әзір ол бос. Оған мәліметтер қорының барлық өрістерін қосу керек. Ол үшін оған тышқанның оң жақ батырмасын басып, ашылған менюден Добавить все поля (Add All Field) пунктін таңдау керек. Терезеде автоматты түрде өріс атаулары пайда болады. Тышқанмен қозғалту арқылы өрістердің орындарын ауыстыруға болады. Бұл кезде олардың мәліметтер қорындағы орындары өзгермейді. Дегенмен мәліметтерді торда бейнелеу кезінде, олар сіз орналастырған ретпен бейнеленеді. Осылайша сіз мәліметтер қорының өзіне қатынамай-ақ мәліметтерді бейнелеу ретін кез-келген уақытта өзгерте аласыз.

image

Және де жеке өрістерді ерекшелеп, нысандық инспекторда олардың қасиеттерін өңдей аласыз. Өрістердің қасиеттері олардың типтеріне байланысты әртүрлі болады.

Мәліметтер қорын құруды жалғастырайық. Алдымен Счетчик өрісінің (key1 өрісі) көрінуін алып тастау керек. Жоғарыда ол өрістің пайдаланушыға қажет емес екенін айтқан болатынбыз. Осы өрісті ерекшелеп, нысандық инспекторда Visible қасиетіне False мәнін орнату керек. Key1 өрісінің бенеленбей тұрғанына көз жеткізу үшін бірден басты формаға өтуге немесе программаны жүктеуге болады.

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

Баған кеңдігіне DisplayWidth қасиеті жауап береді. Үнсіз келісім бойынша онда өрістің кеңдігі тұрады, бірақ біз оған 15 орнатамыз. Бұл өзгерісте мәліметтер қорының өзіне әсер етпейді, өріс әліде 50 өлшеміне ие, бірақ тордағы бейнеленетін баған кеңдігі 15 болады. Тура осылаша Аты өрісінің кеңдігін қысқарт.

Өрістердің тағы бірнеше қасиеттерін қарастырайық.

§  DefaultExpression – бұл мәнді үнсіз келісім бойынша қалдыруға болады. Ары қарай жаңа жолдар жасалған кезде өрістерге осы жерде көрсетілген мәндер қойылады.

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

§  MinValue – минималды мүмкін мән.

§  Readonly – тек оқу өрісі. Егер қандай да бір өріс өзгертілмеуге тиіс болса, онда оның Readonly қасиетіне True мәнін орнат.

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

§  Tag – жай сандық мән, оны өз қалауыңызша қолдана аласыз.

Енді терезеде барлық қажетті ақпарат орналасады, және де жылжу жолақтарын қолданудың қажеті болмайды. Программаны жібер және Дата өрісін кез-келген мәнмен толтыр. ТОлтыру кезінде мұқият бол және нақты күнді көрсетіңіз. Егер қате күн енгізсе программа қателікті көрсетеді.

 Мәліметтерді енгізе кезінде сан ажыратқышын пайдаланыңыз.  Көптеген орыс тілді Windows операциялық жүйелерде ажыратқыш ретінде нүкте немесе көлденең сызық белгісін (/) пайдаланамыз. Алдымен сан, соңынан ай, содан кейін жыл  көрсетіледі. Бос орын жіберілмейді. Осы рет пен ажыратқыштар ОЖ баптауларында бапталады. Басқару панеліне кіріп,  Настройка региональных параметров терезесін жүктеңіз. Мұнда күнді, уақытты және сандарды енгізуді баптауға болады.

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

§  Мәліметтер қорындағы өріс атауын өңдеу керек (онша дұрыс емес);

§  Delphi арқылы өріс тақырыбында қажетті мәтінді бейнелеу керек.

Тақырыпта бейнеленетін мәтінге DisplayLabel қасиеті жауап береді. Оған «Туған күні» мәтінін енгізейік.

Енді датаны бейнелеу форматын өңдейік. Ол үшін   DisplayFormat қасиеті жауап береді. Мұнда мәтіндік форматты көрсетуге болады. FormatDateTime функциясы мен оның бірінші параметрін еске түсір. Көптеген программисттер бейнелеу үшін толық форматты  - «dddddd» -  қолданғанды қалайды.

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

Неғұрлым Дата үшін – 99/99/9999 – енгізу маскасын үнемі қолдану керек. 

Енді мысалды жүктейтін болсақ, онда Туған күні өрісінде барлық даталар толық форматта бейнеленеді (10-сурет). Егер тышқанды осы өрістің кез-келген жолына  екі рет шертсе (жолдарды редактрлеу режиміне өтсе), онда дата бірден редактрлеу режиміне өтеді (10-суреттегі екінші жолына қара).

Ең соңында Ұялы телефон өрісін редактрлеуіміз керек. Әзір мұнда True немесе False мәндері бейнеленіп тұр. Оларды Иә немесе Жоқ мәндеріне ауыстыруымыз керек. Осы өрісті ерекшелеп, нысандық инспекторда DisplayValues қасиетін табу керек.  Бульдік өрістер үшін мұнда True немесе False форматындағы екі мән көрсетіледі, яғни, алдымен оң мәнді көрсетеміз, соңынан нүктелі үтірден соң теріс мәнді көрсету керек. Осылайша Иә және Жоқ мәндерін енгіземіз – Иә; Жоқ.  Енді Ұялы телефон өрісінде түсінікті  Иә және Жоқ мәндері болады.

image

    

image

Тапсырма:

1.    Алдыңғы зертханалық жұмыста дайындалған Student кестесіндегі құрылымға сәйкес мәліметтер қорымен  жұмысты жалғастыр:

Access программасында дайындалған Student кестесін сол программаның консттруктор режімінде аш, 4 кесте (Student) құрылымында көрсетілгендей бұл кестеге де Дата және Ұялы телефон  өрістерін қос. Кестені жап.

Мәліметтерге қатынас жасау компоненттерін (ADOConnection1, DataSource1, ADOTable1) жеке модульге орналастырып, негізгі формамен байланыстыр.

Негізгі формадағы DBGrid торында барлық өрістердің бейнеленуін ұйымдастыр (жоғарыдағы нұсқауға қара).

4 кесте

Өріс атуы

Типі

Сипаттама

Key1

Счетчик

Бұл кілттік өріс. Өріс өлшемі – Длинное целое. Индекстелген өріс – Да (қайталану болмауы керек).

Тегі

 

Текстовый

Өріс өлшемі – 50 . Индекстелген өріс – Да (қайталану бола береді).

Аты

Текстовый

Өріс өлшемі – 50 . Индекстелген өріс – Да (қайталану бола береді).

Тобы

Текстовый

Өріс өлшемі – 10 . Индекстелген өріс – Да (қайталану бола береді).

Мекен-жайы

Текстовый

Өріс өлшемі – 50 . Индекстелген өріс – Да (қайталану бола береді).

Ұлты

Числовой

Өріс өлшемі – Длинное целое. Индекстелген өріс – Нет.

  2. Өз бетіңмен дайындаған Кітапханадағы кітап қоры туралы мәліметтер қорын да жоғарыдағы нұсқауды пайдаланып жетілдір және түсіндіріп бер.

 

Бақылау сұрақтары:

1.    ADOTable компонентінің қандай қасиеттері бар?

2.    ADOTable компонентінің қандай әдістері бар?

3.    Мәліметтер қоры өрістерін редактрлеу терезесімен қалай жұмыс істейміз?

4.    DisplayWidth, DisplayLabel, DisplayFormat қасиеттері қандай қызмет атқарады?

5.    EditMask қасиеті туралы не білесің?

 


Ұқсас жұмыстар

Зертханалық жұмыстарды ұйымдастыру
Физикалық зертханалық жұмыстардың міндеттері
Биологиядан зертханалық жұмыстар
Биология пәнінен зертханалық және практикалық жұмыстардың айырмашылығы
Биология сабақтарындағы оқыту технологиясы
Оқушылардың өзіндік жұмыс істеу дағдыларын қалыптастырудың педагогикалық негіздері
Биологиядан зертханалық жұмыстарды өткізу әдістемесі
Химияны оқытуда зертханалық жұмыстарды жүргізу әдістемесі
Виртуалды зертханалық жұмыстар
Зертханалық жануарларды күтіп - бағу, өсіру, көбейту