ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π²ΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΡΡΠ³Π°
ΠΠΎΠ΅Π½Π½ΡΠ΅ ΡΠ°ΡΡΠΈ ΠΎΠΊΡΡΠ³Π° ΡΠ°ΡΠΊΠ²Π°ΡΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΠΌΠ΅ΡΡΠ°ΠΌ Π΄ΠΈΡΠ»ΠΎΠΊΠ°ΡΠΈΠΈ, ΠΏΡΠΈΡΠ΅ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΠ΅ΠΉ. ΠΠ°ΠΆΠ΄Π°Ρ Π²ΠΎΠΈΠ½ΡΠΊΠ°Ρ ΡΠ°ΡΡΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠΎΡ, ΡΠΎΡΡ ΠΈΠ· Π²Π·Π²ΠΎΠ΄ΠΎΠ², Π²Π·Π²ΠΎΠ΄Ρ ΠΈΠ· ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΠΉ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π²ΠΎΠΈΠ½ΡΠΊΠΈΠ΅ ΡΠ°ΡΡΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Π² Π΄ΠΈΠ²ΠΈΠ·ΠΈΠΈ, ΠΊΠΎΡΠΏΡΡΠ° ΠΈΠ»ΠΈ Π±ΡΠΈΠ³Π°Π΄Ρ, Π° ΡΠ΅ Π² Π°ΡΠΌΠΈΠΈ. ΠΠΎΠ΅Π½Π½ΡΠΉ ΠΎΠΊΡΡΠ³ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΎΡΠΈΡΠ΅ΡΡΠΊΠΈΠΌ ΡΠΎΡΡΠ°Π²ΠΎΠΌ (Π³Π΅Π½Π΅ΡΠ°Π»Ρ, ΠΏΠΎΠ»ΠΊΠΎΠ²Π½ΠΈΠΊΠΈ, ΠΏΠΎΠ΄ΠΏΠΎΠ»ΠΊΠΎΠ²Π½ΠΈΠΊΠΈ, ΠΌΠ°ΠΉΠΎΡΡ, ΠΊΠ°ΠΏΠΈΡΠ°Π½Ρ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π²ΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΡΡΠ³Π° (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π€Π΅Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΠ³Π΅Π½ΡΡΡΠ²ΠΎ ΠΏΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΡΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π’ΠΈΡ ΠΎΠΎΠΊΠ΅Π°Π½ΡΠΊΠΈΠΉ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ
ΠΠ°ΡΠ΅Π΄ΡΠ° ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠΊΠΈ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΎΡΠ΅Ρ Π½ΠΈΠΊΠΈ
ΠΡΡΡΠΎΠ²Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Π΅
" Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΠΌΠΈ"
Π’Π΅ΠΌΠ°: «ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π²ΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΡΡΠ³Π°»
ΠΡΠΏΠΎΠ»Π½ΠΈΠ»:
ΡΡΡΠ΄Π΅Π½Ρ Π³ΡΡΠΏΠΏΡ ΠΠ‘ — 52
ΠΠΎΠ³Π°Π½ Π.Π.
ΠΡΠΈΠ½ΡΠ»: ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ
ΠΊΠ°ΡΠ΅Π΄ΡΡ «ΠΠΠ‘»
ΠΠΏΠ°Π½Π΅ΡΠ½ΠΈΠΊΠΎΠ² Π.Π.
Π₯Π°Π±Π°ΡΠΎΠ²ΡΠΊ 2006
ΠΠ°Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΊΡΡΡΠΎΠ²ΡΡ ΡΠ°Π±ΠΎΡΡ
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π²ΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΡΡΠ³Π°
ΠΠΎΠ΅Π½Π½ΡΠ΅ ΡΠ°ΡΡΠΈ ΠΎΠΊΡΡΠ³Π° ΡΠ°ΡΠΊΠ²Π°ΡΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΠΌΠ΅ΡΡΠ°ΠΌ Π΄ΠΈΡΠ»ΠΎΠΊΠ°ΡΠΈΠΈ, ΠΏΡΠΈΡΠ΅ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΠ΅ΠΉ. ΠΠ°ΠΆΠ΄Π°Ρ Π²ΠΎΠΈΠ½ΡΠΊΠ°Ρ ΡΠ°ΡΡΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠΎΡ, ΡΠΎΡΡ ΠΈΠ· Π²Π·Π²ΠΎΠ΄ΠΎΠ², Π²Π·Π²ΠΎΠ΄Ρ ΠΈΠ· ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΠΉ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π²ΠΎΠΈΠ½ΡΠΊΠΈΠ΅ ΡΠ°ΡΡΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Π² Π΄ΠΈΠ²ΠΈΠ·ΠΈΠΈ, ΠΊΠΎΡΠΏΡΡΠ° ΠΈΠ»ΠΈ Π±ΡΠΈΠ³Π°Π΄Ρ, Π° ΡΠ΅ Π² Π°ΡΠΌΠΈΠΈ. ΠΠΎΠ΅Π½Π½ΡΠΉ ΠΎΠΊΡΡΠ³ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΎΡΠΈΡΠ΅ΡΡΠΊΠΈΠΌ ΡΠΎΡΡΠ°Π²ΠΎΠΌ (Π³Π΅Π½Π΅ΡΠ°Π»Ρ, ΠΏΠΎΠ»ΠΊΠΎΠ²Π½ΠΈΠΊΠΈ, ΠΏΠΎΠ΄ΠΏΠΎΠ»ΠΊΠΎΠ²Π½ΠΈΠΊΠΈ, ΠΌΠ°ΠΉΠΎΡΡ, ΠΊΠ°ΠΏΠΈΡΠ°Π½Ρ, Π»Π΅ΠΉΡΠ΅Π½Π°Π½ΡΡ) ΠΈ ΡΡΠ΄ΠΎΠ²ΡΠΌ ΠΈ ΡΠ΅ΡΠΆΠ°Π½ΡΡΠΊΠΈΠΌ ΡΠΎΡΡΠ°Π²ΠΎΠΌ (ΡΡΠ°ΡΡΠΈΠ½Ρ, ΡΠ΅ΡΠΆΠ°Π½ΡΡ, ΠΏΡΠ°ΠΏΠΎΡΡΠΈΠΊΠΈ, Π΅ΡΡΠ΅ΠΉΡΠΎΡΡ, ΡΡΠ΄ΠΎΠ²ΡΠ΅). ΠΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ Π²ΠΎΠ΅Π½Π½ΠΎΡΠ»ΡΠΆΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ, ΠΏΡΠΈΡΡΡΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ: Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°Π»ΠΎΠ² ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄Π°ΡΠ° ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ Π°ΠΊΠ°Π΄Π΅ΠΌΠΈΠΈ, Π΄Π°ΡΠ° ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠ°Π»ΡΡΠΊΠΎΠ³ΠΎ Π·Π²Π°Π½ΠΈΡ ΠΈ Ρ. Π΄. ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΠΈΠΌΠ΅Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ°, ΠΏΡΠΈΡΠ΅ΠΌ Π²ΠΎΠ΅Π½Π½ΠΎΡΠ»ΡΠΆΠ°ΡΠΈΠ΅ ΠΎΡΠΈΡΠ΅ΡΡΠΊΠΎΠ³ΠΎ ΡΠΎΡΡΠ°Π²Π° ΠΌΠΎΠ³ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΠΌ ΠΈΠ· Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΉ, Π° Π²ΠΎΠ΅Π½Π½ΠΎΡΠ»ΡΠΆΠ°ΡΠΈΠ΅ ΡΡΠ΄ΠΎΠ²ΠΎΠ³ΠΎ ΠΈ ΡΠ΅ΡΠΆΠ°Π½ΡΡΠΊΠΎΠ³ΠΎ ΡΠΎΡΡΠ°Π²Π° ΡΠΎΠ»ΡΠΊΠΎ Π²Π·Π²ΠΎΠ΄ΠΎΠΌ ΠΈ ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ. ΠΡΠ΅ Π²ΠΎΠ΅Π½Π½ΠΎΡΠ»ΡΠΆΠ°ΡΠΈΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΠΎΠΈΠ½ΡΠΊΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ.
ΠΠ°ΠΆΠ΄ΠΎΠΉ Π²ΠΎΠΈΠ½ΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΏΡΠΈΠ΄Π°Π½Π° Π±ΠΎΠ΅Π²Π°Ρ ΠΈ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½Π°Ρ ΡΠ΅Ρ Π½ΠΈΠΊΠ°: ΠΠΠ, ΡΡΠ³Π°ΡΠΈ, Π°Π²ΡΠΎΡΡΠ°Π½ΡΠΏΠΎΡΡ ΠΈ ΠΏΡ. ΠΈ Π²ΠΎΠΎΡΡΠΆΠ΅Π½ΠΈΠ΅: ΠΊΠ°ΡΠ°Π±ΠΈΠ½Ρ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΡΡΠΆΠΈΠ΅, Π°ΡΡΠΈΠ»Π»Π΅ΡΠΈΡ, ΡΠ°ΠΊΠ΅ΡΠ½ΠΎΠ΅ Π²ΠΎΠΎΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Ρ. Π΄. ΠΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ Π±ΠΎΠ΅Π²ΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ ΠΈ Π²ΠΎΠΎΡΡΠΆΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅, ΠΏΡΠΈΡΡΡΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΠΉ Π°ΡΡΠΈΠ±ΡΡΡ ΠΈ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΠΈΠ΄ΠΎΠ² ΡΠ΅Ρ Π½ΠΈΠΊΠΈ ΠΈ Π²ΠΎΠΎΡΡΠΆΠ΅Π½ΠΈΡ. ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Π²ΠΎΠ΅Π½Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π½Π°Π±ΠΎΡΠΎΠΌ ΡΠΎΠΎΡΡΠΆΠ΅Π½ΠΈΠΉ (ΡΠΎΠΎΡΡΠΆΠ΅Π½ΠΈΠ΅ (c)1, ΡΠΎΠΎΡΡΠΆΠ΅Π½ΠΈΠ΅ (c)2.. .), Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ Π΄ΠΈΡΠ»ΠΎΠΊΠ°ΡΠΈΠΈ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΡΠ°ΡΡΠΈ.
ΠΠΈΠ΄Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅:
ΠΠΎΠ»ΡΡΠΈΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ Π²ΡΠ΅Ρ ΡΠ°ΡΡΠ΅ΠΉ Π²ΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΡΡΠ³Π°, ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π°ΡΠΌΠΈΠΈ, Π΄ΠΈΠ²ΠΈΠ·ΠΈΠΈ, ΠΊΠΎΡΠΏΡΡΠ° ΠΈ ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠΎΠ².
ΠΠΎΠ»ΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ ΠΎΡΠΈΡΠ΅ΡΡΠΊΠΎΠΌΡ ΡΠΎΡΡΠ°Π²Ρ Π² ΡΠ΅Π»ΠΎΠΌ ΠΈ ΠΏΠΎ ΠΎΡΠΈΡΠ΅ΡΡΠΊΠΎΠΌΡ ΡΠΎΡΡΠ°Π²Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π·Π²Π°Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΠ°ΡΡΠ΅ΠΉ Π²ΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΡΡΠ³Π°, ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π°ΡΠΌΠΈΠΈ, Π΄ΠΈΠ²ΠΈΠ·ΠΈΠΈ, ΠΊΠΎΡΠΏΡΡΠ°, Π²ΠΎΠ΅Π½Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ.
ΠΠΎΠ»ΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ ΡΡΠ΄ΠΎΠ²ΠΎΠΌΡ ΠΈ ΡΠ΅ΡΠΆΠ°Π½ΡΡΠΊΠΎΠΌΡ ΡΠΎΡΡΠ°Π²Ρ Π² ΡΠ΅Π»ΠΎΠΌ ΠΈ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π·Π²Π°Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΠ°ΡΡΠ΅ΠΉ Π²ΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΡΡΠ³Π°, ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π°ΡΠΌΠΈΠΈ, Π΄ΠΈΠ²ΠΈΠ·ΠΈΠΈ, ΠΊΠΎΡΠΏΡΡΠ°, Π²ΠΎΠ΅Π½Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ.
ΠΠΎΠ»ΡΡΠΈΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΠΌΠ΅ΡΡ Π΄ΠΈΡΠ»ΠΎΠΊΠ°ΡΠΈΠΈ Π²ΡΠ΅Ρ ΡΠ°ΡΡΠ΅ΠΉ Π²ΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΡΡΠ³Π°, ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π°ΡΠΌΠΈΠΈ, Π΄ΠΈΠ²ΠΈΠ·ΠΈΠΈ, ΠΊΠΎΡΠΏΡΡΠ°, Π²ΠΎΠ΅Π½Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ.
ΠΠΎΠ»ΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎ Π½Π°Π»ΠΈΡΠΈΠΈ Π±ΠΎΠ΅Π²ΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠ΅ Π² ΡΠ΅Π»ΠΎΠΌ ΠΈ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΠΈΠ»ΠΈ Π²ΠΈΠ΄Π° Π²ΠΎ Π²ΡΠ΅Ρ ΡΠ°ΡΡΡΡ Π²ΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΡΡΠ³Π°, Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π°ΡΠΌΠΈΠΈ, Π΄ΠΈΠ²ΠΈΠ·ΠΈΠΈ, ΠΊΠΎΡΠΏΡΡΠ΅, Π²ΠΎΠ΅Π½Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ.
ΠΠΎΠ»ΡΡΠΈΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΡΠΎΠΎΡΡΠΆΠ΅Π½ΠΈΠΉ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²ΠΎΠ΅Π½Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ, ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΡΠΎΠΎΡΡΠΆΠ΅Π½ΠΈΠΉ, Π³Π΄Π΅ Π΄ΠΈΡΠ»ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ, Π³Π΄Π΅ Π½Π΅Π΄ΠΈΡΠ»ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ.
ΠΠΎΠ»ΡΡΠΈΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ Π²ΠΎΠ΅Π½Π½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ, Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΡΠ»ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° Π±ΠΎΠ΅Π²ΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ Π±ΠΎΠ»ΡΡΠ΅ 5 (Π½Π΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π±ΠΎΠ΅Π²ΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ).
ΠΠΎΠ»ΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎ Π½Π°Π»ΠΈΡΠΈΠΈ Π²ΠΎΠΎΡΡΠΆΠ΅Π½ΠΈΡ Π² ΡΠ΅Π»ΠΎΠΌ ΠΈ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΠΈΠ»ΠΈ Π²ΠΈΠ΄Π° Π²ΠΎ Π²ΡΠ΅Ρ ΡΠ°ΡΡΡΡ Π²ΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΡΡΠ³Π°, Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π°ΡΠΌΠΈΠΈ, Π΄ΠΈΠ²ΠΈΠ·ΠΈΠΈ, ΠΊΠΎΡΠΏΡΡΠ΅, Π²ΠΎΠ΅Π½Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ.
ΠΠΎΠ»ΡΡΠΈΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ Π²ΠΎΠ΅Π½Π½ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΡΠΌ Π² ΠΎΠΊΡΡΠ³Π΅, Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π°ΡΠΌΠΈΠΈ, Π΄ΠΈΠ²ΠΈΠ·ΠΈΠΈ, ΠΊΠΎΡΠΏΡΡΠ΅, Π²ΠΎΠ΅Π½Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΡΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² (Π½Π΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ²).
ΠΠΎΠ»ΡΡΠΈΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ Π²ΠΎΠ΅Π½Π½ΠΎΡΠ»ΡΠΆΠ°ΡΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΠΈ Π² ΠΎΠΊΡΡΠ³Π΅, Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π°ΡΠΌΠΈΠΈ, Π΄ΠΈΠ²ΠΈΠ·ΠΈΠΈ, ΠΊΠΎΡΠΏΡΡΠ΅, Π²ΠΎΠ΅Π½Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ, Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΠΎΠ΅Π½Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ.
ΠΠΎΠ»ΡΡΠΈΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ Π²ΠΎΠ΅Π½Π½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ, Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΡΠ»ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° Π²ΠΎΠΎΡΡΠΆΠ΅Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ 10 (Π½Π΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π²ΠΎΠΎΡΡΠΆΠ΅Π½ΠΈΡ).
ΠΠΎΠ»ΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ± Π°ΡΠΌΠΈΠΈ, Π΄ΠΈΠ²ΠΈΠ·ΠΈΠΈ, ΠΊΠΎΡΠΏΡΡΠ΅, Π² ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΎΠ΄ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ (ΠΌΠ΅Π½ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ) Π²ΠΎΠ΅Π½Π½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ.
1. ΠΠ°Π΄Π°ΡΠ° ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ
2. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ
3. ΠΠ½Π°Π»ΠΈΠ· ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ
4. Π‘Ρ Π΅ΠΌΠ° Π΄Π°Π½Π½ΡΡ
5. Π‘ΠΊΡΠΈΠΏΡ
6. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ CASE Studio 2.21
7. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°
8. Π’Π΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
9. Π‘ΠΏΠΈΡΠΎΠΊ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ
1. ΠΠ°Π΄Π°ΡΠ° ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ
Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π²ΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΡΡΠ³Π° Π² Π²ΠΈΠ΄Π΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΠΠ°Π½Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
a) ΠΡΠΎΡΠΌΠΎΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
b) ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² Π±Π°Π·Ρ
c) Π Π΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
d) ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΡΠ°Π½ΠΈΠΌΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΈ ΡΡΠΈΠ³Π³Π΅ΡΠΎΠ²
e) ΠΡΠ²ΠΎΠ΄ Π½ΡΠΆΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΡΠΌ Π·Π°ΠΏΡΠΎΡΠ°ΠΌ
f) Π€ΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΡΡΡΠ°
2. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ
ΠΠ°Π½Π½ΡΠ΅ — ΡΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½Π°Ρ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π΅Ρ ΡΠ±ΠΎΡ, Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠΌ ΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ.
ΠΠ»Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π΄Π°Π½Π½ΡΠ΅ — ΡΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΠΎΠΌ, ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅, ΡΠ΄ΠΎΠ±Π½Π°Ρ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΠΠ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΠΎ ΠΊΠ°Π½Π°Π»Π°ΠΌ ΡΠ²ΡΠ·ΠΈ.
ΠΠ°Π·Π° Π΄Π°Π½Π½ΡΡ — ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Π°Ρ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ , ΠΎΡΡΠ°ΠΆΠ°ΡΡΠ°Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΈΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ Π² ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ, ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ.
Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ (Π‘Π£ΠΠ) — ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡ ΡΠ·ΡΠΊΠΎΠ²ΡΡ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ², ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΠ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ. ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° (ΠΠΠ‘) — ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ°, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ±ΠΎΡ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ, ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΠΌΠΈ, ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΡΡΡΠ°Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΠΠ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ΅Π΄ΡΡΠ² ΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡΠ°Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅ΡΡΠΎΠ½Π°Π».
Π₯ΡΠ°Π½ΠΈΠΌΠ°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°
Π₯ΡΠ°Π½ΠΈΠΌΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ — ΡΡΠΎ ΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ SQL-ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΡΠ°Π½ΡΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅.
ΠΡΠΈ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
Β¦ Π ΡΠ²ΡΠ·ΠΈ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠΉ ΠΊΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π»ΠΈΠ±ΠΎ ΡΠ°ΠΌΡΡ ΡΠ°Π½Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΡ ΡΡ Π΄Π°Π½Π½ΡΡ (LRU — least recently used) Π»ΠΈΠ±ΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΡ ΡΡ Π΄Π°Π½Π½ΡΡ (MRU — most recently used), Ρ ΡΠ°Π½ΠΈΠΌΠ°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΎΡΡΠ°Π΅ΡΡΡ Π² ΠΊΡΡΠ΅ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΡΠ΅ΡΠ½Π΅Π½Π° ΠΎΡΡΡΠ΄Π° Π΄ΡΡΠ³ΠΎΠΉ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ.
Β¦ ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ΅ Ρ ΡΠ°Π½ΠΈΠΌΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π½Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.
Β¦ ΠΡΠΎΡΠ΅Π΄ΡΡΡ ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π»ΡΠ±ΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΡΡΠΎ ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡΡ Π΄Π°Π½Π½ΡΡ .
Β¦ Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΡΠΈΠ³Π³Π΅ΡΠΎΠ² ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π° Π½Π΅ SQL Server.
Β¦ ΠΡΠΎΡΠ΅Π΄ΡΡΡ ΠΌΠΎΠ³ΡΡ Π»ΠΈΠ±ΠΎ Π²ΡΠ±ΠΈΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅, Π»ΠΈΠ±ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ , Π½ΠΎ Π½Π΅ ΡΠΎ ΠΈ Π΄ΡΡΠ³ΠΎΠ΅ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
Π₯ΡΠ°Π½ΠΈΠΌΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ°Π²ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Ρ ΡΠ°Π½ΠΈΠΌΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, Π½ΠΎ Π½Π΅ ΠΏΡΠ°Π²ΠΎ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ ΡΠ°Π±Π»ΠΈΡΡ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Ρ ΡΠ°Π½ΠΈΠΌΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ:
Β¦ ΠΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ Π»ΠΎΠ³ΠΈΠΊΡ.
Β¦ ΠΡΠΎΡΠ΅Π΄ΡΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ.
Β¦ ΠΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π΄Π»Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ³ΠΎ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ (Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ΅Π°Π½ΡΠ° ΡΠ°Π±ΠΎΡΡ Ρ SQL Server).
Β¦ Π₯ΡΠ°Π½ΠΈΠΌΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Microsoft SQL Server.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ ΡΠ°Π½ΠΈΠΌΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅
ADOQuery1->SQL->Add («CREATE PROCEDURE proc2;1 as SELECT nazvanie_armii, COUNT (Nomer_podrazdelenia) AS col FROM chast GROUP BY nazvanie_armii HAVING COUNT (nazvanie_armii)>=ALL (SELECT COUNT (nazvanie_armii) FROM Chast GROUP BY nazvanie_armii)»);
Π’ΡΠΈΠ³Π³Π΅ΡΡ
Π’ΡΠΈΠ³Π³Π΅Ρ — ΡΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π²ΠΈΠ΄ Ρ ΡΠ°Π½ΠΈΠΌΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ. Π’ΡΠΈΠ³Π³Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ Π·Π°ΡΠΈΡΠ°Π΅Ρ. ΠΡΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ SQL INSERT, UPDATE ΠΈΠ»ΠΈ DELETE.
Π’ΡΠΈΠ³Π³Π΅ΡΡ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ Π΄Π»Ρ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΡΠΈΠΏΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠΌΠΌΠ°ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ . Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ°ΡΠΊΠ°Π΄Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΡΡΡΠ»ΠΎΡΠ½ΠΎΠΉ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ Π² Π΄Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Ρ, ΡΡΠΈΠ³Π³Π΅ΡΡ ΠΏΠΎΠΊΠ° Π½ΡΠΆΠ½Ρ. ΠΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²Π°ΠΌ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΊΠ°ΡΠΊΠ°Π΄Π½ΠΎΠ³ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΠΏΡΡΠΊΠ° Π½Π°ΡΡΡΠΈΡΡ ΡΡΡΠ»ΠΎΡΠ½ΡΡ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ. ΠΡΠ»ΠΈ Π΄Π»Ρ ΡΠ°Π±Π»ΠΈΡΡ, ΠΈΠΌΠ΅ΡΡΠ΅ΠΉ ΡΡΠΈΠ³Π³Π΅Ρ, Π΅ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, ΡΠΎ ΠΎΠ½ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ Π΄ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΈΠ³Π³Π΅ΡΠ°. ΠΡΠ»ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»Π΅Π½Ρ, ΡΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ, Π° Π²ΡΠ»Π΅Π΄ Π·Π° Π½ΠΈΠΌ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ ΡΡΠΈΠ³Π³Π΅Ρ.
Π’ΡΠΈΠ³Π³Π΅Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ:
Β¦ ΠΠ½ ΡΠ²ΡΠ·Π°Π½ Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ.
Β¦ ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ (Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ UPDATE, Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Ρ. Π΄.).
Β¦ Π’ΡΠΈΠ³Π³Π΅Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
Β¦ ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎ 16 ΡΡΠΎΠ²Π½Π΅ΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΠΈ.
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠΈΠ³Π³Π΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅, Π²ΡΠ·Π²Π°ΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΈΠ³Π³Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π·Π°ΠΏΡΡΡΠΈΡ Π½Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
Β¦ Π’ΡΠΈΠ³Π³Π΅Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠΎΠΉ ΡΠΎΡΠΌΠΎΠΉ ΠΏΡΠ°Π²ΠΈΠ», ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ Π΄Π°Π½Π½ΡΠΌΠΈ.
ΠΠ½ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡ ΠΎ Π²Π²ΠΎΠ΄Π΅ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΡΠ°ΡΡΡΡ Π½Π°ΡΡΡΠΈΡΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Π² Π±Π°Π·Π°Ρ Π΄Π°Π½Π½ΡΡ SQL Server.
Π’ΡΠΈΠ³Π³Π΅ΡΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ CREATE TRIGGER. ΠΠΎΠΌΠ°Π½Π΄Π° ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, Π΄Π»Ρ ΠΊΠ°ΠΊΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΡΠΈΠ³Π³Π΅Ρ ΠΈ ΠΏΡΠΈ Π½Π°ΡΡΡΠΏΠ»Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ ΡΡΠΈΠ³Π³Π΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΡΡΠΈΠ³Π³Π΅Ρ ΡΡΠ°Π±ΠΎΡΠ°Π», ΡΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ Π²ΡΡ ΠΎΠ΄ΠΎΠΌ ΠΈΠ· ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΡΠΈΠ³Π³Π΅ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ DROP TRIGGER. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠΈΠ³Π³Π΅ΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅:
ADOQuery1->SQL->Add («Create trigger trig on Obedinenie for update as begin if update ([nazvanie_armii]) begin UPDATE chast SET chast. nazvanie_armii=inserted.nazvanie_armii FROM chast, deleted, inserted WHERE chast. nazvanie_armii=deleted.nazvanie_armii end end»);
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΡΡΡΡΠΎΠ²
QuickReport ΡΡΠΎ Π½Π°Π±ΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΄Π»Ρ Builder ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ Π²Π°ΠΌ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΠΎΡΡΠ΅Ρ ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π±ΡΡΡΡΠΎ ΠΈ ΠΏΡΠΎΡΡΠΎ.
ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΠΏΠ΅ΡΠ°ΡΠ°ΡΡ ΠΎΡΡΠ΅Ρ, Π½ΠΎ ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π΅Π³ΠΎ Π½Π° ΡΠΊΡΠ°Π½Π΅, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π±Π΅Π· ΠΏΠΎΡΡΠΈ Π±ΡΠΌΠ°Π³ΠΈ ΠΈ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΡΠ΅Ρ Π² Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΎΡΠΌΠ°ΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΡΠΎΠΉ ASCII ΡΠ΅ΠΊΡΡ, ΡΠ΅ΠΊΡΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π·Π°ΠΏΡΡΡΠΌΠΈ (CSV) ΠΈ Π² HTML.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
ΠΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ QuickReport ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π½Π° Π·Π°ΠΊΠ»Π°Π΄ΠΊΠ΅ QReport ΠΏΠ°Π»ΠΈΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Delphi. ΠΠ΄Π΅ΡΡ ΠΊΡΠ°ΡΠΊΠΈΠΉ ΡΡΡ ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ.
Figure 1 — TQuickRep and band components
TQuickRep. ΠΡΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΡ ΠΏΠ΅ΡΠ°ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. ΠΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ Π»ΠΈΡΡ Π±ΡΠΌΠ°Π³ΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΠ΅ΡΠ°ΡΠ°ΡΡ. ΠΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Page ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡ Π±ΡΠΌΠ°Π³ΠΈ, Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Dataset ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΎΡΡΠ΅ΡΠ°.
TQuickReport Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ ΠΎΠΆ Π½Π° TDataModule — ΡΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠΈΠΏ ΡΠΎΡΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠ»ΠΈ Π²Ρ, ΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ TQuickReport Π½Π° ΠΏΡΠ΅Π²Π΄ΠΎ-ΡΠΎΡΠΌΠ΅ Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° TQuickRep— Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΡΠ°Π·Π½ΠΈΡΡ Π² ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π°Ρ , ΡΠ²ΠΎΠΉΡΡΠ²Π°Ρ ΠΈ ΡΠΎΠ±ΡΡΠΈΡΡ . ΠΠΎ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ TQuickRep Π½Π° ΡΠΎΡΠΌΠ΅: ΡΡΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ TQuickRep Π½Π° ΡΠΎΡΠΌΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ OnCreate Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΆΠ΅Π»Π°Π΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² ΠΎΡΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΏΡΡΠ΅ΠΌ.
3. ΠΠ½Π°Π»ΠΈΠ· ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ
ΠΠΎΠ΅Π½Π½ΡΠ΅ ΡΠ°ΡΡΠΈ ΠΎΠΊΡΡΠ³Π° ΡΠ°ΡΠΊΠ²Π°ΡΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΠΌΠ΅ΡΡΠ°ΠΌ Π΄ΠΈΡΠ»ΠΎΠΊΠ°ΡΠΈΠΈ, ΠΏΡΠΈΡΠ΅ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΠ΅ΠΉ. ΠΠ°ΠΆΠ΄Π°Ρ Π²ΠΎΠΈΠ½ΡΠΊΠ°Ρ ΡΠ°ΡΡΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠΎΡ, ΡΠΎΡΡ ΠΈΠ· Π²Π·Π²ΠΎΠ΄ΠΎΠ², Π²Π·Π²ΠΎΠ΄Ρ ΠΈΠ· ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΠΉ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π²ΠΎΠΈΠ½ΡΠΊΠΈΠ΅ ΡΠ°ΡΡΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Π² Π΄ΠΈΠ²ΠΈΠ·ΠΈΠΈ, ΠΊΠΎΡΠΏΡΡΠ° ΠΈΠ»ΠΈ Π±ΡΠΈΠ³Π°Π΄Ρ, Π° ΡΠ΅ Π² Π°ΡΠΌΠΈΠΈ.
ΠΠΎΠ΅Π½Π½ΡΠΉ ΠΎΠΊΡΡΠ³ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΎΡΠΈΡΠ΅ΡΡΠΊΠΈΠΌ ΡΠΎΡΡΠ°Π²ΠΎΠΌ (Π³Π΅Π½Π΅ΡΠ°Π»Ρ, ΠΏΠΎΠ»ΠΊΠΎΠ²Π½ΠΈΠΊΠΈ, ΠΏΠΎΠ΄ΠΏΠΎΠ»ΠΊΠΎΠ²Π½ΠΈΠΊΠΈ, ΠΌΠ°ΠΉΠΎΡΡ, ΠΊΠ°ΠΏΠΈΡΠ°Π½Ρ, Π»Π΅ΠΉΡΠ΅Π½Π°Π½ΡΡ) ΠΈ ΡΡΠ΄ΠΎΠ²ΡΠΌ ΠΈ ΡΠ΅ΡΠΆΠ°Π½ΡΡΠΊΠΈΠΌ ΡΠΎΡΡΠ°Π²ΠΎΠΌ (ΡΡΠ°ΡΡΠΈΠ½Ρ, ΡΠ΅ΡΠΆΠ°Π½ΡΡ, ΠΏΡΠ°ΠΏΠΎΡΡΠΈΠΊΠΈ, Π΅ΡΡΠ΅ΠΉΡΠΎΡΡ, ΡΡΠ΄ΠΎΠ²ΡΠ΅).
ΠΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ Π²ΠΎΠ΅Π½Π½ΠΎΡΠ»ΡΠΆΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ, ΠΏΡΠΈΡΡΡΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ: Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°Π»ΠΎΠ² ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄Π°ΡΠ° ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ Π°ΠΊΠ°Π΄Π΅ΠΌΠΈΠΈ, Π΄Π°ΡΠ° ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠ°Π»ΡΡΠΊΠΎΠ³ΠΎ Π·Π²Π°Π½ΠΈΡ ΠΈ Ρ. Π΄. ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΠΈΠΌΠ΅Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ°, ΠΏΡΠΈΡΠ΅ΠΌ Π²ΠΎΠ΅Π½Π½ΠΎΡΠ»ΡΠΆΠ°ΡΠΈΠ΅ ΠΎΡΠΈΡΠ΅ΡΡΠΊΠΎΠ³ΠΎ ΡΠΎΡΡΠ°Π²Π° ΠΌΠΎΠ³ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΠΌ ΠΈΠ· Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΉ, Π° Π²ΠΎΠ΅Π½Π½ΠΎΡΠ»ΡΠΆΠ°ΡΠΈΠ΅ ΡΡΠ΄ΠΎΠ²ΠΎΠ³ΠΎ ΠΈ ΡΠ΅ΡΠΆΠ°Π½ΡΡΠΊΠΎΠ³ΠΎ ΡΠΎΡΡΠ°Π²Π° ΡΠΎΠ»ΡΠΊΠΎ Π²Π·Π²ΠΎΠ΄ΠΎΠΌ ΠΈ ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ.
ΠΡΠ΅ Π²ΠΎΠ΅Π½Π½ΠΎΡΠ»ΡΠΆΠ°ΡΠΈΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΠΎΠΈΠ½ΡΠΊΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ.
ΠΠ°ΠΆΠ΄ΠΎΠΉ Π²ΠΎΠΈΠ½ΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΏΡΠΈΠ΄Π°Π½Π° Π±ΠΎΠ΅Π²Π°Ρ ΠΈ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½Π°Ρ ΡΠ΅Ρ Π½ΠΈΠΊΠ°: ΠΠΠ, ΡΡΠ³Π°ΡΠΈ, Π°Π²ΡΠΎΡΡΠ°Π½ΡΠΏΠΎΡΡ ΠΈ ΠΏΡ. ΠΈ Π²ΠΎΠΎΡΡΠΆΠ΅Π½ΠΈΠ΅: ΠΊΠ°ΡΠ°Π±ΠΈΠ½Ρ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΡΡΠΆΠΈΠ΅, Π°ΡΡΠΈΠ»Π»Π΅ΡΠΈΡ, ΡΠ°ΠΊΠ΅ΡΠ½ΠΎΠ΅ Π²ΠΎΠΎΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Ρ. Π΄.
ΠΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ Π±ΠΎΠ΅Π²ΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ ΠΈ Π²ΠΎΠΎΡΡΠΆΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅, ΠΏΡΠΈΡΡΡΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΠΉ Π°ΡΡΠΈΠ±ΡΡΡ ΠΈ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΠΈΠ΄ΠΎΠ² ΡΠ΅Ρ Π½ΠΈΠΊΠΈ ΠΈ Π²ΠΎΠΎΡΡΠΆΠ΅Π½ΠΈΡ. ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Π²ΠΎΠ΅Π½Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π½Π°Π±ΠΎΡΠΎΠΌ ΡΠΎΠΎΡΡΠΆΠ΅Π½ΠΈΠΉ (ΡΠΎΠΎΡΡΠΆΠ΅Π½ΠΈΠ΅ (c)1, ΡΠΎΠΎΡΡΠΆΠ΅Π½ΠΈΠ΅ (c)2.. .), Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ Π΄ΠΈΡΠ»ΠΎΠΊΠ°ΡΠΈΠΈ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΡΠ°ΡΡΠΈ.
4. Π‘Ρ Π΅ΠΌΠ° Π΄Π°Π½Π½ΡΡ
5. Π‘ΠΊΡΠΈΠΏΡ
/*
Created11.12.2006
Modified19.12.2006
Project
Model
Company
Author
Version
DatabaseMS SQL 2000
*/
Drop trigger [tu_Chast]
go
Drop trigger [tu_Rota]
go
Drop trigger [tu_Vzvod]
go
Drop trigger [tu_Obedinenie]
go
Drop trigger [tu_armia]
go
Drop trigger [tu_Podrazdelenie]
go
Drop trigger [td_Chast]
go
Drop trigger [td_Rota]
go
Drop trigger [td_Vzvod]
go
Drop trigger [td_Obedinenie]
go
Drop trigger [td_armia]
go
Drop trigger [td_Podrazdelenie]
go
Drop table [Voorugenie]
go
Drop table [Podrazdelenie]
go
Drop table [Tehnika]
go
Drop table [Soorugenia]
go
Drop table [armia]
go
Drop table [sostav]
go
Drop table [Obedinenie]
go
Drop table [Otdelenie]
go
Drop table [Vzvod]
go
Drop table [Rota]
go
Drop table [Chast]
go
Create table [Chast]
(
[Nazvanie_chasti] Char (10) NULL,
[Nomer_podrazdelenia] Char (10) NOT NULL,
[tip_i_nomer_obedinenia] Char (10) NOT NULL,
[nazvanie_armii] Char (10) NOT NULL,
[Mesto] Char (10) NOT NULL,
Constraint [pk_Chast] Primary Key ([Nomer_podrazdelenia],[tip_i_nomer_obedinenia],[nazvanie_armii],[Mesto])
)
go
Create table [Rota]
(
[Nazv_roti] Char (10) NOT NULL,
[Nomer_podrazdelenia] Char (10) NOT NULL,
[tip_i_nomer_obedinenia] Char (10) NOT NULL,
[nazvanie_armii] Char (10) NOT NULL,
[Mesto] Char (10) NOT NULL,
Constraint [pk_Rota] Primary Key ([Nazv_roti],[Nomer_podrazdelenia],[tip_i_nomer_obedinenia],[nazvanie_armii],[Mesto])
)
go
Create table [Vzvod]
(
[Nazv_vzvoda] Char (10) NOT NULL,
[Nomer_podrazdelenia] Char (10) NOT NULL,
[nazvanie_armii] Char (10) NOT NULL,
[tip_i_nomer_obedinenia] Char (10) NOT NULL,
[Nazv_roti] Char (10) NOT NULL,
[Mesto] Char (10) NOT NULL,
Constraint [pk_Vzvod] Primary Key ([Nazv_vzvoda],[Nomer_podrazdelenia],[nazvanie_armii],[tip_i_nomer_obedinenia],[Nazv_roti],[Mesto])
)
go
Create table [Otdelenie]
(
[Nazv_otdel] Char (10) NOT NULL,
[Nomer_podrazdelenia] Char (10) NOT NULL,
[nazvanie_armii] Char (10) NOT NULL,
[tip_i_nomer_obedinenia] Char (10) NOT NULL,
[Nazv_roti] Char (10) NOT NULL,
[Nazv_vzvoda] Char (10) NOT NULL,
[Mesto] Char (10) NOT NULL,
Constraint [pk_Otdelenie] Primary Key ([Nazv_otdel],[Nomer_podrazdelenia],[nazvanie_armii],[tip_i_nomer_obedinenia],[Nazv_roti],[Nazv_vzvoda],[Mesto])
)
go
Create table [Obedinenie]
(
[tip_i_nomer_obedinenia] Char (10) NOT NULL,
[Nomer_podrazdelenia] Char (10) NOT NULL,
[nazvanie_armii] Char (10) NOT NULL,
Constraint [pk_Obedinenie] Primary Key ([tip_i_nomer_obedinenia],[Nomer_podrazdelenia],[nazvanie_armii])
)
go
Create table [sostav]
(
[Kod_slugashego] Char (10) NOT NULL,
[FIO] Char (30) NOT NULL,
[Zvanie] Char (30) NOT NULL,
[Special] Char (30) NOT NULL,
[Tip_sostava] Char (10) NOT NULL,
[Podchinaetca] Char (10) NOT NULL,
[Nomer_podrazdelenia] Char (10) NOT NULL,
Constraint [pk_sostav] Primary Key ([Kod_slugashego],[FIO],[Zvanie],[Nomer_podrazdelenia])
)
go
Create table [armia]
(
[nazvanie_armii] Char (10) NOT NULL,
[Nomer_podrazdelenia] Char (10) NOT NULL,
Constraint [pk_armia] Primary Key ([nazvanie_armii],[Nomer_podrazdelenia])
)
go
Create table [Soorugenia]
(
[Nomer_coorugenia] Char (10) NOT NULL,
[Nomer_disloc_obedinenia] Char (10) NOT NULL,
[Nomer_podrazdelenia] Char (10) NOT NULL,
Constraint [pk_Soorugenia] Primary Key ([Nomer_coorugenia],[Nomer_disloc_obedinenia],[Nomer_podrazdelenia])
)
go
Create table [Tehnika]
(
[Tip_tehniki] Char (10) NOT NULL,
[Kol_vo_tehniki] Integer NOT NULL,
[Nomer_podrazdelenia] Char (10) NOT NULL,
Constraint [pk_Tehnika] Primary Key ([Tip_tehniki],[Kol_vo_tehniki],[Nomer_podrazdelenia])
)
go
Create table [Podrazdelenie]
(
[Nomer_podrazdelenia] Char (10) NOT NULL,
Constraint [pk_Podrazdelenie] Primary Key ([Nomer_podrazdelenia]))
go
Create table [Voorugenie]
(
[Tip_voorug] Char (10) NOT NULL,
[Kol_vo_voorug] Integer NOT NULL,
[Nomer_podrazdelenia] Char (10) NOT NULL,
Constraint [pk_Voorugenie] Primary Key ([Tip_voorug],[Kol_vo_voorug],[Nomer_podrazdelenia]))
go
Set quoted_identifier on
go
/* Update trigger «tu_Chast» for table «Chast» */
Create trigger [tu_Chast]
on [Chast] for update as
begin
declare @numrows int
select @numrows = @@rowcount
if @numrows = 0
return
/* Restrict child «Rota» when parent «Chast» updated */
if update ([Nomer_podrazdelenia]) or
update ([tip_i_nomer_obedinenia]) or
update ([nazvanie_armii]) or
update ([Mesto])
begin
if exists (select 1 from [Rota] t, deleted d
where t. Nomer_podrazdelenia] = d. Nomer_podrazdelenia] and
t. tip_i_nomer_obedinenia] = d. tip_i_nomer_obedinenia] and
t. nazvanie_armii] = d. nazvanie_armii] and
t. Mesto] = d. Mesto])
begin
raiserror 50 001 'Children still exist in table ''Rota''. Cannot update parent table ''Chast''.'
rollback transaction
return
end
end
end
go
/* Update trigger «tu_Rota» for table «Rota» */
Create trigger [tu_Rota]
on [Rota] for update as
begin
declare @numrows int
select @numrows = @@rowcount
if @numrows = 0
return
/* Restrict child «Vzvod» when parent «Rota» updated */
if update ([Nazv_roti]) or
update ([Nomer_podrazdelenia]) or
update ([tip_i_nomer_obedinenia]) or
update ([nazvanie_armii]) or
update ([Mesto])
begin
if exists (select 1 from [Vzvod] t, deleted d
where t. Nazv_roti] = d. Nazv_roti] and
t. Nomer_podrazdelenia] = d. Nomer_podrazdelenia] and
t. tip_i_nomer_obedinenia] = d. tip_i_nomer_obedinenia] and
t. nazvanie_armii] = d. nazvanie_armii] and
t. Mesto] = d. Mesto])
begin
raiserror 50 001 'Children still exist in table ''Vzvod''. Cannot update parent table ''Rota''.'
rollback transaction
return
end
end
end
go
/* Update trigger «tu_Vzvod» for table «Vzvod» */
Create trigger [tu_Vzvod]
on [Vzvod] for update as
begin
declare @numrows int
select @numrows = @@rowcount
if @numrows = 0
return
/* Restrict child «Otdelenie» when parent «Vzvod» updated */
if update ([Nazv_vzvoda]) or
update ([Nomer_podrazdelenia]) or
update ([nazvanie_armii]) or
update ([tip_i_nomer_obedinenia]) or
update ([Nazv_roti]) or
update ([Mesto])
begin
if exists (select 1 from [Otdelenie] t, deleted d
where t. Nazv_vzvoda] = d. Nazv_vzvoda] and
t. Nomer_podrazdelenia] = d. Nomer_podrazdelenia] and
t. nazvanie_armii] = d. nazvanie_armii] and
t. tip_i_nomer_obedinenia] = d. tip_i_nomer_obedinenia] and
t. Nazv_roti] = d. Nazv_roti] and
t. Mesto] = d. Mesto])
begin
raiserror 50 001 'Children still exist in table ''Otdelenie''. Cannot update parent table ''Vzvod''.'
rollback transaction
return
end
end
end
go
/* Update trigger «tu_Obedinenie» for table «Obedinenie» */
Create trigger [tu_Obedinenie]
on [Obedinenie] for update as
begin
declare @numrows int
select @numrows = @@rowcount
if @numrows = 0
return
/* Restrict child «Chast» when parent «Obedinenie» updated */
if update ([tip_i_nomer_obedinenia]) or
update ([Nomer_podrazdelenia]) or
update ([nazvanie_armii])
begin
if exists (select 1 from [Chast] t, deleted d
where t. tip_i_nomer_obedinenia] = d. tip_i_nomer_obedinenia] and
t. Nomer_podrazdelenia] = d. Nomer_podrazdelenia] and
t. nazvanie_armii] = d. nazvanie_armii])
begin
raiserror 50 001 'Children still exist in table ''Chast''. Cannot update parent table ''Obedinenie''.'
rollback transaction
return
end
end
end
go
/* Update trigger «tu_armia» for table «armia» */
Create trigger [tu_armia]
on [armia] for update as
begin
declare @numrows int
select @numrows = @@rowcount
if @numrows = 0
return
/* Restrict child «Obedinenie» when parent «armia» updated */
if update ([nazvanie_armii]) or
update ([Nomer_podrazdelenia])
begin
if exists (select 1 from [Obedinenie] t, deleted d
where t. nazvanie_armii] = d. nazvanie_armii] and
t. Nomer_podrazdelenia] = d. Nomer_podrazdelenia])
begin
raiserror 50 001 'Children still exist in table ''Obedinenie''. Cannot update parent table ''armia''.'
rollback transaction
return
end
end
end
go
/* Update trigger «tu_Podrazdelenie» for table «Podrazdelenie» */
Create trigger [tu_Podrazdelenie]
on [Podrazdelenie] for update as
begin
declare @numrows int
select @numrows = @@rowcount
if @numrows = 0
return
/* Restrict child «armia» when parent «Podrazdelenie» updated */
if update ([Nomer_podrazdelenia])
begin
if exists (select 1 from [armia] t, deleted d
where t. Nomer_podrazdelenia] = d. Nomer_podrazdelenia])
begin
raiserror 50 001 'Children still exist in table ''armia''. Cannot update parent table ''Podrazdelenie''.'
rollback transaction
return
end
end
/* Restrict child «sostav» when parent «Podrazdelenie» updated */
if update ([Nomer_podrazdelenia])
begin
if exists (select 1 from [sostav] t, deleted d
where t. Nomer_podrazdelenia] = d. Nomer_podrazdelenia])
begin
raiserror 50 001 'Children still exist in table ''sostav''. Cannot update parent table ''Podrazdelenie''.'
rollback transaction
return
end
end
/* Restrict child «Tehnika» when parent «Podrazdelenie» updated */
if update ([Nomer_podrazdelenia])
begin
if exists (select 1 from [Tehnika] t, deleted d
where t. Nomer_podrazdelenia] = d. Nomer_podrazdelenia])
begin
raiserror 50 001 'Children still exist in table ''Tehnika''. Cannot update parent table ''Podrazdelenie''.'
rollback transaction
return
end
end
/* Restrict child «Voorugenie» when parent «Podrazdelenie» updated */
if update ([Nomer_podrazdelenia])
begin
if exists (select 1 from [Voorugenie] t, deleted d
where t. Nomer_podrazdelenia] = d. Nomer_podrazdelenia])
begin
raiserror 50 001 'Children still exist in table ''Voorugenie''. Cannot update parent table ''Podrazdelenie''.'
rollback transaction
return
end
end
/* Restrict child «Soorugenia» when parent «Podrazdelenie» updated */
if update ([Nomer_podrazdelenia])
begin
if exists (select 1 from [Soorugenia] t, deleted d
where t. Nomer_podrazdelenia] = d. Nomer_podrazdelenia])
begin
raiserror 50 001 'Children still exist in table ''Soorugenia''. Cannot update parent table ''Podrazdelenie''.'
rollback transaction
return
end
end
end
go
/* Delete trigger «td_Chast» for table «Chast» */
Create trigger [td_Chast]
on [Chast] for delete as
begin
declare @numrows int
select @numrows = @@rowcount
if @numrows = 0
return
/* Restrict child «Rota» when parent «Chast» deleted */
if exists (select 1 from [Rota] t, deleted d
where t. Nomer_podrazdelenia] = d. Nomer_podrazdelenia] and
t. tip_i_nomer_obedinenia] = d. tip_i_nomer_obedinenia] and
t. nazvanie_armii] = d. nazvanie_armii] and
t. Mesto] = d. Mesto])
begin
raiserror 50 003 'Children still exist in table ''Rota''. Cannot delete from parent table ''Chast''.'
rollback transaction
return
end
end
go
/* Delete trigger «td_Rota» for table «Rota» */
Create trigger [td_Rota]
on [Rota] for delete as
begin
declare @numrows int
select @numrows = @@rowcount
if @numrows = 0
return
/* Restrict child «Vzvod» when parent «Rota» deleted */
if exists (select 1 from [Vzvod] t, deleted d
where t. Nazv_roti] = d. Nazv_roti] and
t. Nomer_podrazdelenia] = d. Nomer_podrazdelenia] and
t. tip_i_nomer_obedinenia] = d. tip_i_nomer_obedinenia] and
t. nazvanie_armii] = d. nazvanie_armii] and
t. Mesto] = d. Mesto])
begin
raiserror 50 003 'Children still exist in table ''Vzvod''. Cannot delete from parent table ''Rota''.'
rollback transaction
return
end
end
go
/* Delete trigger «td_Vzvod» for table «Vzvod» */
Create trigger [td_Vzvod]
on [Vzvod] for delete as
begin
declare @numrows int
select @numrows = @@rowcount
if @numrows = 0
return
/* Restrict child «Otdelenie» when parent «Vzvod» deleted */
if exists (select 1 from [Otdelenie] t, deleted d
where t. Nazv_vzvoda] = d. Nazv_vzvoda] and
t. Nomer_podrazdelenia] = d. Nomer_podrazdelenia] and
t. nazvanie_armii] = d. nazvanie_armii] and
t. tip_i_nomer_obedinenia] = d. tip_i_nomer_obedinenia] and
t. Nazv_roti] = d. Nazv_roti] and
t. Mesto] = d. Mesto])
begin
raiserror 50 003 'Children still exist in table ''Otdelenie''. Cannot delete from parent table ''Vzvod''.'
rollback transaction
return
end
end
go
/* Delete trigger «td_Obedinenie» for table «Obedinenie» */
Create trigger [td_Obedinenie]
on [Obedinenie] for delete as
begin
declare @numrows int
select @numrows = @@rowcount
if @numrows = 0
return
/* Restrict child «Chast» when parent «Obedinenie» deleted */
if exists (select 1 from [Chast] t, deleted d
where t. tip_i_nomer_obedinenia] = d. tip_i_nomer_obedinenia] and
t. Nomer_podrazdelenia] = d. Nomer_podrazdelenia] and
t. nazvanie_armii] = d. nazvanie_armii])
begin
raiserror 50 003 'Children still exist in table ''Chast''. Cannot delete from parent table ''Obedinenie''.'
rollback transaction
return
end
end
go
/* Delete trigger «td_armia» for table «armia» */
Create trigger [td_armia]
on [armia] for delete as
begin
declare @numrows int
select @numrows = @@rowcount
if @numrows = 0
return
/* Restrict child «Obedinenie» when parent «armia» deleted */
if exists (select 1 from [Obedinenie] t, deleted d
where t. nazvanie_armii] = d. nazvanie_armii] and
t. Nomer_podrazdelenia] = d. Nomer_podrazdelenia])
begin
raiserror 50 003 'Children still exist in table ''Obedinenie''. Cannot delete from parent table ''armia''.'
rollback transaction
return
end
end
go
/* Delete trigger «td_Podrazdelenie» for table «Podrazdelenie» */
Create trigger [td_Podrazdelenie]
on [Podrazdelenie] for delete as
begin
declare @numrows int
select @numrows = @@rowcount
if @numrows = 0
return
/* Restrict child «armia» when parent «Podrazdelenie» deleted */
if exists (select 1 from [armia] t, deleted d
where t. Nomer_podrazdelenia] = d. Nomer_podrazdelenia])
begin
raiserror 50 003 'Children still exist in table ''armia''. Cannot delete from parent table ''Podrazdelenie''.'
rollback transaction
return
end
/* Restrict child «sostav» when parent «Podrazdelenie» deleted */
if exists (select 1 from [sostav] t, deleted d
where t. Nomer_podrazdelenia] = d. Nomer_podrazdelenia])
begin
raiserror 50 003 'Children still exist in table ''sostav''. Cannot delete from parent table ''Podrazdelenie''.'
rollback transaction
return
end
/* Restrict child «Tehnika» when parent «Podrazdelenie» deleted */
if exists (select 1 from [Tehnika] t, deleted d
where t. Nomer_podrazdelenia] = d. Nomer_podrazdelenia])
begin
raiserror 50 003 'Children still exist in table ''Tehnika''. Cannot delete from parent table ''Podrazdelenie''.'
rollback transaction
return
end
/* Restrict child «Voorugenie» when parent «Podrazdelenie» deleted */
if exists (select 1 from [Voorugenie] t, deleted d
where t. Nomer_podrazdelenia] = d. Nomer_podrazdelenia])
begin
raiserror 50 003 'Children still exist in table ''Voorugenie''. Cannot delete from parent table ''Podrazdelenie''.'
rollback transaction
return
end
/* Restrict child «Soorugenia» when parent «Podrazdelenie» deleted */
if exists (select 1 from [Soorugenia] t, deleted d
where t. Nomer_podrazdelenia] = d. Nomer_podrazdelenia])
begin
raiserror 50 003 'Children still exist in table ''Soorugenia''. Cannot delete from parent table ''Podrazdelenie''.'
rollback transaction
return
end
end
go
Set quoted_identifier off
go
/* Roles permissions */
6. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ CASE Studio 2.21
7. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°
ΠΠ°ΠΏΡΠΎΡΡ:
SELECT chast. Nazvanie_chasti, chast. Nomer_podrazdelenia, chast. Mesto, chast. tip_i_nomer_obedinenia, chast. nazvanie_armii, sostav. FIO, sostav. Zvanie, sostav. Kod_slugashego FROM chast, sostav WHERE chast. nazvanie_armii=:par1 AND sostav. Nomer_podrazdelenia=chast.Nomer_podrazdelenia
SELECT chast. Nazvanie_chasti, chast. Nomer_podrazdelenia, chast. Mesto, chast. tip_i_nomer_obedinenia, chast. nazvanie_armii, sostav. FIO, sostav. Zvanie, sostav. Kod_slugashego FROM chast, sostav WHERE chast. Nomer_podrazdelenia=sostav.Nomer_podrazdelenia AND sostav. Tip_sostava=:par1
SELECT Nazvanie_chasti, Nomer_podrazdelenia, Mesto FROM chast WHERE Nomer_podrazdelenia=:par1
SELECT chast. Nazvanie_chasti, chast. Nomer_podrazdelenia, tehnika. Tip_tehniki, tehnika. kol_vo_tehniki FROM chast, tehnika WHERE chast. Nomer_podrazdelenia=tehnika.Nomer_podrazdelenia AND chast. Nomer_podrazdelenia=:par1
SELECT Soorugenia. Nomer_coorugenia, Soorugenia. Nomer_disloc_obedinenia, Chast. Nazvanie_chasti FROM Soorugenia, chast WHERE chast. Nomer_podrazdelenia=Soorugenia.Nomer_podrazdelenia AND chast. Nomer_podrazdelenia=:par1
SELECT nomer_coorugenia, COUNT (Nomer_disloc_obedinenia) as col FROM Soorugenia GROUP BY nomer_coorugenia HAVING COUNT (Nomer_disloc_obedinenia)>:par1
SELECT chast. Nomer_podrazdelenia, tehnika. kol_vo_tehniki, tehnika. tip_tehniki FROM chast, tehnika WHERE chast. Nomer_podrazdelenia=tehnika.Nomer_podrazdelenia AND tehnika. kol_vo_tehniki>:par1 ORDER BY chast. Nomer_podrazdelenia
SELECT chast. Nazvanie_chasti, chast. Nomer_podrazdelenia, Voorugenie. Tip_voorug, Voorugenie. kol_vo_voorug FROM chast, Voorugenie WHERE chast. Nomer_podrazdelenia=Voorugenie.Nomer_podrazdelenia AND chast. Nomer_podrazdelenia=:par1
SELECT sostav. special, COUNT (sostav.FIO) as col FROM Chast, sostav WHERE chast. Nomer_podrazdelenia=sostav.Nomer_podrazdelenia GROUP BY sostav. special HAVING COUNT (sostav.FIO)>:par1
SELECT chast. Nomer_podrazdelenia, chast. Nazvanie_chasti, sostav. FIO, sostav. Zvanie, sostav. Kod_slugashego FROM Chast, sostav WHERE chast. Nomer_podrazdelenia=sostav.Nomer_podrazdelenia AND sostav. special=:par1
SELECT chast. Nazvanie_chasti, chast. Nomer_podrazdelenia, chast. Mesto, Voorugenie. Tip_voorug, Voorugenie. kol_vo_voorug FROM Chast, Voorugenie WHERE chast. Nomer_podrazdelenia= Voorugenie. Nomer_podrazdelenia AND Voorugenie. Tip_voorug=:par1 AND Voorugenie. kol_vo_voorug>10
SELECT nazvanie_armii, COUNT (Nomer_podrazdelenia) AS col FROM chast GROUP BY nazvanie_armii HAVING COUNT (nazvanie_armii)>=ALL (SELECT COUNT (nazvanie_armii) FROM Chast GROUP BY nazvanie_armii)
8. Π’Π΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
UNIT1:
//—————————————————————————————————————;
#include
#pragma hdrstop
#include «Unit2.h»
#include «Unit1.h»
#include «Unit3.h»
//—————————————————————————————————————;
#pragma package (smart_init)
#pragma resource «*.dfm»
TForm1 *Form1;
int colcount;
TQRDBText *qrdbed[10];
TQRLabel *qrlabl[10];
TDBEdit *dbed[10];
TLabel *labl[10];
//—————————————————————————————————————;
__fastcall TForm1: TForm1(TComponent* Owner)
: TForm (Owner)
{
Label5->Caption=ADOTable2->TableName;
Label4->Caption=ADOTable1->TableName;
}
//—————————————————————————————————————;
void __fastcall TForm1: Button3Click (TObject *Sender)
{
ADOQuery1->Active=false;
AnsiString zapros;
DataSource3->DataSet=ADOQuery1;
zapros=ComboBox1->Text;
ADOQuery1->SQL->Clear ();
ADOQuery1->SQL->Add (zapros);
if (ADOQuery1->Parameters->Count≠0)
ADOQuery1->Parameters->ParamByName («par1»)->Value=Edit1->Text;
ADOQuery1->ExecSQL ();
ADOQuery1->Active=true;
}
//—————————————————————————————————————;
void __fastcall TForm1: Button4Click (TObject *Sender)
{
TLocateOptions Opts;
Opts.Clear ();
Opts<
ADOTable1->Locate («Nomer_podrazdelenia», Edit2->Text, Opts);
ADOTable1->Delete ();
}
//—————————————————————————————————————;
void __fastcall TForm1: Button1Click (TObject *Sender)
{
Form1->ADOTable1->Active=false;
DBText1->DataField="" ;
Form2->DBEdit1->DataField="" ;
Form2->DBEdit2->DataField="" ;
Form2->DBEdit3->DataField="" ;
Form2->DBEdit4->DataField="" ;
Form2->DBEdit5->DataField="" ;
Form2->DBEdit6->DataField="" ;
Form2->DBEdit7->DataField="" ;
//——————————————;
Form3->QRDBText1->DataField="" ;
Form3->QRDBText2->DataField="" ;
Form3->QRDBText3->DataField="" ;
Form3->QRDBText4->DataField="" ;
Form3->QRDBText5->DataField="" ;
Form3->QRDBText6->DataField="" ;
Form3->QRDBText7->DataField="" ;
ADOTable1->TableName=ComboBox2->Text;
Label4->Caption=ADOTable1->TableName;
ADOTable1->Active=true;
colcount=ADOTable1->Fields->Count;
//—————————————————————
dbed[1]=Form2->DBEdit1;
dbed[2]=Form2->DBEdit2;
dbed[3]=Form2->DBEdit3;
dbed[4]=Form2->DBEdit4;
dbed[5]=Form2->DBEdit5;
dbed[6]=Form2->DBEdit6;
dbed[7]=Form2->DBEdit7;
labl[1]=Form2->Label1;
labl[2]=Form2->Label2;
labl[3]=Form2->Label3;
labl[4]=Form2->Label4;
labl[5]=Form2->Label5;
labl[6]=Form2->Label6;
labl[7]=Form2->Label7;
//————————————————————————
qrdbed[1]=Form3->QRDBText1;
qrdbed[2]=Form3->QRDBText2;
qrdbed[3]=Form3->QRDBText3;
qrdbed[4]=Form3->QRDBText4;
qrdbed[5]=Form3->QRDBText5;
qrdbed[6]=Form3->QRDBText6;
qrdbed[7]=Form3->QRDBText7;
qrlabl[1]=Form3->QRLabel1;
qrlabl[2]=Form3->QRLabel2;
qrlabl[3]=Form3->QRLabel3;
qrlabl[4]=Form3->QRLabel4;
qrlabl[5]=Form3->QRLabel5;
qrlabl[6]=Form3->QRLabel6;
qrlabl[7]=Form3->QRLabel7;
//————————————————————————
for (int i=1;i<=colcount;i++)
{
dbed[i]->Visible=true;
labl[i]->Visible=true;
dbed[i]->DataSource=DataSource1;
dbed[i]->DataField=ADOTable1->Fields->FieldByNumber (i)->FieldName;
labl[i]->Caption=ADOTable1->Fields->FieldByNumber (i)->FieldName;
}
for (int i=colcount+1;i<=7;i++)
{
dbed[i]->Visible=false;
labl[i]->Visible=false;
}
}
//—————————————————————————————————————;
void __fastcall TForm1: Button2Click (TObject *Sender)
{
ADOTable2->Active=false;
ADOTable2->TableName=ComboBox3->Text;
Label5->Caption=ADOTable2->TableName;
ADOTable2->Active=true;
}
//—————————————————————————————————————;
void __fastcall TForm1: Button5Click (TObject *Sender)
{
Form2->Show ();
TLocateOptions Opts;
Opts.Clear ();
Opts<
ADOTable1->Locate («Nomer_podrazdelenia», Edit2->Text, Opts);
if (ADOTable1->TableName==WideString («sostav»))
{
TLocateOptions Opts1;
Opts1.Clear ();
Opts1<
ADOTable1->Locate («kod_slugashego», Edit2->Text, Opts1);
}
}
//—————————————————————————————————————;
void __fastcall TForm1: Button6Click (TObject *Sender)
{
ADOTable1->Append ();
Form2->Show ();
}
//—————————————————————————————————————;
void __fastcall TForm1: Button7Click (TObject *Sender)
{
DataSource3->DataSet=ADOStoredProc1;
ADOQuery1->Active=false;
ADOQuery1->SQL->Clear ();
ADOQuery1->SQL->Add («CREATE PROCEDURE proc2;1 as SELECT nazvanie_armii, COUNT (Nomer_podrazdelenia) AS col FROM chast GROUP BY nazvanie_armii HAVING COUNT (nazvanie_armii)>=ALL (SELECT COUNT (nazvanie_armii) FROM Chast GROUP BY nazvanie_armii)»);
ADOStoredProc1->ProcedureName="proc2;1″ ;
ADOQuery1->ExecSQL ();
ADOStoredProc1->Active=false;
ADOStoredProc1->ExecProc ();
ADOStoredProc1->Active=true;
ADOQuery1->SQL->Clear ();
ADOQuery1->SQL->Add («drop procedure proc2»);
ADOQuery1->ExecSQL ();
}
//—————————————————————————————————————;
void __fastcall TForm1: Button8Click (TObject *Sender)
{
ADOQuery1->Active=false;
ADOQuery1->SQL->Clear ();
ADOQuery1->SQL->Add («Create trigger trig on Obedinenie for update as begin if update ([nazvanie_armii]) begin UPDATE chast SET chast. nazvanie_armii=inserted.nazvanie_armii FROM chast, deleted, inserted WHERE chast. nazvanie_armii=deleted.nazvanie_armii end end»);
ADOQuery1->ExecSQL ();
ADOTable1->Active=false;
Form2->DBEdit1->DataField="" ;
Form2->DBEdit2->DataField="" ;
Form2->DBEdit3->DataField="" ;
Form2->DBEdit4->DataField="" ;
Form2->DBEdit5->DataField="" ;
Form2->DBEdit6->DataField="" ;
Form2->DBEdit7->DataField="" ;
DBText1->DataField="" ;
DBText1->DataSource=DataSource1;
DBText1->DataField="nazvanie_armii" ;
ADOTable1->TableName="Obedinenie" ;
Label4->Caption=ADOTable1->TableName;
ADOTable1->Active=true;
ADOTable2->Active=false;
ADOTable2->TableName="Chast" ;
Label5->Caption=ADOTable2->TableName;
ADOTable2->Active=true;
DBText1->DataField="nazvanie_armii" ;
}
//—————————————————————————————————————;
void __fastcall TForm1: Button9Click (TObject *Sender)
{
ADOQuery1->Active=false;
ADOQuery1->SQL->Clear ();
ADOQuery1->SQL->Add («DROP TRIGGER trig»);
ADOQuery1->ExecSQL ();
}
//—————————————————————————————————————;
void __fastcall TForm1: Button11Click (TObject *Sender)
{
ADOTable1->Active=false;
ADOTable1->Active=true;
ADOTable2->Active=false;
ADOTable2->Active=true;
}
//—————————————————————————————————————;
void __fastcall TForm1: Button10Click (TObject *Sender)
{
ADOQuery1->Active=false;
ADOQuery1->SQL->Clear ();
ADOQuery1->SQL->Add («UPDATE Obedinenie SET nazvanie_armii=:nd1 WHERE nazvanie_armii=:nd2»);
ADOQuery1->Parameters->ParamByName («nd1»)->Value=Edit3->Text;
ADOQuery1->Parameters->ParamByName («nd2»)->Value=DBText1->Caption;
ADOQuery1->ExecSQL ();
ADOTable1->Active=false;
ADOTable1->Active=true;
ADOTable2->Active=false;
ADOTable2->Active=true;
}
//—————————————————————————————————————;
void __fastcall TForm1: Button12Click (TObject *Sender)
{
for (int i=1;i<=colcount;i++)
{
qrdbed[i]->DataSet=Form1->ADOTable1;
qrdbed[i]->DataField=ADOTable1->Fields->FieldByNumber (i)->FieldName;
qrlabl[i]->Caption=ADOTable1->Fields->FieldByNumber (i)->FieldName;
qrdbed[i]->Visible=true;
qrlabl[i]->Visible=true;
}
for (int i=colcount+1;i<=7;i++)
{
qrdbed[i]->Visible=false;
qrlabl[i]->Visible=false;
}
Form3->QRLabel13->Caption=Label4->Caption;
Form3->QuickRep1->Preview ();
}
//—————————————————————————————————————;
void __fastcall TForm1: Button13Click (TObject *Sender)
{
Form3->QuickRep1->Print ();
}
//—————————————————————————————————————;
void __fastcall TForm1: Button14Click (TObject *Sender)
{
TLocateOptions Opts;
Opts.Clear ();
Opts<
ADOTable1->Locate («Nomer_podrazdelenia», Edit2->Text, Opts);
}
//—————————————————————————————————————;
//—————————————————————————————————————;
UNIT2:
#include
#pragma hdrstop
#include «Unit1.h»
#include «Unit2.h»
//—————————————————————————————————————;
#pragma package (smart_init)
#pragma resource «*.dfm»
TForm2 *Form2;
//—————————————————————————————————————;
__fastcall TForm2: TForm2(TComponent* Owner)
: TForm (Owner)
{
}
//—————————————————————————————————————;
void __fastcall TForm2: Button2Click (TObject *Sender)
{
Form1->ADOTable1->Post ();
Hide ();
}
//—————————————————————————————————————;
void __fastcall TForm2: Button1Click (TObject *Sender)
{
Hide ();
}
//—————————————————————————————————————;
9. Π‘ΠΏΠΈΡΠΎΠΊ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ
1. «ΠΠ°Π·Ρ Π΄Π°Π½Π½ΡΡ : ΠΎΡΠ½ΠΎΠ²Ρ, ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅», Π. Π. ΠΠ°Π»ΡΡ ΠΈΠ½Π°, Π‘ΠΠ±.: ΠΠ₯Π-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³, 2004. — 512 Ρ.: ΠΈΠ».
2. «SQL Server 2000 ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅», Π² 2 Ρ./Π . ΠΡΠ΅ΠΉΡΠ°: Π§Π°ΡΡΡ I; ΠΠ΅Ρ. Ρ Π°Π½Π³Π».; ΠΠΎΠ΄ ΡΠ΅Π΄. Π‘. Π. ΠΠΎΠ»ΡΠ²ΠΊΠΎ. — Π.: ΠΠΈΠ½ΠΎΠΌ. ΠΠ°Π±ΠΎΡΠ°ΡΠΎΡΠΈΡ Π·Π½Π°Π½ΠΈΠΉ, 2004. — 735 Ρ., ΠΈΠ».