Сур.6. Кесте құрлымын анықтау.
Жол типі жолға орналасуы мүмкін мәліметтер типін анықтайды. Тип Type бағанына символдық тұрақтыларды енгізу арқылы анықталады.
Жолдың типін анықтайтын тұрақты пернетақтадан немесе Type бағанына тышқанның оң жақ батырмасын басқанда пайда болған тізімнің ішінен таңдау арқылы немесе <Пробел> батырмасын басу арқылы енгізіледі.
Бір немесе бірнеше жолдарды негізгі (кілттік) етіп белгілеуге болады. Кілттік жолдар кестеде жазбалардың логикалық ретпен тізбектелуін анықтайды. Мысалы, егер символдық (тип Alpha) Fam (Фамилия) жолын кілтті жол қылып белгілейтін болсақ, онда кестені шығарған кезде жазбалардағы фамилиялар алфавиттің ретімен жазылады. Егер Fam (Фамилия) жолын кілттік жол қылып белгілемесек, онда жолдардағы жазбалар басында қалай енгізілсе, солай орналасады.
Жолды кілтті жол қылып өзгерту үшін міндетті түрде тышқанның көрсеткішін Key бағанына апарып екі рет шерту қажет (тышкан көрсеткішін осы жолға әкеліп кез келген батырманы бассақ, сол жолда * белгісі пайда болады, осы белгі жолдың кілтті екенін көрсетеді).
Тапсырма:
Delphi-дегі мәліметтер базасының бастапқы ұғымдарын түсіну үшін оқу орнының мәліметтер базасын құрайық. Біздің мәліметтер базамыз үш кестеден тұрады: Студенттер, Үлгерім, Жатахана.
Кесте Студенттер.
Жолдың
аты
Қасиеттер
|
Шифр (сынақ
кітапшасының №)
|
Фамилия
|
Аты
|
Әкесінің
аты
|
Факультет
|
Топ
|
Оқуға
түскен
жылы
|
Аты
|
NZachet
|
FamS
|
NameS
|
PatS
|
FaculS
|
GroupS
|
DataPost
|
Типі
|
N
|
A
|
A
|
A
|
A
|
A
|
D
|
Өлшемі
|
-
|
15
|
10
|
15
|
10
|
5
|
-
|
Индекс
|
+
|
-
|
-
|
-
|
-
|
-
|
-
|
Бастапқы
мәні
|
-
|
-
|
-
|
-
|
-
|
-
|
01.10.07
|
Кесте Үлгерім.
Жолдың аты
Қасиеттер
|
Шифр (сынақ кітапшасының №)
|
Фамилия
|
Аты
|
Әкесінің аты
|
Пән
|
Баға
|
Тапсырған күні
|
Аты
|
NZachet
|
FamU
|
NameU
|
PatU
|
PredU
|
OcenkaU
|
DataStU
|
Типі
|
N
|
A
|
A
|
A
|
A
|
N
|
D
|
Өлшемі
|
-
|
15
|
10
|
15
|
10
|
-
|
-
|
Индекс
|
-
|
-
|
-
|
-
|
-
|
-
|
-
|
Бастапқы мәні
|
-
|
-
|
-
|
-
|
-
|
-
|
01.10.07
|
Кесте Жатақхана.
Жолдың аты
Қасиеттер
|
Шифр (сынақ кітапшасының №)
|
Фамилия
|
Аты
|
Әкесінің аты
|
Бөлме
|
Құны
|
Тапсырған күні
|
Аты
|
NZachet
|
FamO
|
NameO
|
PatO
|
RoomO
|
SumaO
|
DataOpO
|
Типі
|
N
|
A
|
A
|
A
|
N
|
N
|
D
|
Өлшемі
|
-
|
15
|
10
|
15
|
-10
|
-
|
-
|
Индекс
|
+
|
-
|
-
|
-
|
-
|
-
|
-
|
Бастапқы мәні
|
-
|
-
|
-
|
-
|
-
|
-
|
01.10.07
|
Тақырыпқа байланысты бақылау сұрақтары:
Мәліметтер базасын құру нешеге бөлінеді?
BDE Administrator қосымшасы не үшін қажет?
Жаңа псевдонимді қалай құрамыз?
Database Desktop қосымшасы не үшін қажет?
№10 практикалық жұмыс
Тақырыбы: Мәліметтер базасымен жұмыс жасауға арналған қосымшалар құру (Table компоненті).
Мақсаты: Мәліметтер базасымен жұмыс жасауға мүмкіндік беретін Table, DataSourse, DBGrid және DBNavigator компоненттерінің қасиеттері мен қызметтерін меңгеру.
Мәліметтер базасымен жұмыс жасауға арналған қосымшаларды жасау Delphi-дегі қарапайым қосымшаларды құруға ұқсас. Алдымен Студенттер кестесін толтыруға арналған форма құрамыз. Borland C++ Builder 6.0-ді жүктеп, форма бетіне Сурет 1-де көрсетілгендей компоненттерді орналастырамыз.
Сур.7. Студенттер кестесімен жұмыс жасауға арналған қосымша формасы жасалу
кезеңінде.
Button компоненті Standard бетінде, DBGrid және DBNavigator компоненттері Data Controls бетінде, Table компоненті BDE бетінде, ал DataSourse компоненті Data Access бетінде орналасқан.
Table компоненті мәліметтер базасының бір кестесімен байланысты қамтамасыз етеді. DataSourse компоненті мәліметтер көздері мен мәліметтерді бейнелеуге-жөндеуге мүмкіндік беретін компоненттермен байланысты қамтамасыз етеді.
DataSourse компонентінің DataSet қасиетіне Table1 мәнін орнатыңыз. Table1 компонентінің ең бірінші мәліметтер базасының псевдонимін көрсетіңіз, ол үшін DataBaseName қасиетіне Demo Table мәнін орнатыңыз. Содан кейін мәліметтер базасы кестесінің атын көрсету қажет, ол үшін TableName қасиетіне Studenti сәйкес мәнін қоямыз. Ең соңынан мәліметтер жинағын ашу үшін Active қасиетіне True мәні таңдалуы керек.
DBGrid компоненті мәліметтер базасының кестесін көрсетеді. Ондағы бағандар жолдарға, ал жолда жазбаларға сәйкес келеді. Кесте форманың бетінде көрінуі үшін компоненттің DataSourse қасиетіне DataSourse1 мәнін қоямыз.
DBNavigator компоненті - бұл айырып-қосқыштар жиынынан тұрады. Бағдарлама жұмысы кезінде бұл айырып-қосқыштар ағымдағы жазба көрсеткішін келесі, алдыңғы, бірінші немесе соңғы мәліметтер базасының жазбасына ауыстырады, сонымен қатар мәліметтер файылына жаңа жазбаларды енгізуге, ағымдағы жазбаларды кетіруге мүмкіндік береді. Бұл компонентті мәліметтер жиынымен байланыстыру үшін оның DataSourse қасиетіне DataSourse1 мәнін қоямыз.
Қосымшаны жүктеп, кестеге жаңа жазбалар енгізуге болатынына назар аударыңыз.
Тапсырма: Үш форма құрып, оның біреуін негізгі қыламыз, ал қалған екеуіне өз бетімізбен компоненттерді орналастырып, Үлгерім және Жатахан кестелерін міліметтермен толтырамыз. Тақырыпқа байланысты бақылау сұрақтары:
Table компоненті қайда орналасқан?
Table компоненті қандай қызмет атқарады?
DataSourse компоненті қайда орналасқан?
DataSourse компоненті қандай қызмет атқарады?
№11 практикалық жұмыс
Тақырыбы: Жазбалармен жұмыс.
Мақсаты: Insert, Post әдістерінің қызметтерін меңгеру.
Кестедегі жазбалар бойынша көшуді DBNavigator компонентінің көмегінсіз де жүзеге асыруға болады.
Қадам1. Форма бетіне төрт батырма орнатып, оның Caption қасиетіне келесі сәйкес мәндерді беріңіз: Бірінші (First), Келесі (Next), Алдыңгысы (Prior), Соңгысы (Last). Әр батырма үшін OnClick оқиғасының өңдеуішін құрып, оған сәйкес кодты жазамыз, мысалы Келесі батырмасына арналған код келесі түрде болады: procedure TForm1.Button3Click(Sender:TObject); begin
Table1.Next; end;
Қадам2. Кесте жолдарына жаңа жазбаларды енгізу. Форма бетіне алты Edit(1-6) компонентін және бір MaskEdit1 компонентін, сонымен қатар жеті Label (1-7)
компонентін және Button1 компонентін орнатамыз. Label (1-7) компонентінің Caption қасиетіне келесі сәйкес мәндерді беріңіз: Сынақ кітапшасының №, Фамилия, Аты, әкесінің аты, Факультет, Топ, Дата. Button1 компонентінің Caption қасиетіне келесі сәйкес мәнді беріңіз: Жазба қосу. MaskEdit1 компонентінің Text қасиетін шақырып, оның Input Text жолына кез келген датаны, мысалы, 01.01.2002, енгізіп, Ok батырмасын басыңыз.
ҚадамЗ. Жазба қосу батырмасын екі рет шертіп, оған келесі кодты енгізіңіз:
procedure TForm1.Button7Click(Sender:TObject);
var k, i: integer;
begin
k:=0;
Table1.First;
for i:=1 to Table1.RecordCount do begin
if Table1.FieldByName('NZachet').AsString = Editl.Text then k:=k+1; Table1.Next; end;
if k>0 then begin
ShowMessage('Сынақ кітапшасының № сәйкес мәліметтер бар!!!');
Edit1.SetFocus;
exit; end;
else begin
Table 1.Insert;
Tablel. FieldByName('NZachet').AsString := Editl.Text; Tablel. FieldByName('FamS').AsString := Edit2.Text; Tablel. FieldByName('NameS').AsString := Edit3.Text; Tablel. FieldByName('PatS').AsString := Edit4.Text; Tablel. FieldByName('FaculS').AsString := Edit5.Text; Tablel. FieldByName('GroupS').AsString := Edit6.Text; Tablel. FieldByName('DataPost').AsString := MaskEdit1.Text;
Table1.Post;
end; end;
Қадам4. Форма бетіне Button8 компонентін орнатып, Caption қасиетіне келесі сәйкес мәнді беріңіз: Жазбаны кетіру. Оның OnClick оқиғасының өңдеуішіне келесі кодты жазыңыз:
procedure TForm1.Button8Click(Sender:TObject); begin
if MessageDlg (Сіз расында да жазбаны кетіресіз ба?',mtConfirmation, [mbYes, mbNo],0)=mrYes then
Table1.Delete; end;
Қадам5. Форма бетіне Button9 компонентін орнатып, Caption қасиетіне келесі сәйкес мәнді беріңіз: Барлығын кетіру. Оның OnClick оқиғасының өңдеуішіне келесі кодты жазыңыз:
procedure TForm1.Button9Click(Sender:TObject); begin
if MessageDlg(Сіз расында да барлық жазбаны кетіресіз ба?',mtConfirmation, [mbYes, mbNo],0)=mrYes then begin
Table1.First;
for i:=1 to Table1.RecordCount do begin
Table1.Delete;
Table1.Next;
end; end; end;
Тапсырма:
Жатақхана формасына жазбалар бойынша көшуді ұйымдастырыңыз.
Кесте жолдарына жаңа жазбаларды енгізуді ұйымдастырыңыз.
Жазбаларды кетіруді ұйымдастырыңыз
Тақырыпқа байланысты бақылау сұрақтары:
Жазбалар бойынша көшуді қалай ұйымдастырамыз?
Edit компонентіне мәліметтер базасының өрісін қалай меншіктейміз?
Жазбаны кетіруді қалай ұйымдастырамыз?
№12 практикалық жұмыс
Достарыңызбен бөлісу: |