Жоспар №15279

Delphi ортасында InterBase локальдік серверін орнату және мәліметтер қорына қол жеткізуді ұйымдастыру

Сұрақ-жауап

Сұрағыңызға жасанды интеллект жауап береді

Мазмұны Кіріспе................................................................................................................4 1.Жалпы бөлім..................................................................................................6 1.1 InterBase локальдік серверін жүктеу..........…………………...…...........6 1.2 Сервер жүктелгенін қалай тексеруге болады.........................................7 1.3 IBConsole утилитасы. Серверді тіркеу. Жаңа 1.4 Мәліметтер қорын құру. Қатысушыларға анықтамалық 2.Арнайы бөлім………………………….……………………….………….. 16 2.1 Есептің қойылу шарты…………………………………………………… 16 2.2 Есептің формальды қойылуы……………………………………………..17 2.3 Алгоритмнің жалпы құрылымы…………………………………….…... 18 2.4 Есептің орындалу үрдісі………………………………………...……..… 19 2.4.1 BDE арқылы қол жеткізу. BDE Administrator. Алиас құру…………..19 2.4.2 БҚ жай қосымшасы………………………………………………….23 2.4.3 TSession және TDataBase 2.4.4 ТDataSET компоненті. Мәліметтер жиынтығымен 2.4.5 Өзіндік ену сұхбатын құру………………………………………….47 2.4.6 Мәліметтер жиынтығын өзгерту. TDataSet класы…………………...53 3. Экономикалық бөлім..................................................................................61 3.1 Жобаны экономикалық бағалау................................................................61 3.2 Бағдарламалық қамтамасыздандыруды игерудегі экономикалық тиімділікті есептеу.............................................................................................62 4. Еңбекті қорғау және техникалық қауіпсіздіктің негізгі шаралары…………………………………………………………...………...67 4.1 Еңбек пен демалысты ұйымдастыруда берілетін бірқатар кеңестер…………………………………………………………………..........71 4.2 Мекемені жарықтандыру............................................................................72 4.3 Мониторға қойылатын талаптар................................................................73 4.4 Бағдарламалаушының жұмыс орнына қойылатын талаптар..................76 4.5 Жұмыс орнындағы бағдарламалаушының атқаратын жұмысы............77 4.6 Электр және өрт 4.7 Жұмыс орнындағы температура, қысым, ылғалдық................................79 4.8 Төтенше жағдай кезіндегі атқарылатын жұмыс.......................................79 Қорытынды......................................................................................................81 Қосымша А.......................................................................................................83 Әдебиеттер........................................................................................................90 Кіріспе Қазіргі кезде Delphi-де мәліметтерге қол жеткізудің бірнеше Borland Data Base Engine (BDE) арқылы қол жеткізу. Бұл ОДВС- драйвері арқылы қосылу мүмкіншілігі де BDE-нің кемшілігіне қосымшаны тарату мен Тек соңғы кезде кроссплатформалық өңдеулерге байланысты екінші ActiveData Object (ADO) қол жеткізу механизмі мәліметтерге DBExpress механизмі мәліметтерге қол жеткізудің жеңілдетілген Қол жеткізудің бұл типі анағұрлым жылдам және InterBaseExpress (IBX) бұл арнайы InterBase серверімен жұмыс Дипломдық жобада берілгендер қорына Borland Data Base Engine (BDE) Жалпы бөлім 1.1 InterBase локальдік серверін жүктеу InterBase серверін екі түрде жүктеуге болады: қолмен және автоматты түрде. Үнсіз келісім бойынша автоматты түрде жүктелу орындалады. Бұдан Тәртіпті басқаруға және InterBase құрамындағы статусты 1-сурет. InterBase Server Manager бадарламасының терзесі» Программаның үстінгі бөлік терезесінде (Startup Mode) жүктеу тәртібін Жүктеу тәртібін қосарда мына екі «Status» аймағы терезенің астыңғы бөлігінде орналасқан. Мұнда сервердің ағымдық 1.2 Сервер жүктелгенін қалай тексеруге болады Windows 95/98 операциялық жүйесінде, InterBase сервері жұмыс істеп тұрған 1.3 IBConsole утилитасы. Серверді тіркеу. Жаңа пайдаланушы InterBase сервері жұмыс істеп тұрғанына көз жеткізгеннен кейін, оған 2-сурет. IBConsole бағдарламасының терезесі IBConsole - интерактивті тәртіпте SQL сұранысын жүктеуге, мәліметтер IBConsole бағдарламасының терезесі мынадай элементтерден тұрады: Администрациялық сервердегі командаларды қамтитын мәзір. Мәзір командаларына тез қатынауға арналған кнопкасы бар, құрал-саймандар тақтасы. IBConsole-да тіркелген, мәліметтер қорын және сервердің иерархиясын бейнелейтін Спецификалық ақпараттарды қамтитын, сонымен қатар иерархиялық тізбекте таңдалған Таңдалған сервер және пайдаланушы жайлы ақпаратттарды қамтитын, сонымен қатар IBConsole бағдарламасында сервермен жұмыс істеу үшін, оған 3-сурет. Тіркелудің және қосылудың диалог терзесі Терезенің жоғарғы бөлімінде «Local Server» пункті таңдалуы керек. Пайдаланушының 4-сурет. Тіркелгеннен кейінгі IBConsole бағдарламасының терезесі Егер сол жақ терезеде «Local Server» тізімінің қатары таңдалса, 5-сурет. Қауіпсіздік диалог терзесі Қауіпсіздік диалог терезесінің (5-сурет) төменгі жағында орналасқан Әрине құпия сөзді міндетті түрде ұмытпау керек, өйткені 6-сурет. Локалдік серверді пайдаланушы Серверде айқындалған пайдаланушылар тап осы серверде 1.4 Мәліметтер қорын құру. Қатысушыларға анықтамалық Серведе жұмыс істеуге болатын аты алғанннан кейін, мәліметтер қорын «Alias» өрісіне TUTORIAL мәліметтер қорын енгізіңіз. «Files» кестесінің бірінші қатарына берілгендер қорының толық атын Келесі «Options» кестесінде берілгендер қорының қосымша «Page size»(беттер өлшемі)-4096. Бұл мағына үнсіз келісімге арналған. «Default character set»(таңбалар жинағының үнсіз келісімі үшін) қатарынан WIN «SQL Dialect» енгізіңіз. «ОК» батырмасын шертіңіз. IBConsole бағдарламасы мәліметтер қорының тек файлын құрады, ал 7-сурет. Мәліметтер қорын құрғандағы диалог терезесі 8-сурет.IBConsole бағдарламасының қате хабарламасы Мәліметтер қорын құру «Database» қатарының бөлімінде бейнеленеді. Егер қатарда 9-сурет. Мәліметтер қорын құрғандағы IBConsole бағдарламасының терезесі Назар аударыңыз, статустық жолға сервер аты, мәліметтер Мәліметтер қорымен жұмыс істеу үшін пайдаланушы оған қосылуы керек. 10-сурет. IBConsole терезесі IBConsole құрамындағы мәліметтер қорынның SQL сұранысымен Интерактивті жұмыс істеуге, қосымша «Interactive SQL» құрал-саймандар- бағдарламасы қамтылады. Оны жүктеу үшін мәзірден SQL ...» пунктін таңдау керек(11-сурет). 11-сурет. «Interactive SQL» терезесі Бұл бағдарламада SQL-сұранысын теруге, орындауға Бұған дейін кестеге жаңа жазулар қоя отырып, 2. Арнайы бөлім 2.1 Есептің қойылу шарты Borland Data Base Engine (BDE) арқылы берілгендерге қол жеткізудің Жобада берілгендерге қатынаудың InterBase сервері арқылы жұмыс істейтін қосымшасын 2.2 Есептің формальды қойылуы 2.3 Алгоритмнің жалпы құрылымы 2.4. Есептің орындалу үрдісі 2.4.1 BDE арқылы қол жеткізу. BDE Administrator. Алиас құру SQL стандартына қосылатын мәліметтер қорынның типі Сонымен, клиент қосымшасы мәліметтер қорына «жетуі» үшін олар Клиент қосымшасы бір мезгілде бірнеше типті мәліметтер BDE мәліметтерді кеширлеуді өзінің міндетіне алып, SQL типіне жатпайтын 1-суретте мәліметтер қорымен клиенттік қосымша арасындағы БҚ Алиас1 1 Алиас2 Алиас3 3 1-сурет. BDE бойынша мәліметтердің қозғалыс схемасы 2 және 3 мәліметтер қоры бір типке Клиенттік қосымшаның бірден бірнеше мәліметтер қорымен, Алиас 2- сурет. Мәліметтердің BDE арқылы қозғалысының Сонымен, бағдарлама қордан алынған мәліметтер мен BDE Administrator терезесінің сол жағында мәліметтер қорының тақтайшасы 3-сурет. BDE Administrator терезесі Жаңа алиас құрып оны біздің мәліметтер қорымызбен байланыстырамыз. Object/New командасын таңдаймыз немесе пернетақтадан Шығатын тізімнен ( 4-сурет) мәліметтер қоры драйверінің 4-сурет. Драйвер типін таңдау терезесі Алиас терезесінде үнсіз келісім бойынша InterBase1 бағдарламаның оң жақ терезінде баптау параметрлері бар кесте 5- сурет. МҚ драйверінің параметрлері LANGDRIVER- оң жақтағы бос графаны шертеміз және пайда || SERVER NAME IB_SERVER:/PATH/DATABA … || 6- сурет.Мәліметтер қоры базасын енгізу USERNAME- перне тақтадан өзіміз берген қолданушы Құрылған баптауды мәзір командасы Object/Apply арқылы BDE Administrator бағдарламасын мәзірден Object/Exit командасын таңдап Біз «TUTORIAL» алиасын құрдық және ол арқылы 2.4.2 БҚ жай қосымшасы Delphi7 бағдарламасын іске қосамыз. Компоненттер палитрасындағы барлық компоненттер тақырып бойынша Назарымызды үшеуіне де салайық (7- сурет): Data Access – мәліметтер көзі. Бұл компоненттер BDE мәліметтерге Borland DataBase Engine мехенизмі арқылы қол Data Controls- мәліметтердің өздерімен жұмыс істеуге арналған 7-сурет. Data Access компоненттерінің беті Формаға Data Source (мәліметтер көзі) және Data Controls-қа көшіңіз және формаға DBGrid Форма 8-суреттегідей болуы қажет. 8-сурет. Қосымша формасы Енді компоненттер қасиеттерін баптаумен айналысамыз. Ол үшін DatabaseName қасиетінің мәні алиас тізімінен теріледі, ол жолдың Select * from STUDENT Бұл сұраныс STUDENT кестесінің барлық өрістерін DBGrid1 компоненті Қасиет Data Source Data Келесі қадам барлық жұмыстың дұрыс «User Name» -өрісіне қолданушы аты қойылған. Серверге болады.(10- сурет) 9- сурет. Пароль енгізу сұхбат терезесі 10- сурет. МҚ қосылғаннан кейінгі қосымша Active = false мәнін қайтарамыз. Енді басқа компоненттерге қасиет береміз. Компонент Қасиет Мән Form1 Caption Position «Оқушы анықтамасы» PoScreenCenter Button1 Caption «Қосылу» Button2 Caption «Шығу» Батырмалар енінің ішіндегі жазулар көрінетіндей етіп, тышқанмен өзгертеміз.OnClick оқиғасының Procedure TForm1. Button1Click (Sender: TObject); Begin Query. Active: = true; Button1.Enabled:=false; End; Бұл процедурада екі негізгі амал орындаймыз: Query1.Active қасиетін өзгертіп, мәліметтер қорына қосыламыз. Бірінші Қолданушы активті мәліметтер қорына қосыла procedure TForm1. Button2Click (Sender: TObject); Begin If Query1.Active then Query1.Close; Application.Terminate; End; Button2 қосымшаны жабу пернесі. Жабу алдында мәліметтер If Query1.Active then Query1.Close; Жобаны PROJ3-1 папкасына сақтаймыз. Бұл жерде proj3-1 prg жобасының Қосымшаны жүргіземіз және « қосылу» пернесін басамыз, бағдарлама 11- сурет. Қосымша терезесі Кестеде мәліметтер қоры кестесінің барлық DBGrid компоненті арқылы осының бәрін орындауға Мәзірдің осы пунктін таңдаймыз. Ins батырмасын басамыз. Кестеде жаңа жол «o-Tcolumn»(13-сурет) пайда 12- сурет. DBGrid1 компонентінің контекстік мәзірі 13- сурет. Кестенің баған редакторы Жолды тышқанды шерту арқылы белгілеймыз де Ғ11 пернесін басамыз. Кестенің келесі мәндерін орнатамыз: Field Name: МҚ кестесінің Last_Name бағанымен байланысқан өрісінің Title тізімін ашамыз, ол үшін Title сөзінің қасындағы Alignment: тақырыпты түзету- taCenter мәнін орнатамыз; Caption: тақырып мәтіні-«Tегі»; Font: тышқанмен көпнүктелі пернені шертіп, шрифт сұхбатында Тура осылай тағы үш баған құрамыз да, Баған аты МҚ өріс аты Аты FIRST_NAME Әкесінің аты MIDDLE_NAME Дата Start_DATE Query1 компонентінің Active = true қасиетін қосамыз және 14- сурет. Бағандарды өңдегеннен кейінгі қосымша формасы Үнсіз келісім бойынша мерзім dd.mm.yy форматында ShortDateFormat:=’dd.mm.yyyy’; 2.4.3 TSession және TDataBase Клиент қосымшасының ішінде не болатынын қарастырайық (4.15 База данных 15-сурет. МҚ байланысқан компоненттердің өзара әрекетінің Delphi қосымшалары мәліметтер қорының серверлерімен «борландық мәліметтер Delphi обьектілі – бағытты өңдеу ортасы болғандықтан Қормен BDE арқылы жұмыс істейтін кез келген қосымшада Сонымен қатар, кейбір жағдайларда өңдеуші бағдарламада TSession-ң Қосымша бір мезгілде бір мәліметтер қорында бірнеше Көп ауысымды қосымшалар. Мәліметтер қорымен жұмыс ТDataBase компоненті жекеленген мәліметтер қорымен біріктіруді Мәліметтер жиынтығын қайтаратын сұраныстар. Бұған SELECT типіндегі таңдау Мәліметтер жиынтығын қайтармайтын сұраныстар. Бұларға мәліметтерді TTable компонентімен жұмыс барысында өңдеуші SQL- сұраныстарын SELECT * FROM < TableName> TQuery компоненті SQL- сұраныстарын береді. Ол мәліметтерді таңдау TStoredProc компоненті арнайы SQL серверде сақталатын TStoredProc компоненті жұмыс істейтін сақталатын процедура TTable, TQuery, TStoredProc компоненттері арқылы алынатын мәліметтер 2.4.4 ТDataSET компоненті. Мәліметтер жиынтығымен Мәліметтер қорынан таңдауға сұраныс алған Мәліметтер жиынтығын ашу. Мәліметтер жиынтығын жұмысты Мәліметтер жиынтығын жабу. Ашу сияқты жабуда Active Мәліметтер жиынтығы бойымен қозғалыс (новигация). Жоғарыда айтылғандардың Сирота Вера Анатольевна 1984 16- сурет. Мәліметтер жиынтығы бойымен қозғалыс Мәліметтер жиынтығының КЭШ-і қосымшаның басқа обьектілерінде First меңзерді мәліметтер жиынтығының бірінші жазуына Last меңзерді мәліметтер жиынтығының соңғы жазуына Prior меңзерді мәліметтер жиынтығының алдыңғы Next меңзерді мәліметтер жиынтығының келесі жазуына апарады. NoveBy меңзерді берілген санға тең жазуға Сонымен қатар TDataSET компонентінде типі Boolean BOE true, егер меңзер мәліметтер жиынтығының бірінші EOF true, егер меңзер мәліметтер жиынтығының соңғы Мысалы, Query1 компоненті үшін әдіс шақыру келесі түрде Query1.Next; BOE және EOF әдістері функциялар болып табылады, яғни Boolean While not Query 1 EOF do Begin //… Query1.Next; End; Жылжу әдістерінің жұмысын қарастырайық. Формаға екі батырма TSpeeButton arrowld.bmp Екі батырмаға да Enabled= false қасиетін орнатамыз. Unit uStudent; Interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Type TForm1=class(TForm) Query1: T Query DBGrid1: TDBGrid; Button1: TButton; DataSource1: T DataSource; Button2: TButton SpeedButton1: TSpeedButton; SpeedButton2: TSpeedButton; Procedure Button1Click (Sender: TObject); Procedure Button2Click (Sender: TObject); Procedure FormCreate (Sender: TObject); Procedure SpeedButton1Click (Sender: TObject); Procedure SpeedButton2Click(Sender: TObject); Private {Private declarations} ProcedureCheckPosition; Public { Public declarations } End; Var Form1: TForm; Implementation {SR*.DFM} Procedure TForm. Button1Click (Sender: TObject); begin Query1.Active: =true; Button1. Enabled: = false; CheckPosition; End; Procedure TForm. Button2Click (Sender: TObject); begin if Query1.Active then Query1.Close; Application. Terminate; End; Procedure TForm1. FormCreate (Sender: TObject); begin ShortDateFormat: =’dd.mm.yyyy’; End; Procedure TForm1. CheckPosition; begin if Query1.EOF then SpeedButton1. Enabled: = false; else SpeedButton1. if Query1.BOF then SpeedButton2. Enabled: = false; else SpeedButton2. end; Procedure TForm1. SpeedButton1Click (Sender: TObject); Begin Query1. Next; CheckPosition; End; Procedure TForm2. SpeedButton2Click (Sender: TObject); Begin Query1. Prior; CheckPosition; End; End. Біз бұл жерде тағы бір әдісті қостық, Келесі жағдайларда BOF қасиеті true болады: мәліметтер жиынтығы ашылғаннан кейін; First әдісі шақырылғаннан кейін; Prior әдісін сәтсіз шақырғанда Келесі жағдайларда EOF қасиеті true болады: мәліметтер жиынтығы бос; Last әдісі шақырылғаннан кейін; Next әдісін сәтсіз шақырғанда. Бағдарлама қосып мәліметтер қорына кіргеннен кейін ол 17- сурет. Жылжу батырмалары мен қосымша терезелер. Кесте бойымен стрелкалары бар пернелерді басып жоғары MoveBy (3); Меңзерді 3 жазуға алға жылжытады. Артқа қарай жылжу MoveBy(-3); Мәліметтер жиынтығының өрісі: Кез- келген мәліметтер жиынтығы өрістерден property Fields( Index : integer); Fields қасиетінің Тfields типі бар , ол AsBCD AsBoolean AsCurrency AsDateTime AsVariant Мысалы, 3-ші өрістің жолдық мәнін алу үшін Query1.Fields [3]. AsString; Барлық өріс үшін барлық мадификаторлар шақырыла бермейді. Мысалы, Формаға Tlabel (18-сурет) компонентін қосамыз және CheckPosition әдісін өңдейміз: 18- сурет. Label1 фамилия шығаруға арналған таңбасы Procedure TForm1. CheckPosition; begin if Query]..EOF then SpeedButtonl.Enabled:=false else SpeedButtonl.Enabled: =true; If Queryl.BOF then SpeedButton2.Enabled:=false else SpeedButton2.Enabled:=true; Labell.Caption:=Queryl.Fields[3].AsString; Бағдарламаны қосамыз. Мәліметтер қорына қосылған соң «Label1»-дің Label1.Caption:=Query1.Fields[0] AsString; Query1 компонентінде бағаналар реті кесте құрғандағы реттен FunctionFieldBy Name (constFieldName:string): TField; Бұл функцияның қолданылуы Fields қасиетіне ұқсас. Мысалы, Procedure TForm1. CheckPosition; Begin if Query1.EOF then SpeedButton1.Enabled: =false; else SpeedButton1.Enabled:=true; if Query1.BOF then SpeedButton2.Enabled: =false; else SpeedButton2.Enabled:=true; Label1. Caption: =Query1. FieldByName (‘last_name).AsString; End; Сонымен қатар TDataSet объектісінің ұрпақтарының бәрінде Property FieldVales [const.FieldName;string]: Variant; default қасиеті бар. Query1 мәліметтер жиынтығы PERSON_ID FIRST_NAME ============================================================ 2 3 4 5 Айсулу Балтаева 3-MAY-2000 6 Мария Сыдыманкызы 7 Досхан Косайулы Косаев 9 10 19-сурет. DBGrid-ң мәліметтер жиынтығымен өзара әрекеті Анықтамадан көрініп тұрғандай бұл үнсіз келісім бойынша алынған Label1.Caption:= Query [‘last_name’]; деп жазу керек. Кейде алдын-ала бағандар туралы ештеңе белгісіз мәліметтер жиынтығымен Форма биіктігін ұзартамыз да ТButton типінде батырма орнатамыз (Delphi, 20- сурет. «Өріс» батырмасымен берілген қосымша форма Жобаға Form2 формасын қосамыз (File/New Form) оған 2 Компонент Қасиет Form2 Button1 Caption Position BorderStyle Caption ModatResult Мәліметтер жиынтығ өріс poScreen Center bsDialog «шығу» mrOK Формаға компоненттерді 21-суреттегідей етіп орнатамыз. 21- сурет. Өріспен жұмыс істеуге арналған форма Жаңа модульді «uField.pas»деп сақтаймыз. Бізге келесі нәтижелерге жету керек: Бұл форма экранға шыққанда сол жақ тізімде Сол жақ тізімнен өріс атын ерекшелегеннен кейін, оң жақ өріс аты; өріс типі; өріс мәліметтерінің типі; мәліметтер өлшемдері; мәліметтер жиынтығындағы реттік нөмер; өріс өңделді ме немесе жоқ; Бұл үшін uFields модуліне бірнеше өңдеуішілерді қосамыз. Белгілі бір OnShow өңдеушісін Form2 үшін және OnClick –ті ListBox1 үшін DB модулін Uses бөліміне қосамыз. Өңдегеннен кейін модуль келесі Unit u Fields; interface uses Windows, Messages, SysUtils, type TForm2 – clas(TForm) ListBox1: TListBox; ListBox2: TListBox; Buttonl: TButton; Procedure FormShow (Sender: TObject); procedure ListBoxlClick (Sender: private { Private declarations } public { Public declarations } end; var Form2: TForm2; implementation {SR *.DFM} procedure TForm2.FormShow (Sender: TObject); var i: integer; begin ListBoxl. Items.Clear; ListBox2. Items.Clear; for i:=0 to Forml. Queryl. FieldCount-1 do ListBoxl. Items. Add (Form. Queryl. Fields [i]. FieldName); end; procedure TForm2.ListBoxlClick(Sender: TObject); var FKind: string; CField: TField; begin if ListBoxl.Itemlndex=-1 then Exit; ListBox2.Items.Clear; CField:=Forml.Queryl.FieldByName (ListBoxl.Items[ListBoxl.Itemlndex]); ListBox2.Items.Add('өріс аты-'+CField.DisplayName); ListBox2.Items.Add{' өрістің мағынасы -'+CField.DisplayText); case CField.FieldKind of fkData: FKind:='МҚ кестесінің өрісі '; fkCalculated: FKind:='есеп айыратын'; fkLookup: FKind:='өрісті іздеу'; fklnternalCalc: FKind:=’жиынтықтың есеп айырысатын сақтаулы нәтижесі’; fkAggregate: FKind:='аггрегирированды'; else FKind:=' өрістін тәуелсіз түрі'; end; ListBox2.Items.Add ('түр - '+ FKind); ListBox2.Items.Add ('өрістің типі - '+ FieldTypeNames [CField.DataType]); if CField.CanHodify then ListBox2.Items.Add('өңделетін') else ListBox2.Items.Add:(‘өңделмейтін’); end; end. Келесі формаға өтіп Forml метод енгіземіз OnCIick батырмаға Button3: procedure TForml.Button3Click(Sender: TObject); begin Form2.ShowModal; end; Әдіске келесі жолды қосамыз. Procedure TForm1. Button1Click (Sender: TObject); Button3.Enabled:=true; Бағдарламаны құрып, қосамыз. Компиляция кезінде Delphi модульдердің бір-біріне 22- сурет. Кесте өрісінің қасиеттерін көру Терезенің сол жағында өрістер аттары көрсетілген for i:=0 to Forml.Queryl.FieldCount-1 ListBoxl.Items.Add (Forml.Query.Fields[i].FieldName); Оң жақ терезеде таңдалған өріске қатысты Display Name- қолданушы үшін әрқашан көрінетін өріс аты. DisplayText –мәтіндік формадағы өріс мәні. FieldKind- өріс түрі, өрістің кесте бағаны, есептеу өрісі, DataType – TfieldType өрісі мәліметтерінің типі. Мәтіндік Өрістің типін сипаттайтын жолдармен инициализацияланған массив берілген. Біздің FieldNO- мәліметтер жиынтығындағы 1-ден басталатын өрістің реттік нөмері. CanModify- өрістің өңделетінін немесе өңделмейтінін көрсетеді. 2.4.5 Өзіндік ену сұхбатын құру Мәліметтер қорымен жұмыс істейтін Delphi- бағдарлама ұзын TSession DataBase TDataSource 23- сурет.SessionName сессиясының аты арқылы компоненттер байланысы Қосымшаны базамен біріктіргенде не болатындығы бағдарлама өңдеушіге белгісіз, Қосымшаны жобалауда біз: Формаға TDataSource және TQuery компоненттерін қойдық; Мәліметтер қоры алиасын, кестені орнаттық; TQuery TDataSource-мен байланыстырдық. TSession компоненті автоматты түрде Dbtables модулін инициализацияланғанда TTable, TQuery TSession TDataSource 24- сурет. Инициализацияланғаннан кейінгі компоненттер байланысының сызбасы Әзірше TDataBase компоненті жоқ, ал Session және Біздің оқу проектімізде осыны орындайық . Form1 формасына ТDataBase компонентін «BDE» компоненттер Компонент Қасиет Мән DataBase1 DataBaseName LoginPrompt TUTORIAL false OnClick әдісін Button1 батырмасы үшін өңдейміз. Procedure TForml.ButtonlClick (Sender: TObject); begin Databasel.Params.Valuesf ['PASSWORD-' ] := 'silver'; Databasel.Params.Values['USER NAME'] := 'STUDENT'; Queryl.Active:=true; Buttonl.Enabled:=false; Button3.Enabled:=true; CheckPosition; end; Компиляциялаймыз және бағдарламаны қосамыз. Енді Session объектісінің мәліметтер 25-сурет.Кіру формасының сұхбаты Компоненттер қасиеттерінің мәнін орнатамыз. Компонент Қасиет Мән f login Label1 Label2 ebuserName ebPassword btnCancel btnOK biSystemMenu biMinimite biMaximite BorderStyle Caption Position Caption Caption Text Text PasswordChar Caption ModalResult Caption ModalResult False False False bsDialog Жүйеге кіру poScreenCentry Am Пароль * Қайту mrCancel OK mrOK fLogin формасы үшін OnShow өңдеушісін қосып, кіру Procedure TfLogin.FomShow(Sender:TObject); begin ebPassword.Text:=''; end; Student модулінде OnClick әдісін Button1 procedure Forml.ButtonlClick{Sender: TObject); begin if Login,ShowModal=mrOK then begin Databasel.Params.Values['PASSWORD']:=Trim{fLogin. ebPassword.Text); Database1.-Params. Values ['USER NAME'] :=Trim (fLogin.ebUserName.Text); try Queryl.Active:=true; Buttonl.Enabled:=false; Button3.Enabled:=true; CheckPosition; except ShowMessage (‘Берілгендер қорына кіруде қате end; end; end; Бұл жерде біз модальдық режимде кіру сұхбатын шақырдық, сонымен Databasel.Params.Values['PASSWORD'] :=Trim (fLogin.ebPassword.Text); Database]..Params,Values['USER NAME'] := Trim (fLogin.ebUserName.Text); Егер енгізілген мәліметтер қате болса, онда келесі ShowMessage (‘Берілгендер қорына кіруде қате жіберілуі!’); бағдарламаны компиляциялаңыз және 2.4.6 Мәліметтер жиынтығын өзгерту TDataSet класы Біз құрған қосымшаларды әзірше мәліметтерді экранға жаздық, procedure Append; procedure Insert; procedure Delete; // procedure Edit; procedure Post; procedure Cancel; // Компонентпен қайтарылған мәліметтер жиынтығы мәліметтерді өңдеуге мүмкіндік бермейді. - сұраныс бір ғана кестеге қатысты болуы қажет. - сұраныс DISTINCT, агрегаттық функциялар GROUP BY, HAVING болмауы қажет. - сұраныста негізгі кестеге немесе қордың басқа кестелеріне кірістірілген - сұраныстар болмауы қажет. Біздің мысалымыздағы мәліметтер жиынтығы үшін бұл шарттар Жұмыс үрдісінде TDataSet компоненті әртүрлі режимде тұруы мүмкін. dsInactive Мәліметтер жиынтығы жабық. Бұл dsBrowse Мәліметтерді көру. Бұл үнсіз келісім dsEdit редакциялау режимі dsInsert жазуды қосу режимі TDataSet компоненті мен оның мұрагерлері берілгендермен жұмысты оларды Post әдісі көптеген жағдайларда автоматты Берілгендер қорымен жұмыс істеу үшін визуалды компонентерде мәліметтерді Кестенің сол бағанындағы стрелка меңзердің ағымдағы орнын көрсетеді, ал 27- сурет. Кестедегі фамилияны өңдеу Сол жақ бағандағы стрелка меңзер кескініне ауысты, 28- сурет.Көру режиміндегі кесте Кесте ұяшығындағы мәнді өңдеуге жаңа ат енгізу Бұл мысалда DBGrid1 компоненті мәліметтер жиынтығын өзгертуге қажетті Label1 компонентін формадан өшіреміз де, оның орнына 29- сурет. Edit1 өрісімен берілген форма фрагмент CheckPosition процедурасында Labell.Caption:=Queryl.Fields[3].AsStrig; жолын Editl.Text:=Queryl.Fields [3].AsString; Жолына ауыстырамыз. CheckPosition процедурасы біздің бағдарламамыздың алдыңғы түрінде екі функция орындады: Бағытты бағдарламаларды мәліметтер жиынтығының басында және соңында өшіреді; 3-ші өріс мәнін мәтін түрінде шығарады. Енді 3 өрістің ішіндегілер Edit1 компонентіне CheckPosition процедурасының барлық шақыруларын (Button1Click, SpeedButton 1 Click және Формада Query1 компонентін белгіле Ғ11 пернесін бас Object Inspector терезесінде Events астарлы бетке өткіземіз After Scroll бағанын тышқанмен екі рет шертіп үнсіз procedure TForml.Query1AfterScroll (DataSet: TDataSet); begin CheckPosition; end; Бұл өңдеуіш меңзердің мәліметтер жиынтығында мәні өзгерген procedure TForml.SpeedButton3Click{Sender: TObject); begin Query1.Edit; Queryl [ 'IAST_NEME' ] :=Editl .Text; Queryl.Post; End; 30-сурет. Edit1 өрісінде фамилияны өңдеу Компиляция жасап бағдарламаны қосамыз. Қорға кірген соң білімгер фамилиясын Өзгерістер қорға енгізіледі және ол кестеден көрінеді. Енді Delete-жазуды 31- сурет. «Өшір...» батырмасы бар форма фрагменті Button4 батырмасының өңдеуішін құрайық: procedure TForml.Button4Click(Sender: TObject); begin Queryl.Delete; end; Жазуды өшіру қайтарылмайтын операция, сондықтан қолданушы өзінің дұрыс істеп procedure TForml,QuerylBeforeDelete(DataSet: TDataSet); begin if not mtError, [mbYes, mbNo], Abort; end; end; Бұл жерде біз MessageDlg стандартты функциясын жазуды өшіргісі function MessageDlg (const Msg: string; Buttons: TMsgDlgButtons; HelpCtx: Бұл функция экранға жазуы, суреті және батырмасы mtWarning ttError mtInformation mtContirmation нет Button параметрі сұхбат терезесінде қандай батырмалар Егер қолданушы өшіретінін ескертпесе, онда Abort процедурасы Көптеген компоненттер жазуды өшіру үшін өз мехенизмдері Мәліметтерді қосу үшін пайдаланылатын екі әдісті қарастыру Жазуларды қою келесі жолмен орындалады: Insert әдісі шақырылады (немесе Append) Жаңа қосылған жазулардың өрістерінің мәндері орнатылады; Post әдісі шақырылады. Бағдарламаның толық мәтіні «Қосымша А» да келтірілген. 3. Экономикалық бөлім 3.1 Жобаны экономикалық бағалау Дипломдық жобаның басты мақсаты бағдарламаны өңдеу болып табылады. Жоба Экономикалық тиімділікті есептеуде екі ақшалай көрсеткіштерді қолдануға болады: Тапсырыс берушінің осы программалық жүйенің игерілуі мен өңделінуіне кететін Шығынның кәсіпорынға жұмсалған, осы технологияны қолдану арқылы жылдық Аталған өңдеудің экономикалық тиімділігін бағалауда экономикалық салыстыру нұсқасы қолданылады, Құжаттарды өңдеуде жүйені игерудегі экономикалық тиімділіктің негізі болып қоғамдық Экономикалық тиімділіктің нақты бағасын, нақты ақпарат пен нақты цифрдың 3.2 Бағдарламалық қамтамасыздандыруды игерудегі экономикалық тиімділікті есептеу Өңдеуге кеткен шығындар келесі формуламен анықталады С=Салг+Сктс+Свн+Сотл мұндағы Салг – алгоритмді өңдеуге кеткен шығындар; Сктс – техникалық құралдар кешенін игеруге кеткен шығындар; Свн - игеруге кеткен шығындар; Сотл – жазуға кеткен шығындар; Алгоритмді өңдеуге кеткен шығынды есептеу Алгоритмді өңдеуге кеткен шығындар: Салг = Qразраб * В+От. мұндағы Qразраб – В – От – әлеуметтік сақтандыру Инженер программалаушының айлық жалақысы бір айда 20000 болатын болсын От = 20000*26/100=5200(теңге) Салг = 20000*1+5200=25200(теңге). Программаны жазуға кеткен шығынды есептеу Мұндағы шығындар келесі формуламен анықталады: Сотл = Котл + Фзп . Мұндағы Котл – программаға кеткен машиналы уақыттың бағамы, Фзп – программалаушының программа жазуға төленген жалақысының қоры; Ол үшін программалаушыға 30 күн, яғни күніне 3 сағаттан Котл = 3*30*70 = 6300 (теңге). Фзп = Км* Qразраб + От мұндағы Км – өңдеуге кеткен айдың жалпы саны, Qразраб – программалаушының бір айда алатын жалақысының көлемі, Программалаушы өңдеушінің жалақысы 20000 мың теңгені құраған. Оған екі Кзп =2*20000+10400=50400(теңге). Бұдан алатынымыз: Сотл =6300+50400=56700(теңге). Жүйені игерумен байланысты шығындарды есептеу Жүйені игеруге кеткен шығындарды есептеу үшін келесі формулаларды қолданамыз: Свн = Квн+ЗПвн, мұнда Квн - кеткен машиналы Зпвн - программалаушының игеруге жұмсаған жалақысы. Машиналы уақыттың бағасы: Квн = k * d * q, мұндағы k –бір күн d- ЭЕМ-дегі жұмыстың істелген күні, q- машиналы уақыт сағатының бағасы. ЭЕМ-дегі жұмыс істелген уақыт – күніне 2 сағат болсын; Күндердің саны -20 күн; Жұмыс уақытының құны 70 теңгені құраған. Барлығы Квн = 2*20*70 = 2800 (теңге). Жалақысы келесі формуламен анықталады: ЗПвн = Qвн*d / D+От мұнда Qвн – программалушының жалақысы; D – айдағы жұмыс күнінің саны; Программалаушының айлық жалақысы 20000 (теңге); ЭЕМ-дегі жұмыс күнінің саны 20 күн; Бір айдағы жұмыс күнінің саны 22 күн. ЗПвн =20000*20/22+5200=23382 (теңге). Сонда шығындар келесі түрде болады: Свн =2800+23382=26182 (теңге). Техникалық құралдар кешеніне жұмсалған шығындарды есептеу Intel PentiumIV-433 / 64 / 6,4Гб / 16Мб / Барлығы: Сктс = 77645 + 16115 = 93760 (теңге). Сонымен, программалы кешенді игеру мен өңдеуге кеткен шығын С = СКТС + Салг + Сотл +Свн С = 93760+25200+56700+26182= 201842 (теңге). Игеруге дейінгі шығынды есептеу Есеп 4 адам санынан тұратын топпен жүзеге асырылады. Есепті шешуге кеткен шығын келесі формуламен анықталған: Затр=ЗПЛПР+От+НПФ мұндағы ЗПЛПР- бір жылда төленетін Әлеуметтік қажеттілікке төленетін төлемнен бөлінетін бөлініс (26% ЗПЛПР=QЛПР*12*kol, Мұнда QЛПР - оклад ЛПР =7000 kol - 4 адам. ЗПЛПР=7000*12*4=336000 (теңге); Бұдан алатынымыз, яғни есепті шешуге кеткен шығын төмендегі мәнге Затр=336000*(1+0.26)= 423360 (теңге). Программалы қамсыздандыруды игеруден кейінгі шығынды есептеу Программалы өнімді игеруден кейін штаттың саны 1 адамға дейін Кмаш=tg*q*12, Мұндағы tg- ЭЕМ-ді қолданған сағаттың саны бір айда q- машиналы уақыт сағытының құны = 70 (теңге); Сонда Кмаш=22*70*1*12=18480 (теңге- жылына), Бір құжатты баспаға шығару үшін 1 минут уақыт кететін Кпеч=tпеч*Nвар*Q, мұндағы tпеч – бір экземплярды баспаға Nвар – экземпляр саны – 20 шт ; Q – машиналы уақыт сағfтының құны; Кпеч= 70*12*20*1/60=280 (теңге- жылына), Бөлім қызметкерінің жылдық жалақысы келесі түрде анықталатын болады: ЗПЛПР’=7000*12= 84000 (теңге) От’=84000*0.26=21840 (теңге). Суммалы шығынның көлемі: Затр’=Кмаш+Кпеч+ЗПЛПР’=18480+280+84000=102760 (теңге). Шығын үнемділігін есептеу Э= Затр -Затр’ мұндағы Затр- жүйені игеруге дейінгі Затр’- жүйені игергеннен кейінгі шығын. Э= 201842 - 102760=99082 (теңге). Жылдық экономикалық тиімділік құраған : Эфгод=Э-Ен*С, мұндағы Э- шығынның жылдық үнемділігі, Ен- капиталды салымның нормативті тиімділік коэффициенті (0,32), С- жүйені өңдеуге және игеруге кеткен шығын. Эфгод=99082-0.32*201842=34492 (теңге), Тұжырым: Жоғарыда келтірілген есептеулер негізінде жүйені игеру экономикалық тиімділікті 4. Еңбекті қорғау және техникалық қауіпсіздіктің негізгі Мекемедегі техника қауіпсіздігі жағдайын қарау ережелер, нормалар және Еңбекті қорғау және техника қауіпсіздігі бойынша инженер жұмысы басқарма Еңбекті қорғау және техника қауіпсіздігі инженерімен жеке немесе оның Негізгі құжаттамалардың жағдайын тексеру, еңбекті қорғаудың шарттарын жақсарту Электр шаруашылығын тексеру кезінде жер асты жағдайына, кабельді желі Өкілеттік персоналды компьютер жұмысы кезінде электр қауіпсіздігі бойынша келесі машинамен жұмыс істеу үшін тек сауатты оператор жіберіледі; машинаны пайдаланушы қауіпсіздік инструктажымен таныс болмаған жағдайда персоналды компьютерлер жұмыс уақтысы кезінде соққыларға, басқа да қысымдарға бұзылған штепсельді розеткаларды қолдануға тыйым салынады; жарамайтын штепсельді розеткаларды пайдалануға, өздігінше электр машиналарын жөндеуге тыйым Еңбек қорғанысының шарттарын және қауіпсіздік техникасын еңбекті қорғауда Мекемеде жұмыс істеу барысында қауіпсіздік техникасының инструктажымен танысып, Жұмыс орнында жұмыс істеп жатқан жағдайда компьютерлік Техникалық қауіпсіздікке байланысты қиыншылықтар көбінесе қосымша Ақпараттарға қойылатын талаптар жадының, дисплеймен жұмыс істеп отырған Ақпараттар объектісінің нақтырақ орналасуы оның ең майда детальдарынан бастап Ақпараттың жузеге асушы бөлігі экранның тура ортасында орналасқан болуы Графикалық ақпараттың шамамен бір объектісін көрсеткенде (немесе бірнеше Кадрдағы горизонтальды сызықтармен сюжеттің кеңдігі мен енін көрсетеді, Кадрдағы элементтердің орналасуы төменнен жоғарыға қарай даму ретімен орналасады; төмен – құлауды білдіреді, тура сағат тілінің бағытымен – цикл ретінде қабылданады. Экраннан бейнені көрген не қабылдаған кезде адамның көзі алғашында Кез-келген белгілі ақпаратты көрсеткенде фонның тығыздығының жоғарылауы белгіні көруді Түрлі – түсті кодтауды бәрінен бұрын бір нәрсені Жанып - өшу жиілігін кодтау жедел міндетті түрде назар Қызыл жанып өшіп тұрған жарық апатты жағдайдың болғандығын 4.1 Еңбек пен демалысты ұйымдастыруда берілетін бірқатар кеңестер Жоғарыда аталған бөлімдермен келісе отырып бағдарлама құрудағы мамандардың Компьютер алдында жұмыс істеу көзге, арқаға немесе омыртқаға, иыққа, бас ауруы; көздің талуы, жылдам шаршау; арқада, иықта, мойында болатын аурулар және т.б. Сондықтан міндетті үзіліс уақыттары берілген жұмыс режимі орнатылуы керек. Көзге түсетін ауыртпалықты төмендету үшін берілетін кеңестер: жиі көзді ашып - жұму; бір объектіден екінші бір объектіге қарағанда арасында біршама уақыт қатты құжат көшірмесімен жұмыс істегенде жұмыстың уақытының ұзақтығын қысқарту. Мекемені жарықтандыру Жарықтандырудың негізінен екі жолы бар. Монитор экраны – жарық көзі. Сондықтан жарықтандыруды ұйымдастыру кезінде Жарықтың өте ашықтығы оператордың көру жүйесіне әсер етіп, көру Мұның барлығын болдырмау үшін келесі шараларды қолға алуымыз керек: Монитор экранын терезеге перпендикуляр бағытта қою керек. Мекемеде немесе жұмыс орнында тікелей жарықты ұстап қалатын перделер мүмкін болған жағдайда монитордың экранына қорғаныш фильтрін орнату керек, Мекеменің жарықтану деңгейі 210 -540 лк диапазонында жатуы Монитордың жарықтығы немес ашықтығы шамамен өзін қоршап отырған жердегі Басқа да компьютер, электронды есептеуіш машиналар қолданылмайтын мекеменің Электронды есептеуіш машинамен жұмыс атқаратын оператордың немесе қолданушының ерекшеліктерін 4.4 Мониторға қойылатын талаптар Монитор ультракүлгін, рентген, инфрақызыл, ультра қызғылт, инфрақызыл, электромагнитті және Қазіргі кезде монитор жасап шығарушылар өзіндік инициативада өз шығарған Егер монитор тестілеуден өтпеген болса, онда оның қолдануы Абсолютті өлшем бойынша электростатикалық өріс потенциалы шамамен алғанда Айнымалы электр өрісінің кернеулі жиілігі 5-5000 Гц Айнымалы магнит өрісінің кернеулік жиілігі 5-5000 Айнымалы магнит өрісінің кернеулік жиілігі 5-400 Айнымалы магнит өрісінің кернеулік жиілігі 5-400 Сонымен қатар қазіргі кезде стандарттардың көптеген түрлері бар, олар Аталынып өткен талаптардан басқа монитор жарықтандыруды реттеу, бейненің өлшемін Жоғарыда айтылып өткендей, қолданушының жұмысы бұл графикалық Windows Бұл қолданушыға жеткілікті жер көлемін көру мүмкіндігіне ие болуын Бұл жағдайда оператордың көз көруі нашарламас үшін, экранда бейнеленген Монитор міндетті түрде түрлі –түсті болуы керек. Бұл талаптарға Программисттердің жұмыс орнына арналған монитор экранына қойылатын талаптар жай Алғашқысы программалы құралдарды қолдануда пайдаланылады, олар экрандағы бейненің масштабын Бірақ та барлық программалық қамсыздандыру көрсетілген қызметті бейне параметрлерін Программист үшін ЭЕМ экранында бейнеленетін түстеріне қойылатын талаптар соншалықты 4.5 Бағдарламалаушының жұмыс орнына қойылатын талаптар Жұмыс орнында экран алдына отырғандағы адам денесінің Компьютер экронының алдында дененің қалыпты жағдайы ешқашан болмайды десек Біріншіден, тік арқалықты болуы керек, монитор экраны көздің деңгейінен Бұл міндеттемелердің қатарына сонымен қатар арқалығы түсірілетін орындықты 4.6 Жұмыс орнындағы бағдарламалаушының атқаратын жұмысы Бағдарламалаушының электронды есептеуіш машинадағы жұмысында екі этапқа Жазу клавиатураның көмегі арқылы элеутронды есептеуіш машинаның жадына программаның Адамның иығындағы, шынтағындағы, қолдарындағы ауырлық клавиатурамен дамылсыз жұмыс істегенде Программист тестілеу процесіндегі немесе мамандандырылған программаның көмегімен терілген программаны 4.7. Электр және өрт Электр қауіпсіздігі тоқ өткізгіш бөлшектерге тиюге кедергі болатын қорғаныш Өрт шығудың негізгі себебі, электронды есептеуіш машиналардың түрлі бөлшектерінің 4.8 Мекемедегі шудың негізгі көздері ЭЕМ операторының жұмыс орнындағы жабық жүйелік блоктағы шудың негізгі 4.9 Жұмыс орнындағы температура, қысым, ылғалдық Электронды есептеуіш машинамен жұмыс жасағанда қолайлы жағдай жасау үшін Жыл мезгілінің жылы уақытындағы жұмыс орнындағы ауаның температурасы Ал ылғалдылық болса 40-60% пайызды құрайды; Желдің жылдамдығы 0,1 м/с шамасынан аспауы керек; Атмосфералық қысым 730-780 мм сынап бағанасына тең болуы шарт. 4.10 Төтенше жағдай кезіндегі атқарылатын жұмыс Электронды есептеуіш машинамен жұмыс жасау кезіндегі оператор үшін төтенше Мысалы, қолданушы қандай да бір нәтижені таңдауға сұранысты алуды Мұндай кездейсоқ жағдайлардан сақтану үшін жұмыс орнынан тыс жерде Қорытынды Дипломдық жобада Deplhi қосымшаларында пайдаланатын әр-түрлі берілгендерге қол Дипломдық жобада берілгендерге қатынаудың InterBase сервері арқылы жұмыс істейтін BDE арқылы берілгендер қорына қол жеткізу үшін BDE Берілгендерге қол жеткізу үрлісін жеңілдету үшін өзіндік ену БҚ жай қосымшасын құруда Data Access компоненттер палитрасы TSession және TDataBase компоненттерінің мұрагерлері Ttable,TQuery,TstoreProc Қосымшаның «өрістер» формасы бетінде кесте өрістері туралы мәліметтер толық Қосымшада мәліметтер серверіне қосылу, қолданушы аты мен паролін Бағдарламада келесі модульдер : негізгі орындалатын модуль(қабықша); пароль енгізетін сұхбаты бар модуль; кесте өрісінің мәліметтерін беретін модуль дайындалып ,«Оқушы анықтамасы» сұхбаттық қосымшасы құрылды. Қосымша А unit uStudent; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, DBGrids, DB, DBTables, Buttons, ExtCtrls, DBCtrls ,ComCtrls,Mask; type TForm1 = class(TForm) DataSource1: TDataSource; Query1: TQuery; Button1: TButton; Button2: TButton; Button3: TButton; Database1: TDatabase; Button5: TButton; DBGrid1: TDBGrid; DBNavigator1: TDBNavigator; PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; GroupBox1: TGroupBox; Label1: TLabel; Label2: TLabel; Edit1: TEdit; Button4: TButton; CheckBox1: TCheckBox; CheckBox2: TCheckBox; Edit2: TEdit; GroupBox2: TGroupBox; CheckBox3: TCheckBox; CheckBox4: TCheckBox; CheckBox5: TCheckBox; Button6: TButton; Edit3: TEdit; Label3: TLabel; Label4: TLabel; MaskEdit1: TMaskEdit; SpeedButton1: TSpeedButton; SpeedButton2: TSpeedButton; SpeedButton3: TSpeedButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Query1BeforeDelete(DataSet: TDataSet); procedure Button5Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure CheckBox5Click(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure SpeedButton2Click(Sender: TObject); procedure SpeedButton3Click(Sender: TObject); { procedure Query1FilterRecord(DataSet: TDataSet; var Accept: private { Private declarations } Bookmark:Tbookmark; procedure DataSetRefresh; procedure SetFilter; function FilterOpts:TfilterOptions; function FilterStr:string; procedure Setmark; procedure Freemark; public { Public declarations } end; var Form1: TForm1; implementation uses Variants,uFields, uLogin; {$R *.dfm} procedure Tform1.Setmark; begin Bookmark:=Query1.getBookmark; SpeedButton1.enabled:=false; SpeedButton2.Enabled:=true; SpeedButton3.enabled:=true; end; Procedure TForm1.Freemark; begin if Query1.BookmarkValid(Bookmark) then Query1.FreeBookmark(Bookmark); SpeedButton1.Enabled:=true; SpeedButton2.Enabled:=false; SpeedButton3.Enabled:=false; end; Function IsValidDate(s:string):boolean; Begin try StrToDate(s); result:=true; except result:=false; end; end; Function Tform1.FilterOpts:TFilterOptions; begin result:= []; if CheckBox3.Checked then result:=[foNoPartialCompare]; if CheckBox4.Checked then result:= result+[foCaseInsensitive]; end; Function Tform1.FilterStr:string; begin result:=''; if length(Edit3.text)>0 then begin result:='Last_name='''+Edit3.text+''''; end; {if isValidDate(MaskEdit1.text) then begin if length(result)>0 then result:=result+' and '; result:=result + 'start_date > '''+MaskEdit1.text+''''; end;} end; Procedure Tform1.SetFilter; begin if CheckBox5.checked then with Query1 do begin filterOptions:=FilterOpts; filter:=FilterStr; Filtered:=true; end else Query1.Filtered:=false; end; procedure TForm1.Button1Click(Sender: TObject); begin if flogin.showModal= mrOk then begin Database1.Params.Values['PASSWORD']:=trim(flogin.ebPassword.text); Database1.Params.Values['USER NAME']:=trim(flogin.ebUserName.text); try Query1.Active:=true; Button1.Enabled:=false; button3.Enabled:=true; SpeedButton1.Enabled:=true; {checkPosition; } except Showmessage(' end; end; end; procedure TForm1.Button2Click(Sender: TObject); begin if Query1.Active then Query1.Close; Application.Terminate; end; procedure TForm1.FormCreate(Sender: TObject); begin ShortDateFormat:='dd.mm.yyyy'; SpeedButton1.enabled:=false; SpeedButton2.enabled:=false; SpeedButton3.enabled:=false; end; procedure TForm1.Button3Click(Sender: TObject); begin Form2.showModal; end; procedure TForm1.Query1BeforeDelete(DataSet: TDataSet); begin if not(MessageDlg(' mtError, [mbYes, mbNo], 0) = mrYes) then begin Abort; end; end; procedure Tform1.DataSetRefresh; Var i:integer; LocValues:Variant; LocNames:string; Begin with query1 do begin LocNames:=' '; LocValues:=VarArrayCreate([0,Fields.Count-2],VarVariant); for i:=0 to Fields.Count-2 do begin LocValues[i]:=Fields[i+1].AsString; LocNames:=LocNames+Fields[i+1].FieldName+';'; end; DisableControls; Close; Open; Locate(LocNames,LocValues,[ ]); enableControls; end; end; procedure TForm1.Button5Click(Sender: TObject); begin with Query1 do begin Database1.StartTransaction; try ApplyUpdates; Database1.Commit; except Database1.Rollback; raise; end; CommitUpdates; DataSetRefresh; end; end; procedure TForm1.Button4Click(Sender: TObject); Var LocOpts:TLocateOptions; LocFields:string; LocValues:variant; begin LocOpts:=[ ]; LocFields:='Last_name'; if length(Edit2.Text)>0 then begin LocFields:=LocFields+';First_name'; LocValues:=VarArrayCreate([0,1],varVariant); LocValues[0]:=Edit1.Text; LocValues[1]:=Edit2.Text; end else LocValues:=Edit1.Text; if CheckBox1.Checked then LocOpts:=locOpts+[LoPartialKey]; if CheckBox2.Checked then LocOpts:=locOpts+[LoCaseInsensitive]; Query1.Locate(LocFields,LocValues,LocOpts); {Query1.Locate('Last_name',Edit1.Text,[LoPartialKey,LoCaseInsensitive]);} end; procedure TForm1.Button6Click(Sender: TObject); begin setFilter; end; procedure TForm1.CheckBox5Click(Sender: TObject); begin setFilter; end; {procedure TForm1.Query1FilterRecord(DataSet: TDataSet; var Accept: Boolean); begin Accept:=Pos('âà',DataSet['Last_name'])>0; end;} procedure TForm1.SpeedButton1Click(Sender: TObject); begin setMark; end; procedure TForm1.SpeedButton2Click(Sender: TObject); begin if query1.BookMarkValid(BookMark) then Query1.GotoBookmark(bookmark) else begin showmessage(' SpeedButton1.enabled:=true; SpeedButton2.enabled:=false; SpeedButton3.enabled:=false; end; end; procedure TForm1.SpeedButton3Click(Sender: TObject); begin FreeMark; end; end. Әдебиеттер 1. Баженова И.Ю «Delphi 7 Самоучитель 2. О. Комардинов « Delphi тілінде программалау», Алматы- 3 Иванов А.И. «Быстрый старт 4 Архангельский А.Я. «Программирование в 5. Вячеслав Понамарев «Базы данных в Delphi7», Москва-Санкт-Петербург- 6. Фаронов В.В. Система программирования Delphi.-СПб.:БХВ-Петербург,2006 7. Фаронов В.В. Delphi 7 . Учебный курс.-М.: 8. Дж.Мэтчо и др. Delphi 7.Руководство для профессионалов: 9. Кандзюба С.П.,Громов В.Н.Delphi 6/7.Базы данных и 10.Б.Жүнісов,Ү.Мәмбетов,Ұ.Байжомартов.Нарықтық экономика негіздері.РБК.Алматы,1994 11. Романов А.Н. Экономика предприятия.М.: «ЮНИТИ»,1998 12.Скала В.И. Охрана труда и техника безопасности. «LEM»,Алматы,2002 5 BDE Алиас1 Алиас2 Клиенттік қосымша Алиас3 BDE Алиас драйвер Клиенттік қосымша Программа TSession TDataBase BDE Визуалды компоненттер TTable TDataSource TQuery TDataSource TStoredProc TDataSource Басы Сервермен байланыс орнатылмады Сервермен байланыс орнатылды Соңы Берілгендер қоры InterBase серверіне қосылу User Name=SYSDBA Password=masterkey Берілгендер қорын өңдеу Берілгендер қорын формаға шығару Курсор Мәліметтер жиынтығы Ағымдағы жазу Алдыңғы жазу Келесі жазу Ефимович 1982 1984 Анатольевна Вера Сирота 1978 Федорович Алексей Савченко Год рождения Отчества Анатольевич Сергей Якобчук 1978 Фамилия Имя Александр Суржик DataSet DataBase SessionName DatabaseName DataSource DataSets Session SessionName LoginPrompt Params DatabaseName Databases SessionName SessionName Databases DataSet SessionName DatabaseName DataSource Алиасты құрып берілгендер қорымен байланыстыру BDE Administrator арқылы байланыстыру Берілгендер қорын құру 

Мәтінді көшіру үшін белсенді жазылым қажет.

Пайдаланушы ID: 57999

Жарияланған күні: