nmComp:= ctr.Name;Break;
end;
end;
end;
if nmComp<>'' then ShowMessage(nmComp);
//Отладочная строка:
fmMain.Caption:= IntToStr(XYPoint.x)+'-'+IntToStr(XYPoint.y)+' / '+
IntToStr(R.Left)+'-'+IntToStr(R.Top)+'-'+
IntToStr(R.Right)+'-'+IntToStr(R.Bottom);
end;
-
Жобаны қайтадан орындауға жіберіңіз және тасымалдау аяқталғаннан кейін программа DBImage компонентінің атының дұрыстығы туралы хабар беретініне көз жеткізіңіз.
-
Бізге алгоритмнің d) және e) пункттерін іске асыру қалды. Жұмыс сенімді болуы үшін қолданушыға .bmp кеңейтілуі бар файлдарды тасымалдауға рұқсат береміз. Ол үшін мәтінге төменде қалың шрифтпен берілген жолды қосып, (отладочную) жолды алып тастаңыз :
procedure TfmMain.WMDropFiles(var Msg: TMessage);
var j:integer;
R:TRect;
ctr:TControl;
dbIM:TDBImage;
begin
nmComp:='';ctr:=nil;dbIm:=nil;
DragQueryFile(THandle(Msg.WParam),0,drFile,SizeOf(drFile));
DragQueryPoint(THandle(Msg.WParam),XYPoint);
DragFinish(THandle(Msg.WParam));
for j := 0 to ComponentCount-1 do begin
if (Components[j] is TDBImage) then begin
ctr:= Components[j] as TControl;
R.Left :=ctr.Left+paLeft.Left;R.Top :=ctr.Top+paLeft.Top;
R.Right := R.Left+ctr.ClientWidth;R.Bottom :=R.Top+ctr.ClientHeight;
With R do
if (XYPoint.x >Left) and(XYPoint.x
(XYPoint.y >Top) and(XYPoint.y
nmComp:= ctr.Name;Break;
end;
end;
end;
if nmComp<>'' then begin
dbIM:=ctr As TDBImage;
if not(dbIm is TDBImage) then Exit;
if dbIM=nil then Exit;
if not(ExtractFileExt(drFile)='.bmp') then Exit;
try
if dbIM.DataSource.State <> dsEdit then dbIM.DataSource.Edit;
dbIM.Picture.LoadFromFile(drFile);
dbIM.DataSource.DataSet.Post;
except
ShowMessage('Ошибка записи в БД изображения из файла:'+#13#10+drFile);
end;
end;
end;
Әртүрлі нақты суреттерді формаға тасымалдау программасының жұмысын тексеріңіз:
17-сурет – Іске қосқанда шығатын терезе
Бақылау сұрақтары
-
MS Access көмегімен ДБ қалай құрылады?
-
Access-те құрылған ДБ-ны Delphi ортасымен қандай компоненттердің көмегімен байланыстыруға болады?
-
Фильтрді қалай жасауға болады?
Зертханалық жұмыс №3 «Телефон анықтамасы» деректер қорын басқару жүйесін құру
Зертханалық жұмыстың мақсаты: Database Desktop утилитасын қолданып кесте құру оны Delphi-мен байланыстыру. «Телефон анықтамасы» ДҚБЖ алдын ала жобалап, меңгерілген теориялық мәліметтерге сүйеніп жүйені құру.
Зертханалық жұмысты орындаудың тәртібі
«Телефон анықтамасы» деректер қорын құру және оны индекстеу.
Қарапайым электронды Телефон анықтамасының деректер базасын құрудың мысалын қарастырайық. Әр адам үшін оның аты-жөні, тегі, туған жылы, күні, жынысы, үйдің және жұмыс телефоны жазылады. Адамдар жайлы мәліметтерді сақтау үшін People атты кестені пайдаланамыз.
People деректер базасының кестесінің структурасының сипаты:
Ключ
|
Имя поля
|
Тип
|
Размер,
байт
|
Дополнительно
|
Описание
|
#
|
IDPeople
|
Счетчик
|
|
Обязательное, ключевое
|
Идентификатор записи
|
|
Family
|
Строка
|
30
|
Обязательное
|
Фамилия
|
|
Name
|
Строка
|
15
|
|
Имя
|
|
SecName
|
Строка
|
15
|
|
Отчество
|
|
Birthday
|
Дата
|
|
|
День рождения
|
|
Sex
|
Логическое
|
|
Обязательное
|
Пол
|
|
Notes
|
Memo
|
100
|
|
Комментарий
|
Бұл кестеге кілттік өріс болатын IDPeople өрісі жасанды түрде қосылды. Егер бір адамның тек бір телефоны ғана бар болса, онда біз People кестесіне Tel өрісін қосып, сонымен аяқтаумызға болар еді. Бірақ бір адамның бірнеше үй және жұмыс телефондары болуы мүмкін. Егер бір ғана кестені қолдансақ, онда кестеде адамдар жайлы мәлімет жолдары телефондар санына сәйкес болу керек. Ол өте ыңғайсыз және қателер санының өсуіне әкеліп соғады. Сондықтан телефондар жайлы мәліметтер бөлек People кестесімен байланысқан Tel кестесі қолданады.
Tel деректер базасының кестесінің структурасының сипаты:
Кілт
Ключ
|
Өріс атауы
Имя поля
|
Тип
Түрі
|
Размер,
Байт
Өлшемі
|
Дополнительно
Қосымша
|
Описание
Сипаттау
|
#
|
IDTel
|
Счетчик
|
|
Ключевое
|
Идентификатор записи
|
|
IDPeople
|
Число
|
4
|
Обязательное, индексированное
|
Идентификатор человека
|
|
Number
|
Строка
|
9
|
Обязательное
|
Номер телефона
|
|
TypeTel
|
Строка
|
4
|
|
Тип телефона
|
IDPeople – басқа кестедегі счетчик типті өріспен байланыс орнату үшін қолданылатын өріс ұзын бүтін және индектелген типті болу қажет. Сөйтіп, «Телефон анықтамасы» деректер базасының құрылымы екі байланысқан People және Tel кестелерінен тұрады. People кестесі негізгі болады, ал байланыс IDPeople өрістері арқылы орнатылады.
Біздің мәліметтер қорымызды құруға кірісейік:
-
DataBase Desktop 7.0 бағдарламасын қосайық. File|New|Table командасын орындаңыз. Нәтижесінде форматтар тізімінде Paradox 7.0 мәні бар Create Table терезесі ашылады (1-сурет). Біз кестені Paradox 7 форматында құратындықтан бұл терезеде ОК батырмасын басамыз. Нәтижесінде кестенің құрылымы анықталатын Create Paradox 7 Table (Untitled) терезесі ашылады. Біріншіден People кестесін құрыңыз.
1-сурет – Create Table терезесі
-
Кестенің өрістерін анықтаңыз.
-
Құрылымды сипаттаудың бірінші жазбасында Field Name бағанында IDPeople мәнін анықтап келесі өріске өту үшін Тab батырмасын басыңыз.
-
Кейін Type бағанында пробелды басып мәндер тізімінен +(Autoincrement) мәнін таңдап келесі өріске өту үшін Tab батырмасын басыңыз.
-
Келесі Key бағанында ағымды өрістің кілттік екенін анықтау үшін пробелды басыңыз. Кейін бұл бағанда жұлдызша белгісі пайда болады.
-
Тышқан тетігі арқылы Required field (міндетті өріс) қосыңыз. Кейін Key бағанын таңдап Tab батырмасын басыңыз.
Келесі өрістер сәйкесінше типтерді таңдап толтырылады; тек Family, Name, SecName және Notes өрістері үшін Size бағанында сәйкес ұзындығын анықтау қажет. Ал Required field Family және Sex өрістері үшін қосылады. Келесі өрістер кілттік болмайтынын және олар үшін Кеу бағаны толтырылмайтынын белгілеп кеткен жөн. Birthday өрісі үшін Picture (Шаблон) параметрін келесідей орнату қажет. Енгізуді өңйлататын және тексеру үшін Assist (көмекші) батырмасын басамыз (2-сурет).
2-сурет – Assist арқылы шаблонды тағайындау терезесі
Мұнда Picture жолында шаблонның тексті енгізіледі. Оның дұрыстығын Verify Sintax батырмасы арқылы тексеруге болады. Ал Sample Value жолына енгізілген шаблонға сәйкес мысал енгізіледі. Тексері Test Value батырмасын басу арқылы жүзеге асады. Батырманы басқаннан кейін тексерудің нәтижесін хабарлама түрінде көруге болады. #[#]:#[#]:#[#] {AM,PM}; шаблонын таңдаңыз. Мұндағы #[#]:#[#]:#[#] – уақыт, дата – түсетін тізімнен Sample Picture-ны таңдап, Use батырмасын басыңыз. Енді Picture енгізу жолында {AM,PM}; бөлігін өшіріп тастаңыз. Себебі бізге тек дата ғана керек. Кейін ОК батырмасын басыңыз.
3-сурет – People кестесін толтыру
-
Кестені Save As батырмасы арқылы People.db атымен сақтаңыз (3-сурет). Кейін Options тобынан Display Table-ды активтеу қажет. Ол кестені сақтаған соң кесте мәліметтермен жұмыс істеу үшін экранда көрсетілу үшін қажет.
-
Ашық ксте оны тек мәліметтерді қарауға ғана рұқсат етеді. Table|Edit Data командасын не F9 батырмасын басыңыз. Енді кестеге бірнеше жазуларды енгізіңіз.
-
Енді Tel кестесін құрыңыз (4-сурет).
4-сурет – Tel кестесін толтыру
Ол үшін People кестесін құрғандағы әрекеттерді Tel кестесіне сәйкес орындаңыз. Мұнда тек бір ғана өзгешелік бар. Мұнда IDPeople өрісінде екінші индекс құру қажет. Ол келесідей орындалады:
-
5.1 Table Properties түсетін тізімде Secondary Indexes қасиетін таңдаңыз.
-
5.2 Пайда болған Define батырмасын басыңыз.
-
5.3 Define Secondary Indexes терезесінде Field тізімінде IDPeople мәнін таңдап ОК батырмасын басыңыз (5-сурет).
5-сурет – Индексты орнату терезесі
-
5.4 Пайда болған Save Index As терезесінде IDPeopleIndex жолын енгізіп ОК батырмасын басыңыз (6-сурет).
6-сурет – Сақтау терезесі
-
6. Кестені Tel.db атымен сақтаңыз.
-
7. Кестелер арасында байланыс орнатыңыз.
-
7.1 «Телефон анықтамасы» деректер базасының кестелерін сақтаған буманы жұмыс бумасы ретінде орнатыңыз. Ол үшін File|Working Directory командасын орындап, ашылған терезеде сәйкес буманы таңдаңыз.
-
7.2 Tel.db кестесін ашыңыз.
-
7.3 Table|Restructure командасын орындап, нәтижесінде сіздің алдыңызда кестенің құрылымын анықтайтын керезе ашылу тиіс.
-
7.4 Table Properties түсетін тізімде Referential Integrity қасиетін таңдаңыз.
-
7.5 Пайда болған Define батырмасын басыңыз.
-
7.6 «Referential Integrity» терезесінде Field тізімінде IDPeople[I] мәнін таңдаңыз да тізімнің қасындағы оңға бағытталған көрсеткішті басыңыз.
-
7.7 Table тізімінде People мәнін таңдаңыз да тізімнің қасындағы солға бағытталған көрсеткішті басыңыз. Терезенің ортасында кестелердің байланысы схема түрінде көрсетіледі. Кейін «Referential Integrity» терезесінде ОК батырмасын басыңыз.
-
7.9 «Save Referential Integrity As» терезесінде PeoplesTel байланыс атауын жазып ОК батырмасын басыңыз. Нәтижесінде кесте құрылымын анықтайтын терезенің оң жағында орналасқан тізімде енгізілген атау пайда болады.
-
7.10. Құрылымды анықау терезесінде Save батырмасын басыңыз.
8. Table|Edit Data ны пайдаланып кетеге бірнеше жазулар енгізіңіз (7-сурет).
9. Tel.db кестесін жабу үшін File|Close командасын орындаңыз.
7-сурет – Өңдеу режиміндегі кесте
«Телефон анықтамасы» деректер базасының кестелеріндегі мәліметтерді өңдеу.
-
People.db құжатын ашыңыз.
-
Table|Edit Data командасын орындаңыз. Енді кестедегі мәліметтерді өңдеуге болады.
-
Кестедегі кез келген жазбаны активтеп өңдеңіз.
-
Сөйтіп бірнеше жазбаларды өңдеңіз.
-
Insert немесе Record|Insert командаларының көмегімен жазбаны орнатыңыз. Жазба қазіргі кезде активтелген жазбадан соң орнатылады.
-
Кез келген жазбаны өшіріп тастаңыз. Ол үшін кез келген жазбаны активтеп Ctrl+Del немесе Record|Delete командаларын орандаңыз. Бірақ физикалық өшіру орындалу үшін бізге Pack Table тетігін активтеу керек. Ол үшін Table|Restructure-ге кіріп тетікті активтеп Save батырмасын басыңыз.
-
Record менюінің командаларымен кесте ішінде орынауыстыруды қарап көріңіз.
-
Tel.db кестесімен де сондай әрекеттерді орындаңыз. Кестелердегі мәліметтерді өзгерту кезінде қателер жиі пайда болады. Ол екі кестенің байланыс нәтижесінде болады. Сондықтан мәліметтерді форма түрінде өңдеген жөн. Оның тиімділігін келесі зертханалық жұмыстарда көресіз.
«Телефон анықтамасы» деректер базасының People кестесінің мәліметтерін сұрыптау.
-
Tools|Utilities|Sort командасын таңдаңыз.
-
Ашылған «Select Table» сұхбат терезесінде People.db құжатын таңдаңыз. Open батырмпасын басыңыз. Нәтижесінде «Sort Table:...People.db» терезесі ашылады.
-
осы терезеде Sorted Table тобында New Table тетігі активтелген. Онда сұрыптаудың нәтижесін сақтайтын құжаттың атын енгіземіз, яғни People-s.
-
Сол топтың Display sorted table тетігін сұрыптаудың шарттарын белгілеген соң оның нәтижесін көру үшін активтеңіз. Ал Sort just selected fields тетігін сол қалпында қалдырыңыз себебі біз барлық кестені сұрыптаймыз. Бұл дегеніміз Sort Oder тізімінде ғана емес, Fields тізімінде анықталған барлық өрістер бойынша.
-
Терезеде тағы екі тізім бар, олар сол – Fields – кестеге кіретін барлық өрістер атауы бар, оң - Sort Oder – сұрыптау жүргізілетін өрістер атауы бар тізімдер. Сол жақтағы тізімнен Family өрісін таңдап, тізімнің қасындағы оңға бағытталған көрсеткішке басып оны оң жақтағы тізімге орналастырыңыз.
-
Біз кестені Family өрісі бойынша және өсу ретімен сұрыптайтын боламыз. Оған Sort Oder тізімінің алдында + белгішесі тұрғаны сәйкес. Керек болса, біз сұрыптау түрін Sort Direction батырмасы арқылы өзгертуімізге болады. Мұнда тағы өрістердің ретін Change oder батырмасы арқылы өзгертуге болады.
-
Барлық әрекеттерді орындап болған соң ОК батырмасын басыңыз. Сіздің алдыңызда Фамилиялар өрісі алфавит бойынша сұрыпталған кесте шығады.
«Телефон анықтамасы» деректер базасының мәліметімен жұмыс істеу үшін подформасы бар форма құру.
-
Басты менюдің File|New Application командасы арқылы жаңа проекті ашамыз. Caption қасиетін «Информация о людях» деп өзгертеміз. Бұл атау біздің деректер базасының атауы болады.
-
Форманы MyExunitDB.pas атауымен сақтаймыз, ал проекті MyExampleDB.dpr деп сақтаймыз. Ол үшін File|Save Project As командасын орындаймыз. Онда құжат атауын таңдайтын терезе ашылады, бұнда біз модуль үшін буманы таңдаймыз. Модульге MyExUnitDB деген атау береміз де кейін проектіге MyExampleDB атауын береміз.
-
Form1 формасына People.db құжатында орналасқан компоненттерді байланыстыру үшін компоненттерді орналастырамыз.
-
DataAccess парағынан Table компонентін (8-сурет) орналастырып TableName қасиетіне People.db-ны орналастырамыз. Мұнда бағдарлама мен People.db кестесі байланыты. Кейін Table1 компонентінің Active қасиетін True деп орнатамыз. Ол Кестенің мәндерін көрсетеді.
-
8-сурет – Table1 компонентін орналастыру
Осы беттен DataSource компонентін орналастырамыз. Ол компоненттерді мәліметтермен байланыстырады. DataSource1 компонентінің DataSet қасиетін Table1 деп белгілейміз. Бұдан кейін компоненттер кестедегі мәліметтерге рұқсат алады.
-
Tel.db кестесіндегі мәліметтермен байланыс орнату үшін алдыңғы пунктегі әрекеттерді орындап, тек Table2 және DataSource2 компоненттері Tel.db кестесімен байланытады да, DatabaseName және DataSet қасиеттері сәйкесінше Table2 және DataSource2 мен байланысты.
-
Деректер базасының мәліметтерін екі кестеден көрсететін подформасы бар форма құру үшін деректер жиындар арасында байланыс орнатамыз. Ол үшін Table2 компонентін ерекшелеп, MasterSource қасиетіне DataSource1 мәнін орнатамыз. Тышқан тетігі арқылы MasterFields қасиетін активтейміз. Available Index енгізу жолында IDPeopleIndex мәнін орнатамыз (9-сурет), себебі байланыс индекстелген өрістер арқылы жүзеге асады. Кейін сол жақтағы тізімнен IDPeople мәнін және оң жақтағы тізімнен IDPeople мәнін таңдап Add батырмасын басыңыз. Сонымен байланыс орнатылды, ОК батырмасын басыңыз. Нәтижесінде IndexName қасиеті IDPeopleIndex ал байланыста қатысатын IDPeople өріс аты MsterFields қасиетінде көрсетіледі.
9-сурет – Tel.db кестесінің MasterField қасиеті
-
Формаға деректер базасын көрсететін компоненттерді орналастырамыз. Ол үшін келесі әрекеттерді орындаймыз:
-
Standart бетінен Label компонентін орналастырып, Caption қасиетін «Фамилия, имя, отчество» деп өзгертеміз.
-
DataControls бетінен 3 DBEdit компонентін Label1 компонентінің астына қатарынан орналастырамыз. Барлық компоненттер үшін DataSource қасиетін DataSource1, ал DataField қасиетін сәйкесінше Family, Name және SecName деп орнатамыз.
-
Standart бетінен тағы бір Label компонентін таңдап оны DBEdit1 компонентінің астына орналастырып, Caption қасиетін «День Рождения» деп ауыстырамыз.
-
DataControls бетінен DBEdit компонентін орналастырамыз. DataSource қасиетіне DataSourcе1 мәнін, ал DataField қасиетіне Birthday қасиетін орнатамыз.
-
Бұл жлдың оң жағына DataControls парағынан DBCheckBox компонентін орналастырып, Alignment қасиетін LeftJustify, ал Caption қасиетін – «Пол» деп орнатамыз. Кейін оның DataSource қасиетіне DataSource1 мәнін, ал DataField қасиетін тізімнен Sex мәнін таңдаймыз.
-
Label2 компонентінің астына Standart бетінен тағы бір Label компонентін орналастырып, Caption қасиетін «Комментарий» деп өзгертеміз.
-
Бұл компоненттің астына DataСontrols бетінен DBMemo компонентін орналастырамыз. Оның өлшемін горизонталь өлшемін бүкіл формаға созып, ал вертикаль өлшемін кішкене қысқартамыз. Оның DataSource қасиетін DataSource1 деп онратамыз, ал DataField қасиетін Notes мәнін таңдаймыз.
-
DataControls бетінен форманың жоғары оң жағына DBNavigator компонентін орналастырамыз. Оның DataSource қасиетін DataSource1 деп онратамыз.
-
DataControls бетінен формаға DBGrid компонентін формадағы барлық компоненттерден төмен орналастырамыз. Оның вертикаль өлшемін сәл қысқартамыз. Оның DataSource қасиетін DataSource2 деп онратамыз. Егер жоғарыдағы әрекеттер дұрыс орындалса, онда DBGrid1 компонентінде Tel.db кестесінің мәліметтері шығарылады.
-
DBGrid компонентінде көрсетілетін өрістер тізімін анықтаймыз. Ол үшін келесі әрекеттерді орындау қажет:
8.1 Тышқан тетігі көмегімен Columns қасиетін активтеп, Editing DBGrid1.Columns кестесінің өрістер тізімінің редакторын шақырамыз.
10-сурет – Бағандарды өңдеудің терезесі
8.2 Бұнда Add батырмасын басамыз. Пайда болған «0-TColumn» жазбасын ерекшелейміз. Объектілер инспекторы көмегімен FieldName қасиетіне Number мәнін орнатамыз. Күрделі Titel қасиеті үшін Caption параметріне Номер мәнін береміз.
8.3 Кестенің өрістер тізімінің редакторының терезесінде Add батырмасын басамыз. Пайда болған «1-TColumn» жазбасын ерекшелейміз. Объектілер инспекторының көмегімен FieldName қасиетіне Type мәнін орнатамыз. PickList қасиетін активтеп, пайда болған текстік редакторда келесі екі жолды енгіземіз:
Дом.
Раб.
Осы әрекеттерден кейін ОК батырмасын басамыз. Сөйтіп біз телефон типін анықтайтын мәндер тізімін анықтадық. Кейін күрделі Titel қасиеті үшін Caption нараметріне Тип мәнін анықтаймыз.
8.4 Кестенің өрістер редакторымен жұмысты аяқтау үшін терезенің шетіндегі стандартты батырманы басу жеткілікті.
9. Standart бетінен формаға Label компонентін DBGrid1 компонентінің жоғары сол жағына орналастырамыз да оның Caption қасиетін Телефоны мәніне ауыстырамыз.
10. DataControls бетінен формаға DBNavigator компонентін орнатамыз. Оны DBGrid1 компонентінің жоғары оң жағына орналастырамыз. DataSource қасиетіне DataSource2 мәнін орнатамыз.
11. Басты менюдің Run|Run командасы арқылы бағдарламаны іске қосамыз.
12. Подформасы бар формаға мәліметтер енгізудің өз ерекшеліктері бар. Оларды белгілеу үшін мәліметтерді формаға енгіземіз. Ол үшін келесі әрекеттерді орындауымыз қажет. Деректер базасының жазбаларындағы навигатордың панелінде «Плюс» батырмасын басыңыз. Бұдан кейін People кестесінде жаңа жазба пайда болады, оған адам жайлы мәлімет енгіземіз. «Фамилиясы, Аты, Әкесінің аты» өрістеріне сәйкес «Арманов» «Канат» «Мурзатович» мәндерін енгізіп, «День рождения» өрісіне 14.01.79 мәнін енгіземіз. «Пол» тетігі қосылған болу қажет. Навигатордың «» батырмасын басамыз. Құрылған жазба People кестесінде сақталады. Адам туралы мәліметтерді телефонды енгізудің алдында сақтау қажет, әйтпесе олар сол адамға сәйкес болмайды, ал деректер базасында артық жазбалар саны өте көп болып кетеді. Пайдаланушы ондай әрекетті орындай алмау үшін DBGrid1 компонентіне мәліметтерді енгізуге және DBNavigator2 батырмасын баскға рұқсат етпеу қажет. Ол үшін келесі әрекеттерді орындау қажет:
12.1.1 бағдарламаның жұмысын тоқтатыңыз. Формадағы DBNavigator1 компонентін таңдап, объектілер инспекторындағы Events қалтасына өтіңіз.
12.1.2 BeforeAction жолында тышқан тетігінің оң жақ батырмасын екі реет шертіп, MyExUnitDB.pas терезесінде келесі процедураны толықтырыңдар:
Form1.DBNavigator1BeforeAction келесі фрагментпен:
if ((Button=nbInsert) or (Button=nbEdit)) then
begin
DBNavigator2.Enabled:=false;
DBGrid1.Enabled:=false;
end;
if Button=nbPost then
begin
DBNavigator2.Enabled:=true;
DBGrid1.Enabled:=true;
end;
12.1.3 Өзгертулерді сақтап бағдарламаны іске қосыңыз.
12.2 Төменгі навигатор панеліндегі «+» батырмасын басыңыз. Tel кестесінде жаңа жазба құрылады. «Номер» ұяшығына телефон номерін енгізейік. «Тип» ұяшығында ашылатын тізімде «дом» типін таңдайық.
12.3 Төменгі навигаторда «+» батырмасын басамыз. «» батырмасын сақтау үшін басу қажет емес, себебі енгізу кезінде мәліметтер автоматты түрде сақталады.
13. Бағдарламаның жұмысын терезі жабу батырмасын басумен аяқтаймыз.
14. File|Save All командасы арқылы барлық өзгертулерді сақтаймыз.
Ескертулер:
-
Егер бір жазбаны өшіріп тастау керек болса, онда сәйкес жолды белгілеп навигатордағы «-» батырмасын басыңыз. Ал жазбаларға өзгертулер енгізу қажет болса, сәйкес элементті таңдап төменгі навигатордың «Стрелка вверх» батырмасын басу қажет. Барлық өзгертулерді енгізіп болған соң «» батырмасын басамыз.
-
People кестесінен жазбаны өшіріп тастау үшін біріншіден Tel кестесіндегі сәйкес барлық жазбаларды өшіріп тастау қажет. Ондай өшірулерді қолмен жасамау үшін Form1.DBNavigator1BeforeAction процедурасын келесі фрагментпен толықтыру қажет:
if Button=nbDelete then
begin
Table2.First;
while not Table2.Eof do
begin
Table2.Delete;
end;
end;
Достарыңызбен бөлісу: