ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма Π²ΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΡ€ΡƒΠ³Π°

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π’ΠΎΠ΅Π½Π½Ρ‹Π΅ части ΠΎΠΊΡ€ΡƒΠ³Π° расквартированы ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ мСстам дислокации, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ нСсколько частСй. КаТдая воинская Ρ‡Π°ΡΡ‚ΡŒ состоит ΠΈΠ· Ρ€ΠΎΡ‚, Ρ€ΠΎΡ‚Ρ‹ ΠΈΠ· Π²Π·Π²ΠΎΠ΄ΠΎΠ², Π²Π·Π²ΠΎΠ΄Ρ‹ ΠΈΠ· ΠΎΡ‚Π΄Π΅Π»Π΅Π½ΠΈΠΉ, Π² ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ воинскиС части ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ Π² Π΄ΠΈΠ²ΠΈΠ·ΠΈΠΈ, корпуса ΠΈΠ»ΠΈ Π±Ρ€ΠΈΠ³Π°Π΄Ρ‹, Π° Ρ‚Π΅ Π² Π°Ρ€ΠΌΠΈΠΈ. Π’ΠΎΠ΅Π½Π½Ρ‹ΠΉ ΠΎΠΊΡ€ΡƒΠ³ прСдставлСн офицСрским составом (Π³Π΅Π½Π΅Ρ€Π°Π»Ρ‹, ΠΏΠΎΠ»ΠΊΠΎΠ²Π½ΠΈΠΊΠΈ, ΠΏΠΎΠ΄ΠΏΠΎΠ»ΠΊΠΎΠ²Π½ΠΈΠΊΠΈ, ΠΌΠ°ΠΉΠΎΡ€Ρ‹, ΠΊΠ°ΠΏΠΈΡ‚Π°Π½Ρ‹… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма Π²ΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΡ€ΡƒΠ³Π° (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π€Π΅Π΄Π΅Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ АгСнтство ΠΏΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ ГосударствСнноС ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΡƒΡ‡Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ образования ВихоокСанский государствСнный унивСрситСт

ΠšΠ°Ρ„Π΅Π΄Ρ€Π° Автоматики ΠΈ ΡΠΈΡΡ‚Π΅ΠΌΠΎΡ‚Π΅Ρ…Π½ΠΈΠΊΠΈ

ΠšΡƒΡ€ΡΠΎΠ²Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ дисциплинС

" Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ"

Π’Π΅ΠΌΠ°: «Π˜Π½Ρ„ормационная систСма Π²ΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΡ€ΡƒΠ³Π°»

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»:

студСнт Π³Ρ€ΡƒΠΏΠΏΡ‹ ИБ — 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 с., ΠΈΠ».

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ