Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
25
Добавлен:
28.06.2014
Размер:
25.83 Кб
Скачать
ѓ‹Ђ‚Ђ 23

ђЂЃЋ’Ђ…Њ ‚ ‹ЋЉЂ‹њЌЋ‰ ‘…’€

Љ § «®бм Ўл, б®ў¬Ґбв­®Ґ ЁбЇ®«м§®ў ­ЁҐ Ў § ¤ ­­ле Ё
ЇҐаЁдҐаЁЁ - ­Ґб«®¦­ п ўҐйм. Ћ¤­ Є®, Є®Ј¤  Ї®«м§®ў вҐ«Ё
ЁбЇ®«м§гов ®ЎйЁҐ аҐбгабл, Є®«ЁзҐбвў® ЇҐаҐе®¤Ёв ў Є зҐбвў®, ®Ўлз­®
- ег¤иҐҐ. Ќ® Ё­вҐЈа жЁп ¤ ­­ле Ё бҐвЁ - ­Ґг¬®«Ё¬®Ґ вॡ®ў ­ЁҐ ўаҐ¬Ґ­Ё.
„ ¦Ґ ¤ўҐ Їа®Ја ¬¬л, Є®а४в­лҐ ЇаЁ Ґ¤Ё­®«Ёз­®¬ ў« ¤Ґ­ЁЁ аҐбгаб ¬Ё,
ЇаЁ ўлЇ®«­Ґ­ЁЁ ў ०Ё¬Ґ а §¤Ґ«Ґ­Ёп аҐбгаб®ў ¬®Јгв ᮧ¤ вм Їа®Ў«Ґ¬л.
‚ ¤ ­­®© Ј« ўҐ а бб¬ ваЁў Ґвбп бгйҐбвў® нвЁе Їа®Ў«Ґ¬ Ё п§лЄ®ў®Ґ
®ЎҐбЇҐзҐ­ЁҐ а Ў®вл ў бҐвЁ. ђ бб¬ ваЁў Ґвбп Їа®бв п бҐвм Џќ‚Њ.

23.1. ‡­ Є®¬Ё¬бп б «®Є «м­®© бҐвмо Џќ‚Њ Ё вҐа¬Ё­ ¬Ё

‹®Є «м­ п бҐвм Ї®§ў®«пҐв ¤ўг¬ Ё«Ё Ў®«м襬г зЁб«г Ї®«м§®ў вҐ«Ґ©
б®ў¬Ґбв­® ЁбЇ®«м§®ў вм ¤ ­­лҐ, ¤ЁбЄЁ Ё Ё­лҐ ЇҐаЁдҐаЁ©­лҐ гбва®©бвў .
‘®Ґ¤Ё­Ґ­ЁҐ Џќ‚Њ ў бҐвм вॡгҐв гбв ­®ўЄЁ бҐвҐў®Ј® Їа®Ја ¬¬­®Ј®
®ЎҐбЇҐзҐ­Ёп Ё ®Ў®а㤮ў ­Ёп: ®¤­  Ї« в  ў Є ¦¤®© Џќ‚Њ Ё ᮥ¤Ё­ЁвҐ«м­л©
Є ЎҐ«м. „«п ЁбЇ®«м§®ў ­Ёп FOXPRO ў бҐвЁ вॡгҐвбп бҐвҐў п ўҐабЁп
FOXPRO - FOXPRO/LAN.
‚ Їа®бв®© бҐвЁ ®¤Ё­ Ј« ў­л© Є®¬ЇмовҐа (‘ҐаўҐа «ЁЎ® ” ©«-бҐаўҐа)
ᮤҐа¦Ёв ­  ўЁ­зҐбвҐаҐ бҐвҐў®Ґ Їа®Ја ¬¬­®Ґ ®ЎҐбЇҐзҐ­ЁҐ Ё д ©«л,
ЁбЇ®«м§гҐ¬лҐ ў ०Ё¬Ґ а §¤Ґ«Ґ­Ёп ("а §¤Ґ«пҐ¬лҐ"): ў Їа®бв®© бҐвЁ
¤ўг¬ Ё Ў®«ҐҐ Ї®«м§®ў вҐ«п¬ а §аҐиҐ­® ®вЄалў вм ®¤Ё­ Ё в®в ¦Ґ д ©«
­  ‘ҐаўҐаҐ (” ©«-бҐаўҐаҐ) ¤«п а Ў®вл б ¤агЈЁе Џќ‚Њ бҐвЁ, ­ §лў Ґ¬ле
а Ў®зЁ¬Ё бв ­жЁп¬Ё. Ћ¤­ Є®, а §¤Ґ«Ґ­ЁҐ д ©«®ў ­Ґ ўбҐЈ¤  ЇаЁҐ¬«Ґ¬®, Ё
Ї®н⮬㠯।гᬮв७ в Є¦Ґ ¬®­®Ї®«м­л© ०Ё¬ ЁбЇ®«м§®ў ­Ёп д ©« .
ЏаҐ¤бв ўм⥠Ї®ЇҐаҐ¬Ґ­­®Ґ ЁбЇ®«м§®ў ­ЁҐ § ЇЁбҐ© а §¤Ґ«пҐ¬®© Ѓ„ Student,
ў Є®в®але гЄ § ­ Єгаб ®Ўг祭Ёп, Їа®Ја ¬¬®©, ўла Ў влў о饩 ¤«п Є ¦¤®Ј®
Єгаб  ®в¤Ґ«м­лҐ १г«мв вл, Ё Їа®Ја ¬¬®©, Ё§¬Ґ­по饩 §­ зҐ­Ёп Ї®«п
"Љгаб" ў бўп§Ё б ЇҐаҐў®¤®¬ бв㤥­в®ў ­  ­®ўл© Єгаб. ЌҐ«ҐЇ®бвм в Є®Ј®
"а §¤Ґ«Ґ­Ёп Ѓ„" ®зҐўЁ¤­ . „ «ҐҐ аҐзм Ё¤Ґв ® а §¤Ґ«пҐ¬ле Ѓ„.
Ѓ„ ¬®¦­® ®вЄалвм ў ¬®­®Ї®«м­®¬ ०Ё¬Ґ, Ґб«Ё ®­  ­Ґ ®вЄалв  ­Ё ­ 
®¤­®© ¤агЈ®© а Ў®зҐ© бв ­жЁЁ. •®вп Є®­ЄгаЁагов Ё ўаҐ¬Ґ­ ¬Ё Є®­д«ЁЄвгов
­Ґ б ¬Ё Ї®«м§®ў вҐ«Ё,   ЁбЇ®«м§гойЁҐ а §¤Ґ«пҐ¬л© д ©« Їа®жҐббл,
Ї®а®¦¤ Ґ¬лҐ Ї®«м§®ў вҐ«мбЄЁ¬Ё Їа®Ја ¬¬ ¬Ё, Ё§«®¦Ґ­ЁҐ гЇа®й Ґвбп, Ґб«Ё
гЇ®¬Ё­ овбп Ї®«м§®ў вҐ«Ё. Џ®«м§®ў вҐ«м,Є®в®ал© ®вЄал« Ѓ„ ў ¬®­®Ї®«м­®¬
०Ё¬Ґ, Ґ¤Ё­®«Ёз­® ў« ¤ҐҐв Ґо, Ё Ї®Є  ®­ ­Ґ § Єа®Ґв Ѓ„, ­ЁЄв® ¤агЈ®©
¤®бвгЇ  Є ­Ґ© ­Ґ Ї®«гзЁв. ќв®в б ¬л© "нЈ®ЁбвЁз­л©" ў аЁ ­в ®Ја ­ЁзҐ­Ёп
¤®бвгЇ  ­ §лў ов Ї®«­л¬ Ў«®ЄЁа®ў ­ЁҐ¬. …б«Ё д ©« ®вЄалв ў ०Ё¬Ґ
а §¤Ґ«Ґ­Ёп, ­ЁЄв® ­Ґ ¬®¦Ґв гбв ­®ўЁвм ¬®­®Ї®«м­л© ०Ё¬, ­® ®¤Ё­ Ё§
Ї®«м§®ў вҐ«Ґ© д ©«  ¬®¦Ґв ҐЈ® § еў вЁвм (Ў«®ЄЁа®ў вм), Ї®б«Ґ 祣® ¤агЈЁ¬
Ї®«м§®ў вҐ«п¬ ҐЈ® § ЇЁбЁ бв ­®ўпвбп ¤®бвгЇ­л «Ёим ў ०Ё¬Ґ з⥭Ёп.
ђ §«Ёз ©вҐ Ў«®ЄЁа®ў ­ЁҐ Ё Ї®«­®Ґ Ў«®ЄЁа®ў ­ЁҐ.
Ѓ«®ЄЁа®ў вм ¬®¦­® Ё ўҐбм д ©«, Ё ®в¤Ґ«м­лҐ § ЇЁбЁ; ᤥ« вм нв®
¬®Јгв ­ҐбЄ®«мЄ® Ї®«м§®ў вҐ«Ґ© (Є ¦¤л© § еў влў Ґв бў®о "¤®«о").
Џ®«м§®ў вҐ«м, ўлЇ®«­ЁўиЁ© Ў«®ЄЁа®ў ­ЁҐ, ­ §лў Ґвбп ў« ¤Ґ«м楬 Ў«®ЄЁа®ў ­Ёп.
ђ §Ў«®ЄЁа®ў ­ЁҐ - нв® ®в¬Ґ­  Ў«®ЄЁа®ў ­Ёп. ‡ ЇЁбм ЇҐаҐ¤ ҐҐ Ё§¬Ґ­Ґ­ЁҐ¬
Ў«®ЄЁагов, ЁЎ® ­Ґв Ў®«ҐҐ бва и­®© Є авЁ­л, 祬 ®¤­®ўаҐ¬Ґ­­®Ґ Ё§¬Ґ­Ґ­ЁҐ
§ ЇЁбЁ ­ҐбЄ®«мЄЁ¬Ё Ї®«м§®ў вҐ«п¬Ё. Џ®б«Ґ Ё§¬Ґ­Ґ­Ёп § ЇЁбм ­г¦­® а §Ў«®ЄЁа®ў вм.
Џ®«м§®ў вҐ«о, ­ ¤®«Ј® ¬®­®Ї®«Ё§Ёаго饬㠨«Ё Ў«®ЄЁаго饬㠁„,
४®¬Ґ­¤гов б­Ё¬ вм Є®ЇЁо Ѓ„ Ё ¤Ґ« вм б ­Ґ© ўбҐ, зв® § Ў« Ј®а ббг¤Ёвбп,
б ЇҐаҐалў ¬Ё ­  з ҐЇЁвЁҐ, ®бв ўЁў Ёб室­го Ѓ„ ў а бЇ®а殮­ЁЁ ¤агЈЁе
Ї®«м§®ў вҐ«Ґ©. ЏаЁ ­Ґ®Ўе®¤Ё¬®бвЁ ЇҐаҐ­ҐбвЁ ў ­ҐҐ Ё§¬Ґ­Ґ­Ёп Ї®¬®¦Ґв
Є®¬ ­¤  UPDATE.
ЏаҐ¤бв ўм⥠Ё­го бЁвг жЁо: Ѓ„ § Ў«®ЄЁа®ў ­  Ї®«м§®ў вҐ«Ґ¬,
Їа®зЁҐ Ё«Ё а Ў®в ов б ­Ґ© ў ०Ё¬Ґ з⥭Ёп, Ё«Ё ®¦Ё¤ ов а §Ў«®ЄЁа®ў ­Ёп.
…б«Ё Ўл Ї®«м§®ў вҐ«м 㤮ў«Ґвў®аЁ«бп § еў в®¬ ­Ґ ўбҐ© Ѓ„,   ®в¤Ґ«м­ле
§ ЇЁбҐ©, ў®§¬®¦­®, ­Ґ ЇаЁи«®бм Ўл ¦¤ вм ¤агЈЁ¬. ЏаҐ¤бв ўм⥠¤ «ҐҐ, зв®
¤«п § ўҐа襭Ёп а Ў®вл б Ѓ„ ЇҐаў®¬г Ї®«м§®ў вҐ«о ­г¦Ґ­ ¤®бвгЇ Є ¤агЈ®©
Ѓ„, ­® Єв®-в® "Ї®¦ ¤­Ёз «" Ё ®вЄал« ҐҐ ў ¬®­®Ї®«м­®¬ ०Ё¬Ґ. ’ҐЇҐам
ЇаЁе®¤Ёвбп ¦¤ вм Ё Ґ¬г (  б ­Ё¬ Ё ¤агЈЁ¬). —в®Ўл "бЈгбвЁвм Єа бЄЁ",
¤®Ў ўЁ¬, зв® ўв®а®¬г ў« ¤Ґ«мжг Ў«®ЄЁа®ў ­Ёп ¤«п § ўҐа襭Ёп а Ў®вл б
Ѓ„, вॡгҐвбп ¤®бвгЇ Є ЇҐаў®© Ѓ„ б 楫мо Ё§¬Ґ­Ґ­Ёп § ЇЁбҐ©. Ќ® ЇҐаў п
Ѓ„ § еў зҐ­ . ’гЇЁЄ. ‚®в зв® Ї®«гз Ґвбп, Є®Ј¤  б«ЁиЄ®¬ амп­® "вп­гв
®¤Ґп«® ­  ᥡп" Ё«Ё Ё§®Ўа ¦ ов "б®Ў Єг ­  ᥭҐ", ў« ¤Ґп Ў«®ЄЁа®ўЄ®©,
­® ЁбЇ®«м§гп Ѓ„ «Ёим з бвЁз­®. ’гЇЁЄЁ - ®¤­  Ё§ Їа®Ў«Ґ¬ а Ў®вл ў бҐвЁ.
€в Є, ЇаЁ Ё­вҐ­бЁў­®© а Ў®вҐ б а §¤Ґ«пҐ¬л¬Ё Ѓ„ ¬®­®Ї®«м­л© ०Ё¬
¤®«¦Ґ­ ЁбЇ®«м§®ў вмбп в®«мЄ® ў ўЁ¤Ґ ЁбЄ«о祭Ёп. —в®Ўл б®Єа вЁвм ®ЎйЁҐ
(Ё б®Ўб⢥­­лҐ) Ї®вҐаЁ ўаҐ¬Ґ­Ё, Ї®«м§®ў вҐ«п¬ бҐвЁ б«Ґ¤гҐв:
 )­Ґ § еў влў вм ¤ ­­лҐ ­  Ў®«ҐҐ ¤«ЁвҐ«м­л© ЇҐаЁ®¤, 祬 ®ЎкҐЄвЁў­®
­Ґ®Ўе®¤Ё¬®; ­ ЇаЁ¬Ґа, ­Ґ ­г¦­® Ї®« Ј вмбп ­   ўв®¬ вЁзҐбЄ®Ґ
а §Ў«®ЄЁа®ў ­ЁҐ ¤ ­­ле Ї® ®Є®­з ­ЁЁ аҐиҐ­Ёп § ¤ зЁ;
Ў) ®вЄалў вм Ѓ„ ў ०Ё¬Ґ а §¤Ґ«Ґ­Ёп, Ґб«Ё Ё§¬Ґ­Ґ­Ёо ¤ ­­ле
ЇаҐ¤иҐбвўгҐв Ё­®Ґ Ёе ЁбЇ®«м§®ў ­ЁҐ,   § еў в Ѓ„ ®бгйҐбвў«пвм Ї®§¤­ҐҐ;
ў) бв६Ёвмбп Є Ї®«­®© Ё«Ё ўаҐ¬Ґ­­®© § ¬Ґ­Ґ Є ¦¤®Ј® § еў в  Ѓ„
§ еў в®¬ ®в¤Ґ«м­ле § ЇЁбҐ© Ё«Ё - ў FOXPRO - ЈагЇЇ § ЇЁбҐ©;
Ј) ­Ґ¬Ґ¤«Ґ­­® ®в¬Ґ­пвм ўбҐ бў®Ё Ў«®ЄЁа®ў ­Ёп, Ґб«Ё ­ҐгбЇҐи­  Ї®ЇлвЄ 
®зҐаҐ¤­®Ј® Ў«®ЄЁа®ў ­Ёп Ё ®б®§­ ­  ЎҐбЇ®«Ґ§­®бвм ¤ «м­Ґ©иҐЈ® ®¦Ё¤ ­Ёп;
¤) Ёбб«Ґ¤®ў вм ўҐа®пв­®бвм вгЇЁЄ®ў Ё ®Ў¤г¬лў вм ¬Ґал Ёе ЇаҐ¤®вўа йҐ­Ёп.
Џ®б«Ґ¤­ҐҐ ¤Ґ« Ґвбп ў ЄагЈг Ї®«м§®ў вҐ«Ґ© б гз бвЁҐ¬  ¤¬Ё­Ёбва в®а  Ѓ„.
Ћв¬Ґ­Ёвм Ў«®ЄЁа®ў ­ЁҐ ¬®¦Ґв в®«мЄ® ў« ¤Ґ«Ґж. Ћв¬Ґ­  ¬®¦Ґв ­Ґ Ўлвм
пў­®©: ў Ў §Ґ ¤ ­­ле ­®ў®Ґ Ў«®ЄЁа®ў ­ЁҐ ®в¬Ґ­пҐв ¤Ґ©бвўЁҐ ЇаҐ¤л¤г饣®.
€бЄ«о祭ЁҐ (ў Ї®б«Ґ¤­Ёе ўҐабЁпе ‘“Ѓ„) ᤥ« ­® ¤«п ЈагЇЇ®ў®Ј® Ў«®ЄЁа®ў ­Ёп
§ ЇЁбҐ©, Є®Ј¤  ў®§¬®¦­® б®еа ­Ґ­ЁҐ ЇаҐ¤л¤г饣® Ў«®ЄЁа®ў ­Ёп § ЇЁбҐ©.
„®ЇгбвЁ¬, ¬л Ў«®ЄЁа㥬 § ЇЁбм,   § вҐ¬ - ўбо Ѓ„. Џ®б«Ґ ®в¬Ґ­л Ў«®ЄЁа®ў ­Ёп
¤ ­­®© Ѓ„ ў ­Ґ© ­Ґ Ўг¤Ґв ­Ё ®¤­®© Ў«®ЄЁа®ў ­­®© § ЇЁбЁ.
’ ЄЁ¬ ®Ўа §®¬, Ї®«м§®ў вҐ«м бҐвЁ ¬®¦Ґв
- ®вЄалў вм д ©« Ѓ„ «ЁЎ® ў ०Ё¬Ґ а §¤Ґ«Ґ­Ёп, «ЁЎ® ў ¬®­®Ї®«м­®¬ ०Ё¬Ґ;
- ўлЇ®«­пвм Ў«®ЄЁа®ў ­ЁҐ Ѓ„, ®в¤Ґ«м­ле § ЇЁбҐ© Ё ЈагЇЇ § ЇЁбҐ©;
Ў«®ЄЁа®ў ­­лҐ § ЇЁбЁ Ё Ў §л ¤®бвгЇ­л Ї® з⥭Ёо Ё «оЎ®¬г ¤агЈ®¬г
Ї®«м§®ў вҐ«о;
- ®в¬Ґ­пвм Ў«®ЄЁа®ў ­Ёп, Є®в®ал¬Ё ў« ¤ҐҐв;
- Їа®ўҐапвм ⥪гйЁ© бв вгб Ў«®ЄЁа®ў ­Ёп Ѓ„ Ё«Ё § ЇЁбЁ Ѓ„;
- Їа®ўҐапвм гбЇҐи­®бвм ўлЇ®«­Ґ­Ёп Є®¬ ­¤ USE Ё APPEND BLANK, ЇаЁ¬Ґ­Ґ­­ле
Є а §¤Ґ«пҐ¬®© Ѓ„ (ў CLIPPER ЁбЇ®«м§гҐвбп дг­ЄжЁп NetErr(), ў®§ўа й ой п .F.
ЇаЁ гбЇҐеҐ, ў FOXPRO ­Ґ®Ўе®¤Ё¬ ЇҐаҐеў в ЇаҐалў ­Ёп ¤«п ®Ўа Ў®вЄЁ ®иЁЎЄЁ).
Џ®«м§®ў вҐ«м, ­Ґ ЇаЁ®ЎйҐ­­л© Є бҐвЁ, ¬®¦Ґв ®бв ў вмбп ­ Ёў­л¬ ¤®
б ¬®© бв а®бвЁ Ё ­Ґ гзЁвлў вм бгйҐбвў®ў ­ЁҐ бҐвЁ, ЁЎ® Ї® 㬮«з ­Ёо ‘“Ѓ„
®вЄалў Ґв Ѓ„ ў ¬®­®Ї®«м­®¬ ०Ё¬Ґ: ¤Ґ©бвўгҐв гбв ­®ўЄ  SET EXCLUSIVE ON.

23.2. ‚лЇ®«­пҐ¬ Ў«®ЄЁа®ў ­ЁҐ Ё а §Ў«®ЄЁа®ў ­ЁҐ

—в®Ўл ®вЄалвм Ѓ„ ў ¬®­®Ї®«м­®¬ ०Ё¬Ґ, ў Є®¬ ­¤Ґ USE § ЇЁблў ов
 ваЁЎгв EXCLUSIVE,  ваЁЎгв SHARED ­ §­ з Ґв ०Ё¬ а §¤Ґ«Ґ­Ёп Ѓ„. ‚
®вбгвбвўЁҐ ¤ ­­ле  ваЁЎгв®ў ўбҐ § ўЁбЁв ®в Ј«®Ў «м­®© гбв ­®ўЄЁ: ЇаЁ
гбв ­®ўЄҐ SET EXCLUSIVE ON ўбҐ Ѓ„ ®вЄалў овбп ў ¬®­®Ї®«м­®¬ ०Ё¬Ґ,  
Ґб«Ё ¤Ґ©бвўгҐв SET EXCLUSIVE OFF - ў ०Ё¬Ґ а §¤Ґ«Ґ­Ёп. Ќ®ў п Ј«®Ў «м­ п
гбв ­®ўЄ  ­Ґ ¬®¦Ґв Ё§¬Ґ­Ёвм бв вгб а ­ҐҐ ®вЄалвле Ѓ„. €в Є,  ваЁЎгвл
Є®¬ ­¤л USE Ё¬Ґов Ў®«миго бЁ«г, 祬 Ј«®Ў «м­ п гбв ­®ўЄ . Љ®¬ ­¤ 
SET EXCLUSIVE ®бв ў«Ґ­  ў п§лЄҐ ¤«п б®ў¬ҐбвЁ¬®бвЁ б ЇаҐ¤л¤гйЁ¬Ё
ўҐабЁп¬Ё, ­® ­Ґ ४®¬Ґ­¤гҐвбп Є ЁбЇ®«м§®ў ­Ёо, ЁЎ® Ј«®Ў «м­ п гбв ­®ўЄ 
- ЈагЎ®Ґ б।бвў® гЇа ў«Ґ­Ёп ¤®бвгЇ®¬ Є ¤ ­­л¬.
”г­ЄжЁп Flock() Їлв Ґвбп Ў«®ЄЁа®ў вм Ѓ„, ®вЄалвго ў ०Ё¬Ґ
а §¤Ґ«Ґ­Ёп,   Rlock() (¤агЈ®Ґ Ё¬п Lock()) - ҐҐ ⥪гйго § ЇЁбм. ЋЎҐ
дг­ЄжЁЁ ў б«гз Ґ гбЇҐе  ў®§ўа й ов .T. Ё ®в¬Ґ­по⠯।л¤г饥 Ў«®ЄЁа®ў ­ЁҐ
ў ¤ ­­®© Ѓ„ (Ґб«Ё ®­® Ўл«®). „«п Ёе ЇаЁ¬Ґ­Ґ­Ёп Є ®вЄалв®©, ­® ­Ґ ЄвЁў­®©
Ѓ„ ў FOXPRO § ЇЁблў ов  аЈг¬Ґ­в -  «Ё б Ѓ„,   ў CLIPPER - гв®з­пов
 «Ё б®¬ ®Ўа йҐ­ЁҐ Є дг­ЄжЁЁ, ­ ЇаЁ¬Ґа: AA->(Lock()). Џ®б«Ґ¤­ҐҐ ¤Ґ« ов,
­ ЇаЁ¬Ґа, ЇаЁ Ў«®ЄЁа®ў ­ЁЁ бўп§ ­­®© § ЇЁбЁ "¤®зҐа­Ґ© Ѓ„", ЁЎ®
Ў«®ЄЁа®ў ­ЁҐ "¬ вҐаЁ­бЄ®©" § ЇЁбЁ ­Ґ ў«ҐзҐв Ў«®ЄЁа®ў ­Ёп "¤®зҐа­Ґ©".
Flock(), ЁбЇ®«м§®ў ­­ п, Є®Ј¤  ­Ґв ®вЄалв®© Ѓ„, ў®§ўа й Ґв .F. .
Љ®¬ ­¤®© UNLOCK Ї®«м§®ў вҐ«м ўлЇ®«­пҐв а §Ў«®ЄЁа®ў ­ЁҐ ў  ЄвЁў­®©
Ѓ„,   Є®¬ ­¤®© UNLOCK ALL - ®в¬Ґ­пҐв ўбҐ бў®Ё Ў«®ЄЁа®ў ­Ёп, ­ ЇаЁ¬Ґа,
Ў«®ЄЁа®ў ­Ёп § ЇЁбҐ© ў "¬ вҐаЁ­бЄ®©" Ё ў® ўбҐе "¤®зҐа­Ёе" Ѓ„. Њ®­®Ї®«м­л©
०Ё¬ ­Ґ ¬®¦Ґв Ўлвм ®в¬Ґ­Ґ­ Є®¬ ­¤®© UNLOCK. ‚ FOXPRO Є®¬ ­¤г UNLOCK
¬®¦­® ¤®Ї®«­пвм  ваЁЎг⮬ IN <ЋЎ«> (б¬. Ї.16.1), в.Ґ. ЇаЁ¬Ґ­пвм Є «оЎ®©
®вЄалв®© Ѓ„. ‚ CLIPPER ¤«п нв®© 楫Ё ЁбЇ®«м§гов дг­ЄжЁо DBUnlock(),
гв®з­Ґ­­го  «Ё б®¬.
”г­ЄжЁҐ© Rlock() Ў«®ЄЁагов ®¤Ё­®з­го § ЇЁбм ЇҐаҐ¤ ҐҐ Ё§¬Ґ­Ґ­ЁҐ¬
Є®¬ ­¤ ¬Ё @ ... GET, DELETE, RECALL, REPLACE Ё«Ё Їг⥬ ЇаЁбў Ёў ­Ёп
§­ зҐ­Ёп Ї®«о. ”г­ЄжЁо Flock() ЇаЁ¬Ґ­пов ЇҐаҐ¤ ⥬, Є Є Ї®¤ўҐаЈ­гвм
 ­ «®ЈЁз­®¬г Ё§¬Ґ­Ґ­Ёо ¬­®¦Ґбвў® § ЇЁбҐ©. Џа ў¤ , ўҐабЁп CLIPPER 5.2
Ё FOXPRO ЇаҐ¤« Ј ов  «мвҐа­ вЁўг - Ў«®ЄЁа®ў ­ЁҐ ЈагЇЇл § ЇЁбҐ© (Ї. 23.4).
„«п ўлЇ®«­Ґ­Ёп ў а §¤Ґ«пҐ¬®© Ѓ„ Є®¬ ­¤ PACK, REINDEX, ZAP, MODIFY
STRUCTURE (FOXPRO), INSERT Ё INSERT BLANK (FOXPRO) ҐҐ ­ ¤® ®вЄалвм ў
¬®­®Ї®«м­®¬ ०Ё¬Ґ, Ґб«Ё ¦Ґ Ѓ„ ®вЄалв  ў ०Ё¬Ґ а §¤Ґ«Ґ­Ёп, Ї®ЇлвЄ 
ўлЇ®«­Ёвм нвЁ Є®¬ ­¤л ўл§лў Ґв б®®ЎйҐ­ЁҐ ®Ў ®иЁЎЄҐ.
ЏаЁ¬Ґа 23.1. ЏаЁ¬Ґал Ў«®ЄЁа®ў ­Ёп Ѓ„ ў бЁб⥬Ґ CLIPPER
USE Student EXCLUSIVE
IF NetErr() && NetErr ў®§ўа й Ґв .F. ЇаЁ гбЇҐи­®¬ ®вЄалвЁЁ Ѓ„
@ 24,0 SAY "ЏаЁ¤ЁвҐ ў б«Ґ¤гойЁ© а §" && --гвЄ --
ELSE
PACK && Ѓ„ гбЇҐи­® ®вЄалв  Ё ⥯Ґам ўбҐ ¦¤гв ®Є®­з ­Ёп гЇ Є®ўЄЁ Ѓ„
USE && Ѓ„ § Єалў Ґвбп
ENDIF
USE Student SHARED && Ѓ„ ®вЄалў Ґвбп ў­®ўм ў ०Ё¬Ґ а §¤Ґ«Ґ­Ёп
IF .NOT. NetErr() .AND. Flock() && Џ®ЇлвЄ  Ў«®ЄЁа®ў ­Ёп Ѓ„
DELETE FOR Kurs=6 && …б«Ё Ѓ„ § еў зҐ­ , г¤ «повбп § ЇЁбЁ ¤ЁЇ«®¬­ЁЄ®ў
UNLOCK
SET INDEX TO IndFam && ЋвЄалў Ґвбп Ё­¤ҐЄб Ї® Є«озг Famil
SEEK "Ѓ…„ЌџЉЋ‚Ђ" && Џ®ЁбЄ ­г¦­®© § ЇЁбЁ
IF Found()
ELSEIF Rlock() && ’®«мЄ® Ґб«Ё § ЇЁбм ­ ©¤Ґ­ , ¤Ґ« Ґвбп Ў«®ЄЁа®ў ­ЁҐ
REPLACE Famil WITH "‘ЉЋђЋЃЋѓЂ’Ћ‚Ђ"
UNLOCK && ‡ ЇЁбм ЎҐ§®в« Ј вҐ«м­® а §Ў«®ЄЁагҐвбп
ELSE
@ 24,0 SAY "€§¬Ґ­Ґ­ЁҐ д ¬Ё«ЁЁ ­Ґ б®бв®п«®бм; § ЇЁбм § ­пв "
ENDIF
ELSE
USE I:\RabBD && „«п । ЄвЁа®ў ­Ёп ®вЄалў Ґвбп а Ў®з п Ѓ„
Browse() && ‚ FOXPRO ¬л Ўл ЁбЇ®«м§®ў «Ё Є®¬ ­¤г BROWSE
ENDIF
Џа® ­ «Ё§Ёа㥬 Їа®Ја ¬¬г. ‚ "игвЄҐ" Ґбвм бҐа쥧­л© ¬®¬Ґ­в: гЇ Є®ўЄг Ѓ„
®Ўлз­® ­Ґ ¤Ґ« ов, Є®Ј¤  а §¤Ґ«пҐ¬лҐ Ѓ„ ЁбЇ®«м§говбп Ё­вҐ­бЁў­®. Џ®«­®Ґ
Ў«®ЄЁа®ў ­ЁҐ (¬®­®Ї®«м­л© ०Ё¬) ®в¬Ґ­пов § ЄалвЁҐ¬ Ѓ„. Џ®б«Ґ нв®Ј® ҐҐ
ў­®ўм ®вЄал«Ё ¤«п г¤ «Ґ­Ёп § ЇЁбҐ© ¤ЁЇ«®¬­ЁЄ®ў. ќв  а Ў®в  ­Ґ ба®з­ п;
Ґб«Ё § еў вЁвм Ѓ„ ­Ґ г¤ «®бм, ўлЇ®«­пҐвбп б«Ґ¤гой п а Ў®в  - § ¬Ґ­ 
§­ зҐ­Ёп Ї®«п Famil ў ®¤­®© Ё§ § ЇЁбҐ©. ‡¤Ґбм ­Ґ«м§п Ўл«® ®ЎкҐ¤Ё­Ёвм
Found() Ё Rlock() ў ®¤­® «®ЈЁзҐбЄ®Ґ ўла ¦Ґ­ЁҐ Ё§-§  аЁбЄ  Ў«®ЄЁа®ў ­Ёп
"Ї®бв®а®­­Ґ©" § ЇЁбЁ (Є®Ј¤  Found()=.F.). ‚ ЇаЁ­жЁЇҐ Rlock() ®в¬Ґ­пҐв
ЇаҐ¤л¤г饥 Ў«®ЄЁа®ў ­ЁҐ, ®¤­ Є® ўлиҐ § ЇЁб ­  Є®¬ ­¤  UNLOCK. Џа ўЁ«м­®,
¤®«¦­  Ўлвм ЎҐ§гб«®ў­ п ®в¬Ґ­  Ў«®ЄЁа®ў ­Ёп. ЌЁзҐЈ® - Ї® ў®«Ґ б«гз п!
„ ­­л© Ї®«м§®ў вҐ«м ЇаЁ ­Ґг¤ зҐ а Ў®в Ґв б "«Ёз­®© б®Ўб⢥­­®бвмо"
- ўаҐ¬Ґ­­®© Ѓ„ RabBD. —в®Ўл Ё§ЎҐ¦ вм ў­Ґи­Ёе ў®§¤Ґ©бвўЁ© ­  в ЄЁҐ Ѓ„
(­ ЇаЁ¬Ґа, Ё§-§  б®ўЇ ¤Ґ­Ёп Ё¬Ґ­ Ѓ„), Ёе еа ­пв ­  «®ЈЁзҐбЄ®¬ ¤ЁбЄҐ
(§¤Ґбм - I:), § Єал⮬ ®в Ї®бв®а®­­Ёе, «гзиҐ - ў «Ёз­®© ¤ЁаҐЄв®аЁЁ.
‡ ¤ ­ЁҐ 23.2. ‡ ЇЁиЁвҐ Ї®б«Ґ¤®ў вҐ«м­®бвм ¤Ґ©бвўЁ©, Їа®Ё§ў®¤Ё¬ле ў
а §¤Ґ«пҐ¬®© Ѓ„ Ё вॡгойЁе  )¬®­®Ї®«м­®Ј® ०Ё¬ ; Ў) Ў«®ЄЁа®ў ­Ёп
ўбҐ© Ѓ„; ў) Ў«®ЄЁа®ў ­Ёп ®в¤Ґ«м­ле § ЇЁбҐ©. Џа®Ё§ў®¤ЁвҐ бў®ҐўаҐ¬Ґ­­®Ґ
а §Ў«®ЄЁа®ў ­ЁҐ.

23.3. ‚лЇ®«­пҐ¬ Є®¬ ­¤л ў бҐвЁ

Ља®¬Ґ гЄ § ­­ле ўлиҐ Є®¬ ­¤, вॡгойЁе ¬®­®Ї®«Ё§ жЁЁ Ѓ„,
ап¤ Є®¬ ­¤  ўв®¬ вЁзҐбЄЁ ®вЄалў Ґв ᮧ¤ ў Ґ¬лҐ Ѓ„ ў ¬®­®Ї®«м­®¬
०Ё¬Ґ (б¬. в Ў«. 23.1, «Ґў п Є®«®­Є ), в®Ј¤  Є Є ап¤ ¤агЈЁе -
®вЄалў ов Ё¬ҐойЁҐбп Ѓ„ Ё«Ё д ©«л ў ०Ё¬Ґ а §¤Ґ«Ґ­Ёп (в Ў«. 23.1,
Їа ў п Є®«®­Є ). ђҐзм Ё¤Ґв ® Ѓ„ Ё д ©« е, Ё¬Ґ­  Є®в®але ®Ў®§­ зҐ­л
ў в Ў«. 23.1. Џ®б«Ґ ўлЇ®«­Ґ­Ёп Є®¬ ­¤л (ЁбЄ«оз п Є®¬ ­¤г CREATE) Ѓ„
§ Єалў Ґвбп.

’ Ў«Ёж  23.1
---------------------------------------------------------------------
Љ®¬ ­¤л, ®вЄалў ойЁҐ д ©« Љ®¬ ­¤л, ®вЄалў ойЁҐ д ©«
ў ¬®­®Ї®«м­®¬ ०Ё¬Ґ ў ०Ё¬Ґ а §¤Ґ«Ґ­Ёп
----------------------------------------------------------------------
COPY STRUCTURE TO <€¬п Ѓ„> APPEND FROM <€¬п д ©« >
COPY TO <€¬п д ©« > CREATE ... FROM <€¬п д ©« >
CREATE <€¬п д ©« > LABEL FORM <€¬п д ©« >
INDEX ON ... TO <€¬п д ©« > REPORT FORM <€¬п д ©« >
JOIN ... TO <€¬п д ©« > RESTORE FROM <€¬п д ©« >
SAVE TO <€¬п д ©« > TYPE <€¬п д ©« >
SET ALTERNATE TO <€¬п д ©« > UPDATE ... FROM <€¬п Ѓ„>
SORT ... TO <€¬п Ѓ„>
TOTAL ... TO <€¬п Ѓ„>
-----------------------------------------------------------------------
Ќ ЇаЁ¬Ґа, ўл ­ ўҐа­пЄ  ­Ґ § е®вҐ«Ё Ўл, зв®Ўл ў ALTERNATE-д ©«
§ ЇЁблў « бм Ї®бв®а®­­пп Ё­д®а¬ жЁп, ­Ґ Ё¬Ґой п ®в­®иҐ­Ёп Є ў иҐ¬г
¤Ё «®Јг б ќ‚Њ (ЇаЁ¬Ґа б ¬®­®Ї®«м­л¬ ०Ё¬®¬). ‘ ¤агЈ®© бв®а®­л, Ўл«®
Ўл ­Ґа §г¬­® «Ёи вм Ї®«м§®ў вҐ«Ґ© ў®§¬®¦­®бвЁ зҐаЇ вм Ё­д®а¬ жЁо Ё§
®ЎйҐЈ® Ёбв®з­ЁЄ  (०Ё¬ а §¤Ґ«Ґ­Ёп). ‘гйҐбвўгҐв ¤агЈ®©  бЇҐЄв
Їа®Ў«Ґ¬л. ‚®§м¬Ґ¬ Є®¬ ­¤г REPORT FORM. …б«Ё ЇаЁ ўлў®¤Ґ ®взҐв  ®¤­Ё¬
Ї®«м§®ў вҐ«Ґ¬ ¤агЈ®© Ё§¬Ґ­Ёв е®вп Ўл ®¤­г § ЇЁбм  ЄвЁў­®© Ѓ„,
ЁбЇ®«м§гҐ¬®© Є Є ®б­®ў  ®взҐв , ¬®¦Ґв Ўлвм Ї®вҐап­  ҐЈ®
в®з­®бвм, Ї®бЄ®«мЄг Ѓ„ ЇаЁ¬Ґв ­ҐЄ®в®а®Ґ Їа®¬Ґ¦гв®з­®Ґ б®бв®п­ЁҐ.
‚ FOXPRO Ё¬ҐҐвбп гбв ­®ўЄ  SET LOCK ON, ®ЎҐбЇҐзЁў ой п  ўв®¬ вЁзҐбЄ®Ґ
Ў«®ЄЁа®ў ­ЁҐ Ѓ„, гЄ § ­­ле ў Є®¬ ­¤ е ¬ бб®ў®© ®Ўа Ў®вЄЁ § ЇЁбҐ©
(Ї® 㬮«з ­Ёо ¤Ґ©бвўгҐв гбв ­®ўЄ  SET LOCK OFF). „«п ¤агЈЁе
Ї®«м§®ў вҐ«Ґ© ¤®бвгЇ Є нвЁ¬ Ѓ„ Ї® з⥭Ёо - б®еа ­пҐвбп. …йҐ ®¤Ё­
ЇаЁ¬Ґа - б®авЁа®ўЄ  Ѓ„. ЏаҐ¤бв ўмвҐ, зв® ў ҐҐ Їа®жҐбᥠ"Ї®бв®а®­­Ё©"
Ё§¬Ґ­Ё« Ї®«Ґ - Є«оз б®авЁа®ўЄЁ е®вп Ўл ў ®¤­®© § ЇЁбЁ. ‘ Ў®«ми®©
б⥯Ґ­мо ўҐа®пв­®бвЁ Ї®а冷Є б«Ґ¤®ў ­Ёп § ЇЁбҐ© Ўг¤Ґв ­ аг襭.
ЏаЁ  ўв®¬ вЁзҐбЄ®¬ ®вЄалвЁЁ Ѓ„ ¬®Јгв Ўлвм ⥠¦Ґ Їа®Ў«Ґ¬л, зв® Ё
ЇаЁ Ї®ЇлвЄҐ ®вЄалвм Є®¬ ­¤®© USE Ў §г, Є®в®а п Ў«®ЄЁа®ў ­ . ЏаЁзЁ­л
­ҐгбЇҐи­ле Ї®Їлв®Є ®ва ¦Ґ­л ў в Ў«. 23.2.
’ Ў«Ёж  23.2
-----------------------------------------------------------------------
Љ®¬ ­¤  ЏаЁзЁ­  ­ҐгбЇҐи­®Ј® ўлЇ®«­Ґ­Ёп
-----------------------------------------------------------------------
USE <Ѓ„> SHARED Ѓ„ § еў зҐ­  ¤агЈЁ¬ Ї®«м§®ў вҐ«Ґ¬
(USE <Ѓ„> EXCLUSIVE)
USE <Ѓ„> EXCLUSIVE Ѓ„ 㦥 ®вЄалв  Ё ЁбЇ®«м§гҐвбп
APPEND BLANK Ѓ„ Ў«®ЄЁа®ў ­  (Flock() Ё«Ё USE <Ѓ„> EXCLUSIVE)
Ё«Ё Є®¬ ­¤  APPEND BLANK 㦥 ўлЇ®«­пҐвбп ¤агЈЁ¬
-----------------------------------------------------------------------
‚ ЇаЁ¬ҐаҐ 23.1 Ї®Є § ­®, Є Є ¤Ґ©бвў®ў вм ў CLIPPER, зв®Ўл ­ҐгбЇҐи­ п
Ї®ЇлвЄ  ®вЄалвЁп Ѓ„ ­Ґ бв «  ЇаЁзЁ­®© б®®ЎйҐ­Ё© ®Ў ®иЁЎЄҐ Ё ЇаҐалў ­Ёп
Їа®Ја ¬¬л. ‚ CLIPPER Ё¬ҐҐвбп Ў«®Є NetErr. ЏаЁ¬Ґ­Ё¬ ҐЈ® ў б«гз Ґ APPEND
BLANK, ®вў®¤п 5 ᥪ㭤 ¤«п Ї®Їлв®Є ¤®Ў ў«Ґ­Ёп § ЇЁбЁ ў  ЄвЁў­го Ѓ„:
. . .
T = 5
APPEND BLANK
DO WHILE NetErr() .AND. T>0
Inkey(.5) && ќ ¤Ґа¦Є  ў 1/2 ᥪ㭤л
T = T -.5
APPEND BLANK
ENDDO && ЋЄ®­з вҐ«м­л© Ёв®Ј ®ва ¦ Ґв Ї®б«Ґ¤­ҐҐ §­ зҐ­ЁҐ NetErr()
„®Ў ў«Ґ­­ п § ЇЁбм  ўв®¬ вЁзҐбЄЁ ®бв Ґвбп Ў«®ЄЁа®ў ­­®© Ё нв® а §г¬­®Ґ
аҐиҐ­ЁҐ, ЁЎ®, Є Є Їа ўЁ«®, ҐҐ ба §г § Ї®«­пов, в.Ґ. Ё§¬Ґ­пов §­ зҐ­Ёп
Ї®«Ґ©.
ЋЎа Ў®вЄ  бҐвҐўле ®иЁЎ®Є ў FOXPRO а бᬮв७  ў Ї. 23.5.
€¬ҐҐвбп ®Ја ­ЁзҐ­ЁҐ ­  ¬Ґбв® § ¤ ­Ёп Ё­¤ҐЄб®ў а §¤Ґ«пҐ¬®© Ѓ„. €е ­Ґ
б«Ґ¤гҐв § ¤ ў вм ў Є®¬ ­¤Ґ USE - в®«мЄ® ў Є®¬ ­¤Ґ SET INDEX TO. „Ґ«® ў
⮬, зв® ўлЇ®«­ппбм, Є®¬ ­¤  USE <Ѓ„> INDEX <‘ЇЁб®Є Ё­¤ҐЄб®ў> ўл§®ўҐв
®иЁЎЄг, Ґб«Ё Ѓ„ ¬®­®Ї®«м­® ў« ¤ҐҐв ¤агЈ®© Ї®«м§®ў вҐ«м. “Є §лў п Ё­¤ҐЄбл
ў SET INDEX TO, б­ з «  Їа®ўҐа塞, б®бв®п«®бм «Ё ®вЄалвЁҐ Ѓ„ (б¬.
ЇаЁ¬Ґа 23.1).
‡ ¤ ­ЁҐ 23.3. ‡ ЇЁиЁвҐ Ў«®Є ўлў®¤  ®взҐв  Ї® д®а¬Ґ "ITOGI" ­ 
®б­®ўҐ Ѓ„ Student, Ї®§ Ў®вЁўиЁбм ® § йЁвҐ Ѓ„ ®в § ЇЁбЁ ў ­ҐҐ ­®ўле
¤ ­­ле ¤агЈЁ¬Ё Ї®«м§®ў вҐ«п¬Ё.

23.4. ЋбгйҐб⢫塞 Ў«®ЄЁа®ў ­ЁҐ ЈагЇЇл § ЇЁбҐ©

‚ FOXPRO ЇаҐ¤гᬮв७  Є®¬ ­¤  SET MULTILOCK <Љ«оз>, Ј¤Ґ <Љ«оз> -
нв® ON Ё«Ё OFF, ўЄ«оз ой п (ON) Ё ўлЄ«оз ой п (OFF) ०Ё¬ Ў«®ЄЁа®ў ­Ёп
¬­®¦Ґбвў  § ЇЁбҐ©. ‚ ०Ё¬Ґ "ON" ¬®¦­® ЁбЇ®«м§®ў вм дг­ЄжЁо Rlock()
(Ё«Ё Lock()) б а биЁаҐ­­л¬ бЁ­в ЄбЁб®¬:
Rlock("<‘ЇЁб®Є ­®¬Ґа®ў Ў«®ЄЁа㥬ле § ЇЁбҐ©>",<ЋЎ« бвм>),
Ј¤Ґ ®ЇжЁп <ЋЎ« бвм> -нв® ­®¬Ґа а Ў®зҐ© ®Ў« бвЁ Ё«Ё  «Ё б. Ќ ЇаЁ¬Ґа,
¤«п Ў«®ЄЁа®ў ­Ёп 3-©, 7-©, 8-©, 9-© § ЇЁбЁ  ЄвЁў­®© Ѓ„ § ЇЁблў Ґ¬
Rlock("3,7,8,9"). ‘ЇЁб®Є ­®¬Ґа®ў ¬®¦Ґв Ўлвм в Є¦Ґ §­ зҐ­ЁҐ¬
бЁ¬ў®«м­ле ЇҐаҐ¬Ґ­­®©, н«Ґ¬Ґ­в  ¬ ббЁў , Ї®«п Ѓ„. ”г­ЄжЁп Rlock()
ў®§ўа й Ґв §­ зҐ­ЁҐ .T. в®«мЄ® ў ⮬ б«гз Ґ, Ґб«Ё г¤ «®бм
Ў«®ЄЁа®ў вм ўбҐ гЄ § ­­лҐ § ЇЁбЁ. Ѓ«®ЄЁа®ў ­Ёп, Є®в®алҐ ®­  ᬮЈ« 
ўлЇ®«­Ёвм, б®еа ­повбп, а ў­® Є Є Ё Ў«®ЄЁа®ў ­Ёп § ЇЁбҐ©, ᤥ« ­­лҐ
¤® ­ҐҐ.
€­®Ј¤  㤮Ў­ҐҐ Ў«®ЄЁа®ў вм ЈагЇЇг § ЇЁбҐ©, ЁбЇ®«м§гп Rlock()
®в¤Ґ«м­® ¤«п Є ¦¤®© § ЇЁбЁ. Љ®¬ ­¤  SET MULTILOCK ўбҐЈ¤  б­Ё¬ Ґв
бгйҐбвўгойЁҐ Ў«®ЄЁа®ў ­Ёп § ЇЁбҐ©, в.Ґ. ЇҐаҐ¤ ­Ґо ­Ґ ­ ¤®
ўлЇ®«­пвм UNLOCK. —Ёб«® ®¤­®ўаҐ¬Ґ­­® Ў«®ЄЁа®ў ­­ле § ЇЁбҐ©
®Ја ­ЁзЁў Ґвбп ®ЎкҐ¬®¬ Ї ¬пвЁ ­  бҐаўҐаҐ. …б«Ё Ї®¤¬­®¦Ґбвў®
Ў«®ЄЁа㥬ле § ЇЁбҐ© ўҐ«ЁЄ®, Ў«®ЄЁагов ®Ўлз­® ўбо Ѓ„ дг­ЄжЁҐ© Flock().
‚ ўҐабЁЁ CLIPPER 5.2 в Є¦Ґ ЇаҐ¤гᬮв७® Ў«®ЄЁа®ў ­ЁҐ ЈагЇЇ
§ ЇЁбҐ©, ЁбЇ®«м§гҐвбп дг­ЄжЁп DBRlock(). ’ҐЄгйЁ© бЇЁб®Є
Ў«®ЄЁа®ў ­­ле § ЇЁбҐ© ў®§ўа й Ґв дг­ЄжЁп DBRLOCKLIST(). ‘ЇҐжЁ «м­лҐ
०Ё¬л Ў«®ЄЁа®ў ­Ёп, Ё¬ҐойЁҐбп ў FOXPRO, ­Ґ ЇаҐ¤гᬮв७л. ‚§ ¬Ґ­ -
®бва®г¬­®Ґ аҐиҐ­ЁҐ: DBRLock() ЎҐ§  аЈг¬Ґ­в  б­Ё¬ Ґв ў Ў §Ґ ўбҐ
Ў«®ЄЁа®ў ­Ёп § ЇЁбҐ© Ё Ў«®ЄЁагҐв ⥪гйго § ЇЁбм; DBRlock() б
 аЈг¬Ґ­в®¬ (­®¬Ґа § ЇЁбЁ) Ў«®ЄЁагҐв гЄ § ­­го (е®вп Ўл Ё ⥪гйго -
гЄ ¦ЁвҐ Recno()Є Є ­®¬Ґа § ЇЁбЁ) § ЇЁбм Ё ¤®Ў ў«пҐв Є бЇЁбЄг
Ў«®ЄЁа®ў ­­ле § ЇЁбҐ©. ”г­ЄжЁп DBAppend(.T.) б­Ё¬ Ґв Ў«®ЄЁа®ў ­Ёп
§ ЇЁбҐ©, ¤®Ў ў«пҐв ў Ѓ„ Ё Ў«®ЄЁагҐв Їгбвго § ЇЁбм, DBAppend(.F.),
¤®Ў ў«пп § ЇЁбм, «Ёим ЇаЁб®Ґ¤Ё­пҐв ҐҐ Є бЇЁбЄг Ў«®ЄЁа®ў ­­ле § ЇЁбҐ©.
”г­ЄжЁп DBRUnlock() ЎҐ§  аЈг¬Ґ­в  б­Ё¬ Ґв ўбҐ Ў«®ЄЁа®ў ­Ёп § ЇЁбҐ©,
  Ґб«Ё гЄ § вм  аЈг¬Ґ­в - ­®¬Ґа § ЇЁбЁ, а §Ў«®ЄЁагҐвбп в®«мЄ® ®­  ®¤­ .
‡ ¤ ­ЁҐ 23.4. ‡ ЇЁиЁвҐ Ё ®Їа®Ўг©вҐ ­  Џќ‚Њ 2 ў аЁ ­в  Їа®Ја ¬¬л
Ў«®ЄЁа®ў ­Ёп ЈагЇЇл § ЇЁбҐ©  ЄвЁў­®© Ѓ„: б® бЇЁбЄ®¬ ­®¬Ґа®ў § ЇЁбҐ©
ў дг­ЄжЁЁ Rlock() Ё ЎҐ§ нв®Ј® бЇЁбЄ .

23.5. ЋЎа Ў влў Ґ¬ ®иЁЎЄЁ ЇаЁ ЁбЇ®«м§®ў ­ЁЁ Ѓ„ ў бҐвЁ

ЏаЁ¬Ґ­ЁвҐ«м­® Є CLIPPER ¬®¦­® Ј®ў®аЁвм Їа® ®Ўа Ў®вЄг ®вЄ §®ў ЇаЁ
Ў«®ЄЁа®ў ­ЁЁ, ­® ў FOXPRO Ї®ЇлвЄ  "­Ґ¤®§ў®«Ґ­­®Ј®" ¤®бвгЇ  Є
Ў«®ЄЁа®ў ­­®© Ѓ„ (Є®¤ ®иЁЎЄЁ 108) Ё«Ё Ў«®ЄЁа®ў ­­®© § ЇЁбЁ (Є®¤
®иЁЎЄЁ 109) ®Ўа Ў влў Ґвбп Ё¬Ґ­­® Є Є ®иЁЎЄ . Ќ ¤® Ё¬Ґвм ў ўЁ¤г,
зв® нвЁ Ї®ЇлвЄЁ ¬®Јгв Їа®Ёб室Ёвм ў Ё­вҐа ЄвЁў­®¬ ०Ё¬Ґ, ЇаЁ
ЁбЇ®«м§®ў ­ЁЁ ®Є­  Є®¬ ­¤ FOXPRO, в.Ґ. ­Ґ ®Ўп§ вҐ«м­® ў Їа®Ја ¬¬Ґ.
„«п ®Ўа Ў®вЄЁ ®иЁЎ®Є ­г¦Ґ­ ERROR-Ў«®Є, ўл§лў Ґ¬л© Є®¬ ­¤®© ON ERROR
(б¬. Ї. 22.5). ”г­ЄжЁЁ Flock(), Rlock() (Lock()) б ¬Ё ®иЁЎЄЁ ­Ґ
ўл§лў ов, ®иЁЎЄЁ ўл¤ овбп, Є®Ј¤ , ­Ґ ®Ўа й п ў­Ё¬ ­Ёп ­  Ёе
®ваЁж вҐ«м­л© १г«мв в (.F.), Їлв овбп Ё§¬Ґ­Ёвм ®ЎкҐЄв, § еў зҐ­­л©
¤агЈЁ¬.
ЏаЁ¬Ґа 23.2. Џа®жҐ¤га  ErrEx ®Ўа Ў®вЄЁ ®иЁЎ®Є ў бҐвЁ (ERROR-Ў«®Є).

PROCEDURE ErrEx
Er = ERROR()
DO CASE
CASE Er = 108 OR Er = 109 && ‘«гз © ®Ўа йҐ­Ёп Є Ў«®ЄЁа®ў ­­®© Ѓ„
ON KEY LABEL F8 DO Nowait && Ё«Ё Ў«®ЄЁа®ў ­­®© § ЇЁбЁ
DO Ermsg WITH Iif(Er=108,"Ѓ § ","‡ ЇЁбм")+" Ў«®ЄЁа®ў ­  б®бҐ¤®¬"
DO Delay && ‘«гз ©­ п § ¤Ґа¦Є  ў ЇаҐ¤Ґ« е 5 б.
RELEASE WINDOW Ermsg && “­Ёз⮦Ґ­ЁҐ ®Є­  б®®ЎйҐ­Ёп
ON KEY LABEL F8 && Ћв¬Ґ­  Є« ўЁи­®Ј® ­ §­ зҐ­Ёп
RETRY && ‚®§ўа в Є Є®¬ ­¤Ґ, ўл§ў ўиҐ© ®иЁЎЄг
CASE Er = ... && ‘«гз © ®иЁЎЄЁ б ¤агЈЁ¬ Є®¤®¬
. . . && ЋЎа Ў®вЄ  ®иЁЎ®Є б ¤агЈЁ¬Ё Є®¤ ¬Ё
ENDCASE
PROCEDURE Ermsg
PARAM Msg
IF NOT Wexist("Ermsg") && Џа®ўҐаЄ  бгйҐбвў®ў ­Ёп ®Є­ 
DEFINE WINDOW Ermsg FROM 10,5 TO 15,75 TITLE "Ћ € Ѓ Љ Ђ"
ENDIF
ACTIVATE WINDOW Ermsg SAME
@ 2,3 SAY Msg
@ 4,3 SAY "„«п ў®§ўа в  ў Ј« ў­л© Ў«®Є ­ ¦¬ЁвҐ F8"
PROCEDURE Delay && ђҐ «Ё§гҐвбп § ¤Ґа¦Є  б«гз ©­®© ¤«ЁвҐ«м­®бвЁ
PRIVATE tfin && (ў ЇаҐ¤Ґ« е 5 ᥪ㭤)
tfin = Seconds() + Rand()*5
DO WHILE Seconds() < tfin
ENDDO
PROCEDURE Nowait
ON KEY LABEL F8
RELEASE WINDOW Ermsg
RETURN TO MASTER && ‚®§ўа в ў Ј« ў­л© Ў«®Є
ЏаЁ¬Ґ­Ґ­ЁҐ Ў«®Є  ErrEx а бᬮваЁ¬ ­  ЇаЁ¬ҐаҐ 23.1. ЏаҐ¤ў аЁвҐ«м­®,
­ ЇаЁ¬Ґа, зҐаҐ§ ®Є­® Є®¬ ­¤ ­ ¤® ўлЇ®«­Ёвм Є®¬ ­¤г ON ERROR DO ErrEx.
‚ FOXPRO ­ з «® Їа®Ја ¬¬л §­ зЁвҐ«м­® б®Єа вЁвбп (ўҐвў«Ґ­ЁҐ гЎЁа Ґ¬):
USE Student EXCLUSIVE && ‚맮ў ERROR-Ў«®Є  Їа®Ёб室Ёв §¤Ґбм
PACK
USE
Џ®Є  ­Ґ Їа®Ё§®©¤Ґв § еў в  Ѓ„, Ў«®Є ErrEx Ўг¤Ґв ў®§ўа й вм гЇа ў«Ґ­ЁҐ
­  Є®¬ ­¤г USE Student EXCLUSIVE. …б«Ё Ї® Їа®иҐбвўЁЁ ўаҐ¬Ґ­Ё
Ї®«м§®ў вҐ«м, ®вз пўиЁбм, ­ ¦¬Ґв F8, гЇа ў«Ґ­ЁҐ Ї®«гзЁв Є®¬ ­¤  PACK
Ё в Є¦Ґ ўл¤ бв ®иЁЎЄг, ®Ўа Ў®вЄ  Є®в®а®© ў ⥪б⥠Ў«®Є  ErrEx ­Ґ Ї®Є § ­ .
„ «ҐҐ гЇа ў«Ґ­ЁҐ Ї®«гзЁв USE - ®­  ­Ґ ўл§®ўҐв Є ЄЁе-«ЁЎ® ¤Ґ©бвўЁ©,  
§ вҐ¬ ¤Ґ« Ґвбп Ї®ЇлвЄ  ®вЄалвм Ѓ„ ў ०Ё¬Ґ а §¤Ґ«Ґ­Ёп Ё Ў«®ЄЁа®ў вм ҐҐ:

USE Student SHARED && ‚맮ў ERROR-Ў«®Є  Їа®Ёб室Ёв §¤Ґбм
IF Flock()
. . .
‘­®ў  ў®§¬®¦­л ¬­®Ј®Єа в­лҐ Ї®ЇлвЄЁ ®вЄалвм Ѓ„. …б«Ё Ўг¤Ґв ­ ¦ в 
F8 (Ў §г в Є Ё ­Ґ ®вЄал«Ё), Flock() ў®§ўа вЁв .F. Ё б«Ґ¤гой п а Ў®в 
в Є¦Ґ Ўг¤Ґв Їа®Їг饭 . ‚ § ўҐа襭ЁҐ Їа®Ја ¬¬л Ўг¤Ґв ЁбЇ®«м§®ў вмбп
Є®¬ ­¤  BROWSE. —Ёв вҐ«о ЇаҐ¤« Ј Ґвбп Їа®ўҐаЁвм Ї®«г祭­го FOXPRO-
Їа®Ја ¬¬г.
‡ ¤ ­ЁҐ 23.5. „Ґ©бвўгп б 2 а Ў®зЁе бв ­жЁ©, Їа®¬®¤Ґ«Ёаг©вҐ § еў в,
  § вҐ¬ - Ї®«­®Ґ Ў«®ЄЁа®ў ­ЁҐ Ѓ„ Student б 1-© бв ­жЁЁ. Ќ  2-© бв ­жЁЁ
§ ЇгбвЁвҐ Їа®Ја ¬¬г ЇаЁ¬Ґа  23.1 б гзҐв®¬ ­Ґ®Ўе®¤Ё¬ле Ё§¬Ґ­Ґ­Ё©.
€§гзЁвҐ ®Ўа Ў®вЄг ®иЁЎ®Є Ў«®Є®¬ ErrEx ў а §«Ёз­ле бЁвг жЁпе
Ў«®ЄЁа®ў ­Ёп.

23.6. ‚лЇ®«­пҐ¬ § еў в Ў §л ¤ ­­ле Ё«Ё § ЇЁбЁ
ў гб«®ўЁпе Є®­Єг७樨. ’а ­§ ЄжЁЁ

‚ Ї. 23.5 ­  ЇаЁ¬ҐаҐ Ў«®Є  ErrEx Ї®Є § ­®, Є Є ®бгйҐбвўЁвм
¬­®Ј®Єа в­лҐ Ї®ЇлвЄЁ Ї®«гз¬вм ¤®бвгЇ Є Ѓ„. ‚ FOXPRO Ґбвм ®б®Ў п
Є®¬ ­¤  SET REPROCESS TO <‚лаN> SECONDS, Ї®§ў®«пой п § ¤ вм
зЁб«® <‚лаN> Ї®Їлв®Є Ё«Ё ўаҐ¬п, ў вҐзҐ­ЁҐ Є®в®а®Ј® ®­Ё Ўг¤гв
ЇаҐ¤ЇаЁ­Ё¬ вмбп (Ґб«Ё бЇа ў  ®в <‚лаN> б«®ў® SECONDS, <‚лаN>
®Ў®§­ з Ґв зЁб«® ᥪ㭤). „Ё Ї §®­ §­ зҐ­Ё© <‚лаN> - ®в 1 ¤® 32000.
“бЇҐе Ї®ЇлвЄЁ Ё«Ё ­ ¦ вЁҐ Esc ®в¬Ґ­пов ¤ «м­Ґ©иЁҐ Ї®ЇлвЄЁ. ‚ 室Ґ
ўлЇ®«­Ґ­Ёп Є®¬ ­¤  ўлў®¤Ёв ­  ¤ЁбЇ«Ґ© б®®ЎйҐ­ЁҐ ® ўлЇ®«­пҐ¬ле
Ї®ЇлвЄ е Ў«®ЄЁа®ў ­Ёп. “бЇҐи­ п Ї®ЇлвЄ  ЇаЁў®¤Ёв Є Ёб祧­®ўҐ­Ёо
б®®ЎйҐ­Ёп.
…б«Ё Ї®ЇлвЄЁ Ў«®ЄЁа®ў ­Ёп ®бгйҐбвў«п«Ёбм дг­ЄжЁҐ© Flock()
Ё«Ё Rlock() (Lock()), Ёе §­ зҐ­ЁҐ .T. ®ва §Ёв Є®­Ґз­л© гбЇҐе.
…б«Ё ­ ¦ в  Esc Ё«Ё ўбҐ Ї®ЇлвЄЁ ЁбзҐаЇ ­л ЎҐ§ १г«мв в ,
§­ зҐ­ЁҐ¬ дг­ЄжЁЁ пў«пҐвбп .F. .
ERROR-Ў«®Є Ё¬ҐҐв ЇаЁ®аЁвҐв ў ⮬ б¬лб«Ґ, зв® ®вЄ § ў
®вЄалвЁЁ Ѓ„ ­Ґ¬Ґ¤«Ґ­­® ўл§лў Ґв ўлЇ®«­Ґ­ЁҐ ERROR-Ў«®Є  (ЎҐ§
Ї®ўв®аҐ­Ёп  ўв®¬ вЁзҐбЄЁе Ї®Їлв®Є ®вЄалвЁп Ѓ„). ”г­ЄжЁЁ Ў«®ЄЁа®ў ­Ёп
­Ґ ўл§лў ов ERROR-Ў«®Є.
Љ®¬ ­¤  SET REPROCESS Ё¬ҐҐв ў аЁ ­в SET REPROCESS TO AUTOMATIC
(Ё«Ё SET REPROCESS TO 0), б­Ё¬ ойЁ© ®Ја ­ЁзҐ­ЁҐ ­  зЁб«® Ї®Їлв®Є.
Љ« ўЁи  Esc Ї®ЇаҐ¦­Ґ¬г ®бгйҐбвў«пҐв Ёе ®в¬Ґ­г. ‚ ў аЁ ­вҐ
SET REPROCESS TO -1 ("¬ ЄбЁ¬ «ЁбвбЄ®¬") Ў«®ЄЁаговбп ¤Ґ©бвўЁҐ Esc
Ё ўл室 ­  ERROR-Ў«®Є. …б«Ё ЇаЁ н⮬ ў аЁ ­вҐ Є®¬ ­¤л Ї®ЇлвЄЁ Ўг¤гв
ЎҐ§гбЇҐи­л, ЇаЁ¤Ґвбп ЇҐаҐ§ Јаг¦ вм Џќ‚Њ.
ЊЁ­гᮬ Є®¬ ­¤л пў«пҐвбп Ґ¤Ё­®Ґ аҐиҐ­ЁҐ ¤«п ўбҐ© Їа®Ја ¬¬л.
‚ CLIPPER ЇаҐ¤« Ј Ґвбп ­ Ў®а Ё§ 4 дг­ЄжЁ©, ®Ўа §гойЁе д ©«
LOCKS.PRG, Є®в®ал© ­ ¤® Ї®¤Є«оз вм Є®¬ ­¤®© SET PROCEDURE TO.
”г­ЄжЁЁ RecLock(<‚лаN>) Ё FilLock(<‚лаN>) ў вҐзҐ­ЁҐ <‚лаN>
ᥪ㭤 ўлЇ®«­пов Ї®ЇлвЄЁ § еў в  § ЇЁбЁ Ё«Ё д ©«  Ѓ„
ᮮ⢥вб⢥­­®. ”г­ЄжЁп NetUse("<€¬п Ѓ„>",<ђҐ¦Ё¬>, <‚лаN>) ў
вҐзҐ­ЁҐ <‚лаN> ᥪ㭤 Їлв Ґвбп ®вЄалвм д ©« <€¬п Ѓ„> ў
¬®­®Ї®«м­®¬ ०Ё¬Ґ (<ђҐ¦Ё¬> = .T.) Ё«Ё ०Ё¬Ґ а §¤Ґ«Ґ­Ёп
(<ђҐ¦Ё¬>) = .F.). Ќ Є®­Ґж, дг­ЄжЁп AddRec(<‚лаN>) ў вҐзҐ­ЁҐ
<‚лаN> ᥪ㭤 Їлв Ґвбп ¤®Ў ўЁвм Їгбвго § ЇЁбм ў  ЄвЁў­го Ѓ„.
€в Є, ­Ґг¤ зг (®вЄ §) ў ®вЄалвЁЁ Ѓ„, Ў«®ЄЁа®ў ­ЁЁ Ѓ„ Ё«Ё § ЇЁбЁ
Ѓ„ Їлв овбп ЇаҐ®¤®«Ґвм Ї®ўв®аҐ­ЁҐ¬ Ї®Їлв®Є ®вЄалвЁп (Ў«®ЄЁа®ў ­Ёп) ў
вҐзҐ­ЁҐ ­ҐЄ®в®а®Ј® ўаҐ¬Ґ­Ё Ё«Ё ¤® ў­Ґи­ҐЈ® ЇаҐалў ­Ёп (Esc). ЏаЁ
"Ї®«­®© ­Ґг¤ зҐ" ¬®¦­® ЇҐаҐЄ«озЁвмбп ­  ®Ўа Ў®вЄг ¤агЈЁе ¤ ­­ле,  
§ вҐ¬ ў­®ўм Ї®Їлв вмбп Ї®«гзЁвм ¦Ґ« ­­л© ®ЎкҐЄв. Ќ ЁЎ®«ҐҐ Їа®бв®
нв® ®бгйҐбвўЁвм ў ¤ҐжҐ­ва «Ё§®ў ­­ле FOXPRO-Їа®Ја ¬¬ е, ®б­®ў®©
Є®в®але пў«пҐвбп ¬Ґ­о б Ї®¤Є«о祭­л¬Ё Є ­Ґ¬г Ў«®Є ¬Ё, Ґб«Ё ў ­Ёе
ЇаҐ¤гᬮв७  ॠЄжЁп ­  ®вЄ §л.
’а ­§ ЄжЁЁ. ‚ᥠаҐи «®бм Ўл Їа®йҐ, ­Ґ Ўг¤м ва ­§ ЄжЁ© -
«®ЈЁзҐбЄЁе Ґ¤Ё­Ёж а Ў®вл, ўлЇ®«­Ґ­ЁҐ Є®в®але ¤ ¦Ґ ­  99 %
а ў­®бЁ«м­® ­ҐўлЇ®«­Ґ­Ёо. ЏаҐ¤бв ўм⥠¤ўҐ Ѓ„: "Џа®¤ ¦Ё"
Ё "Џ®ЄгЇ вҐ«Ё", ў Є®в®але Ї®ЄгЇ вҐ«Ё ®Ў®§­ зҐ­л Є®¤®¬
Ї®ЄгЇ вҐ«п. …б«Ё ¬л § ¬Ґ­пҐ¬ ­ҐЄ®в®ал© Є®¤ Ї®ЄгЇ вҐ«п, в®
ᤥ« вм нв® ¤®«¦­л ў Є ¦¤®© Ѓ„. „®ЇгбвЁ¬, н⮠ᤥ« ­® «Ёим ў
®¤­®© Ё§ ­Ёе,   ¤агЈ п - Ўл«  § еў зҐ­  Ё§ў­Ґ Ё ў®§­ЁЄ вгЇЁЄ.
„ ­­лҐ Ї®вҐап«Ё 楫®бв­®бвм.
‘гйҐбвўгов ¤ў  Ї®¤е®¤  Є ва ­§ ЄжЁп¬. ЏҐаўл©: б­ з « 
Ї®«гзЁвм ўбҐ ­Ґ®Ўе®¤Ё¬лҐ Ў«®ЄЁа®ў ­Ёп (ў ­ иҐ¬ ЇаЁ¬ҐаҐ -
Ў«®ЄЁа®ў вм ®ЎҐ Ѓ„) Ё «Ёим § вҐ¬ ўлЇ®«­пвм ®Ўа Ў®вЄг.
‚в®а®©: а §¬ҐвЁвм ў Їа®Ја ¬¬Ґ гз бвЄЁ, ᮮ⢥вбвўгойЁҐ
ва ­§ ЄжЁп¬; ЇаЁ ­Ґў®§¬®¦­®бвЁ § ўҐаиЁвм ­ з вго ва ­§ ЄжЁо
Їа®Ё§ў®¤Ёвм "®вЄ в" Є ­ з «г гз бвЄ  Ё  ­­г«Ёа®ў вм нд䥪в
­ з в®© ва ­§ ЄжЁЁ. ‡ ¬ҐвЁ¬, зв® ўл¤Ґ«Ґ­ЁҐ ва ­§ ЄжЁ©
­Ґ®Ўе®¤Ё¬® Ё ¤«п Їа®жҐ¤га ў®ббв ­®ў«Ґ­Ёп Ї®б«Ґ  ў аЁ©­®Ј®
ЇаҐЄа йҐ­Ёп а Ў®вл Їа®Ја ¬¬л.
‡ ¤ ­ЁҐ 23.6. ЋЇа®Ўг©вҐ а §«Ёз­лҐ ў аЁ ­вл Є®¬ ­¤л
REPROCESS TO ­  ¬®¤Ґ«Ё, а бᬮв७­®© ў § ¤ ­ЁЁ 23.5.

‡ЂЉ‹ћ—…Ќ€… Љ ѓ‹Ђ‚… 23

ЌҐ§­ ­ЁҐ § Є®­®ў ­Ґ ®бў®Ў®¦¤ Ґв ®в ®вўҐвб⢥­­®бвЁ. •®вп
Ўл Ї®н⮬㠤 ­­го Ј« ўг ­ ¤® Ўл«® Їа®зҐбвм ⥬, Єв® б®ЎЁа Ґвбп
а Ў®в вм ў бҐвЁ Џќ‚Њ. Ља®¬Ґ §­ ­Ёп, ­г¦­  нвЁЄ . ‘ нвЁЄ®©
"ЇҐйҐа­®Ј® 祫®ўҐЄ " ¬®¦­® а Ў®в вм ­  Џќ‚Њ ў ®¤Ё­®зЄг, ­® ­Ґ
ў бҐвЁ. „«п Ў®«ҐҐ ¤Ґв «м­®Ј® а бᬮв७Ёп бҐвҐўле Їа®Ў«Ґ¬,
­ ЇаЁ¬Ґа, Їа®Ў«Ґ¬л ва ­§ ЄжЁ©, ®Ўа й ©вҐбм Є [4, 8] Ё ¤агЈЁ¬
Ёбв®з­ЁЄ ¬.
Соседние файлы в папке материалы по FoxPro