ПОӘК 042-18-12.1.89/03-2013
№ 1 басылым
18.09.2013ж.
40 беттің 20-сі
Мұнда:
KeyFields – іздеу жүргізілетін өріс атауы;
KeyValues – KeyFields-та берілген өрістің ізделінді мәні;
Options – параметр екі мәннен тұрады;
IoCaseInsensitive - әріптер регистрі ескерілмейді;
IoPartialKey – мәндердің бөлшектік сәйкестігіне рұқсат етіледі.
Нәтижелі іздеуде функция True мәнін қайтарады, нәтиже қанағаттанарсыз
болғанда – False.
Берілген сипаты бойынша іздеу үшін оператор сипатының мысалы:
If ADOTable1.Locate(‘Number’, 123, []) then S1 else S2;
Бұл мысалдан нені көруге болады? Іздеу Number өрісі бойынша жүргізіледі,
өріс мәні 123-ке тең болатын бірінші жазу ізделінеді, іздеудің барлық параметрлері
өшірулі.
Бір ғана іздеу сипаты бойынша іздеу жүргізу мысалының үзіндісі:
If ADOTable1.Locate(‘Fio’, Edit1.Text, []) then S1 else S2;
Нәтижелі іздеуде S1 процедурасы шақырылады, нәтижесізе – S2.
Locate әдісінде бірнеше өрістер бойыша іздеу жүргізгенде KeyValues параметрі
Variant типті массив болып табылады. Бірнеше іздеу сипаты бойынша жүргізілетін
іздеу мысалынан үзінді:
If
ADOTable1.Locate(‘Name;
Post’,
VarArrayOf(‘П’,
‘Инженер’),
[IoCaseInsensitive, IoPartialKey]);
Іздеу Name және Post өрістері бойынша жүргізіледі; Name өрісінің мәні п және
П әріптерінен басталатын, ал Post өрісігің мәні
Инженер мәнін қабылдайтын
бірінші жазу ізделінеді. Әріп регистрі ескерілмейді.
Екі іздеу сипатының берілген мәні бойынша іздеу үшін оператор мысалы:
If ADOTable1.Locate(‘Fio; Rs’, VarArrayOf([Edit1.Text, // - фамилия б/ша
MaskEdit1.Text]), [])
// - стипендия
б/ша
then S1 else S2;
Келтірілген мысалда ізделінетін сипаттар мәні Edit1.Text, MaskEdit1.Text
қасиеттерінен алынады.
Lookup функциясының тақырыпшасы:
Function Lookup (const KeyFields: String; const KeyValues: Variant; const
ResultFields: String): Variant;
Функция анықталған шартты қанағаттандыратын жазуларды іздеуді жүргізеді,
бірақ Locate сияқты табылған жазуға бағдаршаны апармайды, ол табылған жазудың
өрістерінен деректерді ResultField тізімінің өрісіне санайды.
Деректер жинағын модификациялау
Деректер жинағын модификациялау жазуларды редакторлеу, қосу, өшіру
амалдарынан тұрады. Деректер жинағының модификайиялау мүмкіндігін басқару
ReadOnly логикалық қасиетінің көмегімен орындалады. ReadOnly = True болғанда
деректер жинағын модификациялау рұқсат етілмемейді. ADOTable компонентінің
деректер жинағы редактрлеу, көру, қою, іздеу режимдерінің бірінде бола алады.
Деректер жинағын редакторлеуді визуалдық компоненттер көмегімен жүргізуге
боады, мысалы, DBEdit редакторы немесе DBGrid торы арқылы. Деректер жинағы
ПОӘК 042-18-12.1.89/03-2013
№ 1 басылым
18.09.2013ж.
40 беттің 21-сі
редакторлеу режиміне автоматты түрде көшеді, егер DataSource компонентінде
визуалды компоненттер үшін қасиет AutoEdit = True болса. Егер AutoEdit = True
болса – модификациялауға болмайды.
Егер әртүрлі формаларда орналасқан бірнеше байланысқан деректер жинағы
модификацияланса, онда редакторлеуден соң барлық деректер жинағын жаңарту
керек. Жаңарту мысалына үзінді:
ADOTable1.Edit;
// - редакторлеу режимін орнату
ADOTable1.FieldByName(‘Name’).AsString := Edit1.Text; // - редакторлеу
ADOTable1.Post;
// - өзгертулер енгізу
ADOTable1.Refresh;
// - ADOTable1 жазуларын жаңарту
Form2.Table2.Refresh;
// - ADOTable2 жазуларын жаңарту
ADOTable1 компоненті бар Form1 формасының модулінде ADOTable2
компоненті бар Form2 формасының модуліне сілтеме болуы керек.
Жазуларды редактрлеу
Жазуларды редакторлеу олардың өрістерінің мәндерін өзгертуден тұрады.
Редакторлеуді бастар алдында бағдаршаны редакторленетін жазуға орналастыру
керек. Егер деректер жинағы көру режимінде тұрса, онда:
Оны редакторлеу режиміне көшіру – Edit әдісімен;
Жазу өрістер мәнін өзгерту;
Post әдісімен орындалған өзгертулерді бекіту немесе одан бас тарту, осы кезде
деректер жинағы қайтадан бұрынғы қалпына келеді.
Модификация тек қана модификацияланатын деректер жинағы үшін ғана
орындалады. Сондықтан деректер жинағының модифакиялану мүмкіндігін мысалы,
If ADOTable1.CanModify then ADOTable1.Edit; операторымен тексеру керектігі
туады. Модификацияланбайтын деректер жинағын редакторлеу әрекетін болдырмас
үшін программалық тұрғыдан төмендегі әдісті қолдануға болады. Мысалы:
procedure TFom1.btnEditClick(Sender: TObject);
begin
If not Tablel.CanModify then begin
// - модификациялану анализі
Beep;
// - дыбыстық сигналды беру және
MessageDlg ("Нельзя изменять!', mtlnformation, {mbOK],. 0); // -
хабарламаны
Exit;
end;
//- әдістен шығу
Tablel.Edit;
, // - редакторлеу режиміне көшу
End;
Модификациялау процесіне жол бермеуді btnEdit батырманың көмегімен
орындау үшін оның келесі қасиетін орнату керек:
Btnedit.Enabled := False;
Деректер жинағын редакторлеу режиміне келтіргеннен кейін редакторленетін
жазулардың
өріс
мәндерін
визуалды
компоненттер
немесе
меншіктеу
операторларының көмегімен өзгертуге болады. Осы кезде өріс типін ескеру керек
немесе қажет жағдайда мәндерді талап етілген типке келтіруге болады. Мысалы:
ADOTable1.FieldByName ('NZ').AsInteger := StrToInt(Editi.Text); // - өріс – бүтін