Мәліметтер жиынтығы
Мазмұны
Кіріспе................................................................................................................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 арқылы байланыстыру
Берілгендер қорын
құру
Мәліметтер базасы және мәліметтер базаларын басқару жүйелері
Физикалық мәліметтер қорын жобалаудың негізгі тұжырымдары
Ақпараттық қамтама
Мәліметтер базасын басқару жүйесі және оның құрылымы
Мәлімет қоры қосымшасының құрылымы
Мәліметтерді сақтау, өңдеу және қолдану
Реляциялық модельге сәйкес Деректер Базасы
МӘЛІМЕТТЕР ҚОРЫНЫҢ ДАМУЫ
Мәліметтер қорын құру
Ақпарат мөлшерінің өлшемі