Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΠ΅Π±Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Β«ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΠΎΠΌ Π±ΡΡ Π³Π°Π»ΡΠ΅ΡΠΈΠΈ ΠΏΠΎ ΡΠ°ΡΡΠ΅ΡΡ Π·Π°ΡΠΏΠ»Π°ΡΡΒ»
Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡΠΌ ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ , ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΡΠΈ ΡΡΠΎΠΌ ΠΎΠ½ΠΈ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°. Π ΡΡΠΎΠΉ Π³ΡΡΠΏΠΏΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ½ΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² CAST ΠΈ CONVERT, ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π΄Π°ΡΡ ΡΡΠΈΠ»Ρ Π΄Π»Ρ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°ΡΡ Π² ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ ; CURRENT_USER — ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, CURRENT_TIMESTAMP — ΡΠ΅ΠΊΡΡΠΈΠ΅ Π΄Π°ΡΡ ΠΈ Π²ΡΠ΅ΠΌΡ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΠ΅Π±Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Β«ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΠΎΠΌ Π±ΡΡ Π³Π°Π»ΡΠ΅ΡΠΈΠΈ ΠΏΠΎ ΡΠ°ΡΡΠ΅ΡΡ Π·Π°ΡΠΏΠ»Π°ΡΡΒ» (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠΈΠ½ΠΈΡΡΠ΅ΡΡΡΠ²ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π Π΅ΡΠΏΡΠ±Π»ΠΈΠΊΠΈ ΠΠ΅Π»Π°ΡΡΡΡ Π£ΡΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ
«ΠΠΎΠΌΠ΅Π»ΡΡΠΊΠΈΠΉ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ ΠΈΠΌΠ΅Π½ΠΈ Π€ΡΠ°Π½ΡΠΈΡΠΊΠ° Π‘ΠΊΠΎΡΠΈΠ½Ρ»
ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°ΠΊΡΠ»ΡΡΠ΅Ρ ΠΠ°ΡΠ΅Π΄ΡΠ° ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΡΡΡΠΎΠ²Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΠΊΡΡΡΡ «ΠΠ°Π·Ρ Π΄Π°Π½Π½ΡΡ »
ΡΠΠΠ ΠΠΠΠ’ΠΠ Π£Π§ΠΠΠΠΠΠ ΠΠ ΠΠΠΠ’Π «ΠΠΠ’ΠΠΠΠ’ΠΠΠΠ ΠΠΠΠΠΠΠ― Π‘ΠΠ‘Π’ΠΠΠ Π£ΠΠ ΠΠΠΠΠΠΠ― ΠΎΡΠ΄Π΅Π»ΠΎΠΌ Π±ΡΡ Π³Π°Π»ΡΠ΅ΡΠΈΠΈ ΠΏΠΎ ΡΠ°ΡΡΠ΅ΡΡ Π·Π°ΡΠΏΠ»Π°ΡΡ»
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ:
ΡΡΡΠ΄Π΅Π½Ρ Π³ΡΡΠΏΠΏΡ ΠΠ-41 Π€Π΅Π΄ΠΎΡΠ΅Π½ΠΊΠΎ Π.Π.
ΠΠΎΠΌΠ΅Π»Ρ 2014
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π§Π΅Π»ΠΎΠ²Π΅ΠΊ Π²ΡΠ΅Π³Π΄Π° ΡΡΡΠ΅ΠΌΠΈΠ»ΡΡ ΠΎΠ±Π»Π΅Π³ΡΠΈΡΡ ΡΠ²ΠΎΡ Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΡΠ°ΡΡΠΈΡΠΈΡΡ ΡΠ²ΠΎΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ. ΠΠΎΠΌΠΏΡΡΡΠ΅ΡΡ Π±ΡΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π·Π°Π΄Π°Ρ. Π‘ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΎΠ½ΠΈ Π²ΡΠ΅ ΡΠ°ΡΠ΅ ΡΡΠ°Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉΡΡ Π² Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. Π Π°Π·Π²ΠΈΡΠΈΠ΅ Π² ΡΡΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠΈΡΡΠ΅ΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ .
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ:
— ΠΏΠΎΠ²ΡΡΠΈΡΡ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ, ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ ΠΈ ΡΠΎΡ ΡΠ°Π½Π½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ ;
— ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π·Π°ΡΡΠ°ΡΡ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΠ΄Π°;
— ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΏΡΠΎΡΡΠΎΡΡ ΠΈ Π»Π΅Π³ΠΊΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ;
— ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΎΡ Π΄Π°Π½Π½ΡΡ (ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ ΠΈ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Ρ ΡΠ°Π½Π΅Π½ΠΈΡ);
— ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π΄ΠΎΡΡΠΎΠ²Π΅ΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ ;
— ΡΠΎΠΊΡΠ°ΡΠΈΡΡ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π° ΡΡΠ΅Ρ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ .
Π¦Π΅Π»ΡΡ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ² ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ MS SQL SERVER. ΠΠ°Π΄Π°ΡΠ° ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ — ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ «ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ΅» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ ΠΎΡΠ΄Π΅Π»Π° Π±ΡΡ Π³Π°Π»ΡΠ΅ΡΠΈΠΈ ΠΏΠΎ ΡΡΠ΅ΡΡ Π·Π°ΡΠΏΠ»Π°ΡΡ ΠΈ ΠΈΠ·ΡΡΠΈΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ MS SQL SERVER.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΡΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ C++ Builder.
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ°ΡΡΡ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΏΡΡΠΈ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ².
Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ³ΠΎ Π² Ρ ΠΎΠ΄Π΅ ΠΊΡΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ.
ΠΡΠΎΡΠΎΠΉ ΡΠ°Π·Π΄Π΅Π» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡΡ MS SQL SERVER.
Π ΡΡΠ΅ΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Π² ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΎΠΏΠΈΡΠ°Π½ ΡΠΎΡΡΠ°Π² ΡΠ°Π±Π»ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΡΡ Π΅ΠΌΠ° Π΄Π°Π½Π½ΡΡ , ΠΎΠΏΠΈΡΠ°Π½Π° ΡΡΡΡΠΊΡΡΡΠ° ΡΠ°Π±Π»ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ SQL-ΠΊΠΎΠ΄ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ.
Π ΡΠ΅ΡΠ²Π΅ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΎΠΏΠΈΡΠ°Π½ Π΄ΠΈΠ°Π»ΠΎΠ³ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.
Π ΠΏΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Π² ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΠ΅ ΠΎΠΏΠΈΡΠ°Π½Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° SQL-ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ SQL-ΡΠ΅ΠΊΡΡ Π΄Π°Π½Π½ΡΡ ΡΡΠ΅Π΄ΡΡΠ².
1. ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π Π°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ΅ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ ΠΎΡΠ΄Π΅Π»Π° Π±ΡΡ Π³Π°Π»ΡΠ΅ΡΠΈΠΈ ΠΏΠΎ ΡΠ°ΡΡΠ΅ΡΡ Π·Π°ΡΠΏΠ»Π°ΡΡ. ΠΠ½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΈ ΠΎΡΠ΄Π΅Π»ΠΎΠ², Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠ΅ΠΉ, Π²ΠΈΠ΄ΠΎΠ² Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΈ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ, Π΄Π°Ρ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π·Π°ΡΠΏΠ»Π°ΡΡ. ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ: ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°Ρ , ΠΈΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡΡ Π½Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΡΠ°ΡΡΠ΅Ρ Π·Π°ΡΠΏΠ»Π°ΡΡ ΠΏΠΎ Π΄Π°Π½Π½ΡΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΡΠ°Π½ΠΈΡ ΡΠ°Π±Π΅Π»Ρ Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΠΎΡΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ ΡΠ°ΡΠΎΠ², ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π½ΡΡ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡΡ ΠΈ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡΡ . ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² ΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΡΠ°Π±Π΅Π»Ρ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΠΎΠΈΡΠΊΠ° Π΄Π°Π½Π½ΡΡ . ΠΡΠΈ Π²ΡΡΠ°Π²ΠΊΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π΄Π°ΡΡ Π² ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ, Π΄Π»Ρ ΠΏΠΎΡ ΠΎΠ΄ΡΡΠΈΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² ΡΠ°Π±Π΅Π»Ρ.
Π’Π°ΠΊ ΠΆΠ΅ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ²Π½Ρ Π²ΡΠΏΠ»Π°Ρ Π·Π°ΡΠΏΠ»Π°Ρ Π² ΠΎΡΠ΄Π΅Π»Π°Ρ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΏΠ΅ΡΠΈΠΎΠ΄Π΅.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠΎΠΈΡΡ ΠΏΠ΅ΡΠ°ΡΠ½ΡΠ΅ ΡΠΎΡΠΌΡ Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ:
— ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΡΡ Ρ ΠΎΠΊΠ»Π°Π΄ΠΎΠΌ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅;
— Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°;
— Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΡΡ , Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ ΠΎΡΠ΄Π΅Π»Π° ΠΈ ΡΠΏΠΈΡΠΊΠΎΠΌ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² Π½Π° Π½ΠΈΡ ;
— Π·Π°ΡΠΏΠ»Π°ΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠΎΠ², ΡΠ³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠΎ ΠΌΠ΅ΡΡΡΠ°ΠΌ, Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄.
ΠΠ΅Π΄Π΅ΡΡΡ ΠΆΡΡΠ½Π°Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡ, Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΠΊΠ°ΡΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠ΅ΡΠ²Π΅Ρ ΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ, Π²ΡΠ±ΠΈΡΠ°ΡΡ ΡΠΏΠΎΡΠΎΠ± Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 1.1.
Π ΠΈΡΡΠ½ΠΎΠΊ 1.1 — ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
2. Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ MS SQL-Π‘Π΅ΡΠ²Π΅ΡΠ° Π‘ΡΠ΅Π΄ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ MS SQL SERVER ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π³ΡΡΠΏΠΏΡ:
— ΡΡΠ½ΠΊΡΠΈΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠΈΠΈ;
— ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΡΡΡΠΎΡΠΎΠ²;
— ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π°ΡΡ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ;
— ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ;
— ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ ;
— ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π°Π±ΠΎΡΠΎΠ² Π·Π°ΠΏΠΈΡΠ΅ΠΉ;
— ΡΡΠ½ΠΊΡΠΈΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ;
— ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ;
— ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ;
— ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ [1],.
Π€ΡΠ½ΠΊΡΠΈΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠΈΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊ Π½Π°Π±ΠΎΡΠ°ΠΌ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΈ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ GROUP BY. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΡΡΠΌΠΌΡ (SUM), ΡΡΠ΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (AVG), ΠΊΠ²Π°Π΄ΡΠ°ΡΠΈΡΠ½ΠΎΠ΅ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ (STDEV), Π΄ΠΈΡΠΏΠ΅ΡΡΠΈΡ (VAR), ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ (MIN) ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ (MAX) Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΠΎΠ»Ρ ΠΈΠ»ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² Π³ΡΡΠΏΠΏΠ΅ (COUNT). Π‘ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° ALL — ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΊΠΎ Π²ΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ DISTINCT — Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ°Π·. ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡΠΎΠΌ.
Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΊΡΡΡΠΎΡΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΊΡΡΡΠΎΡΠ° ΠΏΠΎ Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π ΡΡΠΎΠΉ Π³ΡΡΠΏΠΏΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ CURSOR_STATUS. Π’Π°ΠΊ ΠΆΠ΅ ΠΊ ΡΡΠ½ΠΊΡΠΈΡΠΌ ΡΡΠΎΠΉ Π³ΡΡΠΏΠΏΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ½Π΅ΡΡΠΈ @@FETCH_STATUS — ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° FETCH, ΠΈ @@CURSOR_ROWS — ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ Π² ΠΊΡΡΡΠΎΡΠ΅.
Π€ΡΠ½ΠΊΡΠΈΠΈ Π΄Π°ΡΡ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΠ°ΠΊ Π² ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΌ (DATEPART, DATE, MONTH, YEAR), ΡΠ°ΠΊ ΠΈ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ (DATENAME), ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ (DATEADD) ΠΈ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° ΡΠ°Π·Π½ΠΈΡΡ (DATEDIFF) ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ, ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠΈΡ Π΄Π°ΡΡ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (GETDATE, GETUTCDATE).
ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ — Π²ΠΎΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΡΠ΅ΠΏΠ΅Π½Ρ (POWER, SQUARE, SQRT), Π»ΠΎΠ³Π°ΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ (LOG, LOG10, EXP), Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΡΡΠΈΠ³ΠΎΠ½ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ (SIN, COS, TAN, COT, ASIN, ACOS, ATAN, DEGREES, RADIANS, PI), ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΠ΅ (CEILING, FLOOR, ROUND), ΠΌΠΎΠ΄ΡΠ»Ρ (ABS), ΡΠ°ΠΊ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ (ISNUMERIC). ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΈΠΏΠ°, ΡΡΠΎ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ.
Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
Π€ΡΠ½ΠΊΡΠΈΠΈ Π½Π°Π±ΠΎΡΠΎΠ² Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠ°Π±Π»ΠΈΡΡ. ΠΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° (OPENQUERY, OPENROWSET), ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ XML Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ (OPENXML).
Π€ΡΠ½ΠΊΡΠΈΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΏΡΠ°Π² Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ (HAS_DBACCESS), ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΡ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠΎΠ»ΠΈ (IS_MEMBER, IS_SRVROLEMEMBER), Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ (SUSER_ID, SUSER_SID, USER_ID) ΠΈ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (SUSER_NAME, SUSER_SNAME, USER).
Π‘ΡΡΠΎΠΊΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π½Π°Π±ΠΎΡ ΡΡΠ΅Π΄ΡΡΠ² Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ. ΠΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ΅Π³ΠΈΡΡΡ (LOWER, UPPER), Π²ΡΠ΄Π΅Π»ΡΡΡ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ (LEFT, RIGHT, SUBSTRING), ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΠΏΠΎΠΈΡΠΊ (CHARINDEX, PATINDEX) ΠΈ Π·Π°ΠΌΠ΅Π½Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ (REPLACE, STUFF), Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΠΈ (REPLICATE), ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄Π»ΠΈΠ½Ρ ΡΡΡΠΎΠΊΠΈ (LEN). Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ΄ ΡΠΈΠΌΠ²ΠΎΠ»Π° (ASCII, UNICODE) ΠΈ ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΠΎ ΠΊΠΎΠ΄Ρ (CHAR, NCHAR), ΡΠ΄Π°Π»ΠΈΡΡ ΠΏΡΠΎΠ±Π΅Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ (LTRIM, RTRIM) ΠΈ Π²ΡΡΠ°Π²ΠΈΡΡ ΠΈΡ (SPACE), ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² ΡΡΡΠΎΠΊΠ΅ (REVERSE), ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΡΠΈΡΠ»ΠΎ Π² ΡΡΡΠΎΠΊΡ (STR).
Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡΠΌ ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ , ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΡΠΈ ΡΡΠΎΠΌ ΠΎΠ½ΠΈ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°. Π ΡΡΠΎΠΉ Π³ΡΡΠΏΠΏΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ½ΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² CAST ΠΈ CONVERT, ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π΄Π°ΡΡ ΡΡΠΈΠ»Ρ Π΄Π»Ρ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°ΡΡ Π² ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ ; CURRENT_USER — ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, CURRENT_TIMESTAMP — ΡΠ΅ΠΊΡΡΠΈΠ΅ Π΄Π°ΡΡ ΠΈ Π²ΡΠ΅ΠΌΡ. Π€ΡΠ½ΠΊΡΠΈΡ IDENT_CURRENT ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΡΠΈΠΊΠ° ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π΄Π»Ρ ΡΠ°Π±Π»ΠΈΡΡ, IDENT_INCR Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΠΈΡΠ°ΡΠ΅Π½ΠΈΠ΅, Π° IDENT_SEED — Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΡΠΈΠΊΠ°. IDENTITY — ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΡΠ°Π²ΠΊΠΈ ΡΡΠ΅ΡΡΠΈΠΊΠ° Π² ΡΠ°Π±Π»ΠΈΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° SELECT INTO.
Π Π³ΡΡΠΏΠΏΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ (text) ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ (image) ΠΎΡΠ½ΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ TEXTPRT ΠΈ TEXTVALID, ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΠΈΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ.
ΠΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ MS SQL SERVER Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅Π΄Π΅ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Ρ. Π΅. ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ°Π·Π½ΡΠΉ Π½Π°Π±ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρ ΠΎΠ΄Π½ΠΈΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌΡΡ ΠΏΠΎΠ»Π΅ΠΉ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π΅ΠΉ Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡΡ , ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΎ. Π ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π΄Π»Ρ ΠΏΠΎΠ»Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈ Π»ΡΠ±ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
3. Π‘ΡΡΡΠΊΡΡΡΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π‘ΠΎΡΡΠ°Π² ΡΠ°Π±Π»ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ 3.1.
Π’Π°Π±Π»ΠΈΡΠ° 3.1 — Π‘ΠΎΡΡΠ°Π² ΡΠ°Π±Π»ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ | ΠΠ±ΡΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌ | |
ΠΡΠ΄Π΅Π»Ρ | Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ ΠΎΡΠ΄Π΅Π»ΠΎΠ² ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΡ | |
Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ | Π‘ΠΏΠΈΡΠΎΠΊ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΡ | |
ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ | Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΡ | |
ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ | Π‘ΠΏΠΈΡΠΎΠΊ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² | |
ΠΠ°ΡΡ | Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ Π΄Π°Ρ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π·Π°ΡΠΏΠ»Π°ΡΡ | |
ΠΠΈΠ΄Ρ_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ | Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ Π²ΠΈΠ΄ΠΎΠ² Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ | |
ΠΠΈΠ΄Ρ_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ | Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ Π²ΠΈΠ΄ΠΎΠ² ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ | |
ΠΠ°ΡΠΈΡΠ»Π΅Π½ΠΈΡ | Π‘ΠΏΠΈΡΠΎΠΊ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΡΠ°Π±Π΅Π»Ρ | |
Π£Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ | Π‘ΠΏΠΈΡΠΎΠΊ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΡΠ°Π±Π΅Π»Ρ | |
Π’Π°Π±Π΅Π»Ρ | Π‘ΠΏΠΈΡΠΎΠΊ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΡΠ°Π±Π΅Π»Ρ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π·Π°ΡΠΏΠ»Π°ΡΡ | |
appointments_log | ΠΡΡΠ½Π°Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠ°Π±Π»ΠΈΡΡ «ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ» | |
Π‘Ρ Π΅ΠΌΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 3.1
Π ΠΈΡΡΠ½ΠΎΠΊ 3.1 — Π‘Ρ Π΅ΠΌΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π‘ΠΎΡΡΠ°Π² ΡΠ°Π±Π»ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² ΡΠ°Π±Π»ΠΈΡΠ°Ρ 3.2 — 3.12.
Π’Π°Π±Π»ΠΈΡΠ° 3.2 — Π‘ΠΎΡΡΠ°Π² ΡΠ°Π±Π»ΠΈΡΡ «ΠΡΠ΄Π΅Π»Ρ»
ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ | Π€ΠΎΡΠΌΠ°Ρ ΠΏΠΎΠ»Ρ | Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»Ρ | |
ΠΠΎΠ΄ | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ, ΡΡΠ΅ΡΡΠΈΠΊ | ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΎΡΠ΄Π΅Π»Π° | |
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ | ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ | Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΎΡΠ΄Π΅Π»Π° | |
Π’Π°Π±Π»ΠΈΡΠ° 3.3 — Π‘ΠΎΡΡΠ°Π² ΡΠ°Π±Π»ΠΈΡΡ «Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ»
ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ | Π€ΠΎΡΠΌΠ°Ρ ΠΏΠΎΠ»Ρ | Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»Ρ | |
ΠΠΎΠ΄ | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ, ΡΡΠ΅ΡΡΠΈΠΊ | ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° | |
Π€ΠΠ | ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ | ΡΠ°ΠΌΠΈΠ»ΠΈΡ, ΠΈΠΌΡ, ΠΎΡΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° | |
ΠΠ°ΡΠ°_ ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ | Π΄Π°ΡΠ°/Π²ΡΠ΅ΠΌΡ | Π΄Π°ΡΠ° ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° | |
ΠΠΎΠ΄_ ΠΎΡΠ΄Π΅Π»Π° | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ | ΠΊΠΎΠ΄ ΠΎΡΠ΄Π΅Π»Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊ | |
Π’Π°Π±Π»ΠΈΡΠ° 3.4 — Π‘ΠΎΡΡΠ°Π² ΡΠ°Π±Π»ΠΈΡΡ «ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ»
ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ | Π€ΠΎΡΠΌΠ°Ρ ΠΏΠΎΠ»Ρ | Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»Ρ | |
ΠΠΎΠ΄ | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ, ΡΡΠ΅ΡΡΠΈΠΊ | ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ | |
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ | ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ | Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ | |
ΠΠΊΠ»Π°Π΄ | Π΄Π΅Π½Π΅ΠΆΠ½ΡΠΉ | ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠΊΠ»Π°Π΄Π° Π² ΡΡΠ±. | |
Π’Π°Π±Π»ΠΈΡΠ° 3.5 — Π‘ΠΎΡΡΠ°Π² ΡΠ°Π±Π»ΠΈΡΡ «ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ»
ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ | Π€ΠΎΡΠΌΠ°Ρ ΠΏΠΎΠ»Ρ | Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»Ρ | |
ΠΠΎΠ΄ | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ, ΡΡΠ΅ΡΡΠΈΠΊ | ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° Π½Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΡ | |
ΠΠΎΠ΄_ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ | ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ | |
ΠΠΎΠ΄_ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ | ΠΊΠΎΠ΄ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° | |
ΠΠ°ΡΠ°_ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ | Π΄Π°ΡΠ°/Π²ΡΠ΅ΠΌΡ | Π΄Π°ΡΠ° Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° Π½Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΡ | |
ΠΠ°ΡΠ°_ ΡΡ ΠΎΠ΄Π° | Π΄Π°ΡΠ°/Π²ΡΠ΅ΠΌΡ | Π΄Π°ΡΠ° ΡΡ ΠΎΠ΄Π° ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° Ρ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ | |
Π’Π°Π±Π»ΠΈΡΠ° 3.6 — Π‘ΠΎΡΡΠ°Π² ΡΠ°Π±Π»ΠΈΡΡ «ΠΠ°ΡΡ»
ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ | Π€ΠΎΡΠΌΠ°Ρ ΠΏΠΎΠ»Ρ | Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»Ρ | |
ΠΠΎΠ΄ | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ, ΡΡΠ΅ΡΡΠΈΠΊ | ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π΄Π°ΡΡ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΡΠ°Π±Π΅Π»Ρ | |
ΠΠ°ΡΠ° | Π΄Π°ΡΠ°/Π²ΡΠ΅ΠΌΡ | Π΄Π°ΡΠ° Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π·Π°ΡΠΏΠ»Π°ΡΡ | |
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ _ΡΠ°ΡΠΎΠ² | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ | ΠΊΠΎΠ»Π»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°ΡΠΎΠ² Π² ΠΎΡΡΠ΅ΡΠ½ΠΎΠΌ ΠΌΠ΅ΡΡΡΠ΅ | |
Π’Π°Π±Π»ΠΈΡΠ° 3.7 — Π‘ΠΎΡΡΠ°Π² ΡΠ°Π±Π»ΠΈΡΡ «ΠΠΈΠ΄Ρ_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ»
ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ | Π€ΠΎΡΠΌΠ°Ρ ΠΏΠΎΠ»Ρ | Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»Ρ | |
ΠΠΎΠ΄ | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ, ΡΡΠ΅ΡΡΠΈΠΊ | ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π²ΠΈΠ΄Π° Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ | |
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ | ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ | Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π²ΠΈΠ΄Π° Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ | |
ΠΠ΅Π»ΠΈΡΠΈΠ½Π° | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ | ΡΠ°Π·ΠΌΠ΅Ρ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π² ΠΏΡΠΎΡΠ΅Π½ΡΠ°Ρ ΠΈΠ»ΠΈ ΡΡΠ±Π»ΡΡ | |
Π’ΠΈΠΏ | ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ | ΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΈΠΏ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ (Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠ΅ `Π` ΠΈΠ»ΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ `Π`) | |
Π’Π°Π±Π»ΠΈΡΠ° 3.8 — Π‘ΠΎΡΡΠ°Π² ΡΠ°Π±Π»ΠΈΡΡ «ΠΠΈΠ΄Ρ_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ»
ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ | Π€ΠΎΡΠΌΠ°Ρ ΠΏΠΎΠ»Ρ | Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»Ρ | |
ΠΠΎΠ΄ | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ, ΡΡΠ΅ΡΡΠΈΠΊ | ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π²ΠΈΠ΄Π° ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ | |
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ | ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ | Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π²ΠΈΠ΄Π° ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ | |
ΠΠ΅Π»ΠΈΡΠΈΠ½Π° | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ | ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ Π² ΠΏΡΠΎΡΠ΅Π½ΡΠ°Ρ ΠΈΠ»ΠΈ ΡΡΠ±Π»ΡΡ | |
Π’ΠΈΠΏ | ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ | ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΈΠΏ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ (Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠ΅ `Π` ΠΈΠ»ΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ `Π`) | |
Π’Π°Π±Π»ΠΈΡΠ° 3.9 — Π‘ΠΎΡΡΠ°Π² ΡΠ°Π±Π»ΠΈΡΡ «ΠΠ°ΡΠΈΡΠ»Π΅Π½ΠΈΡ»
ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ | Π€ΠΎΡΠΌΠ°Ρ ΠΏΠΎΠ»Ρ | Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»Ρ | |
ΠΠΎΠ΄ | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ, ΡΡΠ΅ΡΡΠΈΠΊ | ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ | |
ΠΠΎΠ΄_Π²ΠΈΠ΄Π°_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ | ΠΊΠΎΠ΄ Π²ΠΈΠ΄Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ | |
ΠΠΎΠ΄_ΡΠ°Π±Π΅Π»Ρ | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ | ΠΊΠΎΠ΄ Π·Π°ΠΏΠΈΡΠΈ ΡΠ°Π±Π΅Π»Ρ Π΄Π»Ρ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ | |
ΠΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ | ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ | |
Π’Π°Π±Π»ΠΈΡΠ° 3.10 — Π‘ΠΎΡΡΠ°Π² ΡΠ°Π±Π»ΠΈΡΡ «Π£Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ»
ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ | Π€ΠΎΡΠΌΠ°Ρ ΠΏΠΎΠ»Ρ | Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»Ρ | |
ΠΠΎΠ΄ | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ, ΡΡΠ΅ΡΡΠΈΠΊ | ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ | |
ΠΠΎΠ΄_Π²ΠΈΠ΄Π°_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ | ΠΊΠΎΠ΄ Π²ΠΈΠ΄Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ | |
ΠΠΎΠ΄_ΡΠ°Π±Π΅Π»Ρ | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ | ΠΊΠΎΠ΄ Π·Π°ΠΏΠΈΡΠΈ ΡΠ°Π±Π΅Π»Ρ Π΄Π»Ρ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ | |
ΠΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ | ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ | |
Π’Π°Π±Π»ΠΈΡΠ° 3.11 — Π‘ΠΎΡΡΠ°Π² ΡΠ°Π±Π»ΠΈΡΡ «Π’Π°Π±Π΅Π»Ρ»
ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ | Π€ΠΎΡΠΌΠ°Ρ ΠΏΠΎΠ»Ρ | Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»Ρ | |
ΠΠΎΠ΄ | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ, ΡΡΠ΅ΡΡΠΈΠΊ | ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π·Π°ΠΏΠΈΡΠΈ ΡΠ°Π±Π΅Π»Ρ | |
ΠΠΎΠ΄_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ | ΠΊΠΎΠ΄ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π·Π°ΡΠΏΠ»Π°ΡΡ | |
Π§Π°ΡΡ | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ | ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ ΡΠ°ΡΠΎΠ² Π·Π° ΠΌΠ΅ΡΡΡ | |
ΠΠΎΠ΄_Π΄Π°ΡΡ | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ | ΠΊΠΎΠ΄ Π΄Π°ΡΡ, Π·Π° ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π·Π°ΡΠΏΠ»Π°ΡΡ | |
Π’Π°Π±Π»ΠΈΡΠ° 3.12 — Π‘ΠΎΡΡΠ°Π² ΡΠ°Π±Π»ΠΈΡΡ «appointments_log»
ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ | Π€ΠΎΡΠΌΠ°Ρ ΠΏΠΎΠ»Ρ | Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»Ρ | |
id | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ, ΡΡΠ΅ΡΡΠΈΠΊ | ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π·Π°ΠΏΠΈΡΠΈ ΠΆΡΡΠ½Π°Π»Π° | |
oper | ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ | ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ | |
t_user | ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ | ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ²ΡΠΈΠΉ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ | |
date | Π΄Π°ΡΠ°/Π²ΡΠ΅ΠΌΡ | Π΄Π°ΡΠ° ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ | |
anum | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ | ΠΊΠΎΠ΄ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ | |
aworker | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ | ΠΊΠΎΠ΄ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° | |
aposition | ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ | ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ | |
astart | Π΄Π°ΡΠ°/Π²ΡΠ΅ΠΌΡ | Π΄Π°ΡΠ° Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΡ | |
aend | Π΄Π°ΡΠ°/Π²ΡΠ΅ΠΌΡ | Π΄Π°ΡΠ° ΡΡ ΠΎΠ΄Π° Ρ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ | |
SQL-ΡΠ΅ΠΊΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ:
—Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡ
CREATE TABLE ΠΡΠ΄Π΅Π»Ρ (ΠΠΎΠ΄ int IDENTITY Primary key, ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ varchar (50) not null)
GO
CREATE TABLE Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ (ΠΠΎΠ΄ int IDENTITY Primary key, Π€ΠΠ varchar (200), ΠΠ°ΡΠ°_ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ datetime, ΠΠΎΠ΄_ΠΎΡΠ΄Π΅Π»Π° int not null)
GO
CREATE TABLE ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ (ΠΠΎΠ΄ int IDENTITY Primary key, ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ varchar (50) not null, ΠΠΊΠ»Π°Π΄ money not null)
GO
CREATE TABLE ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ (ΠΠΎΠ΄ int IDENTITY Primary key, ΠΠΎΠ΄_Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ int, ΠΠΎΠ΄_ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° int, ΠΠ°ΡΠ°_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ datetime, ΠΠ°ΡΠ°_ΡΡ ΠΎΠ΄Π° datetime)
GO
CREATE TABLE ΠΠ°ΡΡ (ΠΠΎΠ΄ int IDENTITY Primary key, ΠΠ°ΡΠ° datetime not null, ΠΠΎΠ»Π»ΠΈΡΠ΅ΡΡΠ²ΠΎ_ΡΠ°ΡΠΎΠ² int not null)
GO
CREATE TABLE Π’Π°Π±Π΅Π»Ρ (ΠΠΎΠ΄ int IDENTITY Primary key, ΠΠΎΠ΄_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ int, Π§Π°ΡΡ int, ΠΠΎΠ΄_Π΄Π°ΡΡ int)
GO
CREATE TABLE ΠΠΈΠ΄Ρ_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ (ΠΠΎΠ΄ int IDENTITY Primary key, ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ varchar (50), ΠΠ΅Π»ΠΈΡΠΈΠ½Π° int not null, Π’ΠΈΠΏ varchar (1) not null default 'Π')
GO
CREATE TABLE ΠΠΈΠ΄Ρ_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ (ΠΠΎΠ΄ int IDENTITY Primary key, ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ varchar (50), ΠΠ΅Π»ΠΈΡΠΈΠ½Π° int not null, Π’ΠΈΠΏ varchar (1) not null default 'Π')
GO
CREATE TABLE ΠΠ°ΡΠΈΡΠ»Π΅Π½ΠΈΡ (ΠΠΎΠ΄ int IDENTITY Primary key, ΠΠΎΠ΄_Π²ΠΈΠ΄Π°_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ int, ΠΠΎΠ΄_ΡΠ°Π±Π΅Π»Ρ int, ΠΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ float)
GO
CREATE TABLE Π£Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ (ΠΠΎΠ΄ int IDENTITY Primary key, ΠΠΎΠ΄_Π²ΠΈΠ΄Π°_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ int, ΠΠΎΠ΄_ΡΠ°Π±Π΅Π»Ρ int, ΠΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ float)
GO
—ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ²ΡΠ·Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ
ALTER TABLE Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ ADD CONSTRAINT FK_Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ_ΠΡΠ΄Π΅Π»Ρ FOREIGN KEY (ΠΠΎΠ΄_ΠΎΡΠ΄Π΅Π»Π°) REFERENCES ΠΡΠ΄Π΅Π»Ρ
GO
ALTER TABLE ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ADD CONSTRAINT FK_ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ_Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ FOREIGN KEY (ΠΠΎΠ΄_ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°) REFERENCES Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ
GO
ALTER TABLE ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ADD CONSTRAINT FK_ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ_ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ FOREIGN KEY (ΠΠΎΠ΄_Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ) REFERENCES ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ
GO
ALTER TABLE Π’Π°Π±Π΅Π»Ρ ADD CONSTRAINT FK_Π’Π°Π±Π΅Π»Ρ_ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ FOREIGN KEY (ΠΠΎΠ΄_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ) REFERENCES ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ
GO
ALTER TABLE Π’Π°Π±Π΅Π»Ρ ADD CONSTRAINT FK_Π’Π°Π±Π΅Π»Ρ_ΠΠ°ΡΡ FOREIGN KEY (ΠΠΎΠ΄_Π΄Π°ΡΡ) REFERENCES ΠΠ°ΡΡ
GO
ALTER TABLE ΠΠ°ΡΠΈΡΠ»Π΅Π½ΠΈΡ ADD CONSTRAINT FK_ΠΠ°ΡΠΈΡΠ»Π΅Π½ΠΈΡ_Π’Π°Π±Π΅Π»Ρ FOREIGN KEY (ΠΠΎΠ΄_ΡΠ°Π±Π΅Π»Ρ) REFERENCES Π’Π°Π±Π΅Π»Ρ
GO
ALTER TABLE Π£Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ ADD CONSTRAINT FK_Π£Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ_Π’Π°Π±Π΅Π»Ρ FOREIGN KEY (ΠΠΎΠ΄_ΡΠ°Π±Π΅Π»Ρ) REFERENCES Π’Π°Π±Π΅Π»Ρ
GO
ALTER TABLE Π£Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ ADD CONSTRAINT FK_Π£Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ_ΠΠΈΠ΄Ρ_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ FOREIGN KEY (ΠΠΎΠ΄_Π²ΠΈΠ΄Π°_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ) REFERENCES ΠΠΈΠ΄Ρ_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ
GO
—ΠΡΡΠ½Π°Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
Create table appointments_log (id int identity primary key, oper char, t_user varchar (50), date datetime, anum int, aworker int, aposition int, astart datetime, aend datetime)
go
4. Π‘Ρ Π΅ΠΌΠ° Π΄ΠΈΠ°Π»ΠΎΠ³Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ
4.1 ΠΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠ°Π±Π»ΠΈΡ-ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΎΠ²
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²ΠΊΠ΅ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΎΠ², Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΆΠ°ΡΡ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΈΠ»ΠΈ Π·Π°ΠΉΡΠΈ Π² ΠΏΡΠ½ΠΊΡ ΠΌΠ΅Π½Ρ «ΠΠ΅Π΄Π΅Π½ΠΈΠ΅» ΠΈ Π²ΡΠ±ΡΠ°ΡΡ Π² Π½Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ. ΠΠ΅Π½Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4.1.
Π ΠΈΡΡΠ½ΠΎΠΊ 4.1 — ΠΠ΅Π½Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΎΠ² Π ΠΎΡΠΊΡΡΠ²ΡΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅, ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4.2, ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅. ΠΠ»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π·Π°ΠΏΠΈΡΡΠΌΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² ΠΏΡΠ°Π²ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΎΠΊΠ½Π° ΠΈΠ»ΠΈ ΠΊΡΡΡΠΎΡΠ½ΡΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ Π·Π°ΠΏΠΈΡΡ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΆΠ°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΈΠ»ΠΈ Π³ΠΎΡΡΡΡΡ ΠΊΠ»Π°Π²ΠΈΡΡ. ΠΠΎΠΆΠ½ΠΎ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΡΠΎΠ»Π±ΡΠ΅ ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΈ ΠΏΠΎ ΡΠ±ΡΠ²Π°Π½ΠΈΡ Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ Π½Π° Π΅Π³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ. ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ°ΠΌΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π. ΠΡΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°Π±Π»ΠΈΡΡ «ΠΠΈΠ΄Ρ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΡΠΈΠ³Π³Π΅ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΡΡΠ»ΠΎΡΠ½ΠΎΠΉ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ (№ 1) ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π΄Π°Π½Π½ΡΡ (№ 10). ΠΡΠΈ Π²ΡΡΠ°Π²ΠΊΠ΅ Π΄Π°Π½Π½ΡΡ Π² ΡΠ°Π±Π»ΠΈΡΡ «ΠΠ°ΡΡ» ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΡΠΊΠ°Π΄Π½Π°Ρ Π²ΡΡΠ°Π²ΠΊΠ° Π² ΡΠ°Π±Π»ΠΈΡΡ «Π’Π°Π±Π΅Π»Ρ» Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΡΠΈΠ³Π³Π΅ΡΠ° (№ 6).
Π ΠΈΡΡΠ½ΠΎΠΊ 4.2 — ΠΠΊΠ½ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ° ΠΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ Π·Π°ΠΏΠΈΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΌ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4.3.
Π ΠΈΡΡΠ½ΠΎΠΊ 4.3 — ΠΠ°ΠΏΡΠΎΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ
4.2 ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ Π²Π΅Π΄Π΅Π½ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°Ρ ΠΈ ΠΈΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡΡ Π½Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ «Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ» Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ»ΠΈ Π²ΡΠ±ΡΠ°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΏΡΠ½ΠΊΡ ΠΌΠ΅Π½Ρ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4.4.
Π ΠΈΡΡΠ½ΠΎΠΊ 4.4 — ΠΠ΅Π½Ρ Π²Π΅Π΄Π΅Π½ΠΈΡ Π±Π°Π·Ρ
Π ΠΎΡΠΊΡΡΠ²ΡΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΌ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4.5, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΠΎΠΈΡΠΊΠ° Π΄Π°Π½Π½ΡΡ , ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ Π² ΡΡΠΎΠ»Π±ΡΠ΅. ΠΡΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ΅ΠΌΠΈ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠΌΠΈ Π·Π°ΠΏΠΈΡΡΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ. ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ (№ 2), Π΄Π»Ρ Π²ΡΡΠ°Π²ΠΊΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° (№ 3).
Π ΠΈΡΡΠ½ΠΎΠΊ 4.5 — ΠΠΊΠ½ΠΎ ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² ΠΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΡΠΆΠ΅ Π²Π½Π΅ΡΠ΅Π½Π½ΠΎΠΌ Π² Π±Π°Π·Ρ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠ΅ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΎΠΊΠ½ΠΎ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4.6, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠ΅ ΠΈ Π΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡΡ Π½Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ. ΠΠ»Ρ Π²ΡΡΠ°Π²ΠΊΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° (№ 4).
Π ΠΈΡΡΠ½ΠΎΠΊ 4.6 — ΠΠΊΠ½ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ΅
Π Π΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌ ΠΎΠΊΠ½Π΅, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π½ΠΎΠΌ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4.7. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π² ΠΆΡΡΠ½Π°Π»Π΅.
Π ΠΈΡΡΠ½ΠΎΠΊ 4.7 — ΠΠΊΠ½ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° ΠΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΏΡΠ½ΠΊΡΠ° ΠΌΠ΅Π½Ρ «Π’Π°Π±Π΅Π»Ρ» ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΎΠΊΠ½ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4.8. Π Π½Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΡΠ°Π±Π΅Π»Ρ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄. ΠΠΎΡΡΡΠΏΠ΅Π½ ΠΏΠΎΠΈΡΠΊ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΎΠΊΠ½Ρ ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ². ΠΠΎΠ΄ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π. ΠΡΡΠ°Π²ΠΊΠ° Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ρ ΡΠ°Π½ΠΈΠΌΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ (№ 5).
Π ΠΈΡΡΠ½ΠΎΠΊ 4.8 — Π‘ΠΏΠΈΡΠΎΠΊ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΡΠ°Π±Π΅Π»Ρ ΠΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΎΠΊΠ½ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4.9. Π ΡΡΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠΏΠΈΡΠΎΠΊ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΈ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ full_appointments_info (№ 1).
Π ΠΈΡΡΠ½ΠΎΠΊ 4.9 — ΠΠΊΠ½ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠΈ ΡΠ°Π±Π΅Π»Ρ ΠΠ»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΏΠΎ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡΠΌ ΠΈΠ»ΠΈ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡΠΌ ΡΠ»ΡΠΆΠΈΡ ΠΎΠΊΠ½ΠΎ, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π½ΠΎΠ΅ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4.10. ΠΠ»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΡΡΠ»ΠΎΡΠ½ΠΎΠΉ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΡΠΈΠ³Π³Π΅ΡΡ (№ 2, 3), Π΄Π»Ρ Π²ΡΡΠ°Π²ΠΊΠΈ — Ρ ΡΠ°Π½ΠΈΠΌΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ (№ 6, 7).
Π ΠΈΡΡΠ½ΠΎΠΊ 4.10 — ΠΠΊΠ½ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΈ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ
4.3 ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ°ΡΠ½ΡΡ ΡΠΎΡΠΌ
ΠΠΎΡΡΡΠΏ ΠΊ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ°ΡΠ½ΡΡ ΡΠΎΡΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· ΠΏΡΠ½ΠΊΡ ΠΌΠ΅Π½Ρ «ΠΡΡΠ΅ΡΡ». ΠΡΠ΅Π³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ ΡΠ΅ΡΡΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΠΎΡΡΠ΅ΡΠ°. ΠΡΠ»ΠΈ Π½Π°ΠΆΠ°ΡΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ «Π’Π°Π±Π΅Π»Ρ», Π±ΡΠ΄Π΅Ρ ΠΎΡΠΊΡΡΡΠΎ ΠΎΠΊΠ½ΠΎ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ΅ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4.11, Π² Π½Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ ΠΏΠ΅ΡΠΈΠΎΠ΄, Π΄Π°Π½Π½ΡΠ΅ Π·Π° ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π² ΠΎΡΡΠ΅ΡΠ΅.
Π ΠΈΡΡΠ½ΠΎΠΊ 4.11 — ΠΠΊΠ½ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄Π»Ρ ΠΎΡΡΠ΅ΡΠ° ΠΏΠΎ ΡΠ°Π±Π΅Π»Ρ ΠΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ «ΠΠΎΠΊΠ°Π·Π°ΡΡ», Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΎΡΡΠ΅Ρ, ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4.12. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Ρ ΡΠ°Π½ΠΈΠΌΠ°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° (№ 2) ΠΈ ΡΠΊΠ°Π»ΡΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ (№ 1).
Π ΠΈΡΡΠ½ΠΎΠΊ 4.12 — ΠΡΠΈΠΌΠ΅Ρ ΠΎΡΡΠ΅ΡΠ° ΠΏΠΎ ΡΠ°Π±Π΅Π»Ρ Π ΡΠ»ΡΡΠ°Π΅ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ Π΄Π°Π½Π½ΡΡ Π·Π° Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4.13.
Π ΠΈΡΡΠ½ΠΎΠΊ 4.13 — Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ Π΄Π°Π½Π½ΡΡ
ΠΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΎΡΡΠ΅ΡΠ° «ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ» ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΎΠΊΠ½ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4.14. Π Π½Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°, Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° Π΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π½Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ.
Π ΠΈΡΡΠ½ΠΎΠΊ 4.14 — ΠΡΠ±ΠΎΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΎΡΡΠ΅ΡΠ° ΠΡΠΈΠΌΠ΅Ρ ΠΎΡΡΠ΅ΡΠ° ΠΏΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4.15. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Ρ ΡΠ°Π½ΠΈΠΌΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ (№ 2).
Π ΠΈΡΡΠ½ΠΎΠΊ 4.15 — ΠΡΠΈΠΌΠ΅Ρ ΠΎΡΡΠ΅ΡΠ° ΠΏΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° ΠΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ «ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ» Π±ΡΠ΄Π΅Ρ ΠΎΡΠΊΡΡΡΠΎ ΠΎΠΊΠ½ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4.16. Π ΡΡΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠΊΠ»Π°Π΄Π° Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠ΅ΠΉ, Π΅ΡΠ»ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΠΏΠΎΠ»Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΡΡΡΡΠΌ.
Π ΠΈΡΡΠ½ΠΎΠΊ 4.16 — ΠΠ°Π΄Π°Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΎΠΊΠ»Π°Π΄Π° Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΎΡΡΠ΅ΡΠ°
ΠΡΠΈΠΌΠ΅Ρ ΠΎΡΡΠ΅ΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4.17. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π.
Π ΠΈΡΡΠ½ΠΎΠΊ 4.17 — ΠΡΡΠ΅Ρ ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ «ΠΡΠ΄Π΅Π»Ρ» Π±ΡΠ΄Π΅Ρ ΠΎΡΠΊΡΡΡΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠ±ΡΠ°ΡΡ ΠΎΡΠ΄Π΅Π» Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΎΡΡΠ΅ΡΠ°. ΠΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π½Π° ΡΠΈΡ. 4.18.
Π ΠΈΡΡΠ½ΠΎΠΊ 4.18 — ΠΡΠ±ΠΎΡ ΠΎΡΠ΄Π΅Π»Π° Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΎΡΡΠ΅ΡΠ° ΠΡΠΈΠΌΠ΅Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡΡΠ΅ΡΠ° ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4.19. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ (№ 1).
Π ΠΈΡΡΠ½ΠΎΠΊ 4.19 — ΠΠ°Π΄Π°Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΎΠΊΠ»Π°Π΄Π° Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΎΡΡΠ΅ΡΠ°
4.4 ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΡΠΈ Π²Ρ ΠΎΠ΄Π΅ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΊΠ½ΠΎ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΠΈΠΏΠ° Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ΅ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4.20. ΠΡΠ±ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ Π² ΠΎΠΊΠ½Π΅ ΠΏΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π΅Π³ΠΎ ΠΎΡΠΊΡΡΡΠΈΠΈ.
Π ΠΈΡΡΠ½ΠΎΠΊ 4.20 — ΠΠΊΠ½ΠΎ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ Π²Ρ ΠΎΠ΄Π° ΠΡΠ»ΠΈ ΠΏΡΠΈ Π²Ρ ΠΎΠ΄Π΅ ΡΡΠΎ ΠΎΠΊΠ½ΠΎ Π·Π°ΠΊΡΡΡΡ, Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π±ΡΠ΄ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ. ΠΠΎΡΡΡΠΏ ΠΊ ΡΡΠΈΠΌ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΡΠ½ΠΊΡ ΠΌΠ΅Π½Ρ «ΠΠ°ΡΡΡΠΎΠΉΠΊΠ°». Π ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4.21.
Π ΠΈΡΡΠ½ΠΎΠΊ 4.21 — Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΠ»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ ΡΡΠ°Π²Π½ΠΈΡΡ ΡΡΠΌΠΌΡ Π·Π°ΡΠΏΠ»Π°Ρ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΏΠΎ ΠΎΡΠ΄Π΅Π»Π°ΠΌ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΌΠ΅Π½Ρ Π·Π°ΠΉΡΠΈ Π² «ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ» ΠΈ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΡΠ½ΠΊΡ «ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΡΡΠΌΠΌ Π·Π°ΡΠΏΠ»Π°Ρ Π² ΠΎΡΠ΄Π΅Π»Π°Ρ ». Π ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°ΡΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ . ΠΡΠΈΠΌΠ΅Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4.22. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΊΠ°Π»ΡΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ (№ 1). ΠΠΎΠ΄ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π.
Π ΠΈΡΡΠ½ΠΎΠΊ 4.22 — ΠΡΠΈΠΌΠ΅Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Π’Π°ΠΊΠΆΠ΅ Π²Π΅Π΄Π΅ΡΡΡ ΠΆΡΡΠ½Π°Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ «ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ» Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΎΡΠΊΠ°ΡΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΡΠΈΠΌΠ΅Ρ Π²ΡΠ±ΠΎΡΠΊΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΈΠ· ΠΆΡΡΠ½Π°Π»Π° ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4.23. ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ 4.24 ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π²ΡΠ±ΠΎΡΠΊΠ° ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΠΊΠ°ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ρ ΡΠ°Π½ΠΈΠΌΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ (№ 1) ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΠ»Ρ Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΆΡΡΠ½Π°Π»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΡΠΈΠ³Π³Π΅ΡΡ (№ 4, 5).
Π ΠΈΡΡΠ½ΠΎΠΊ 4.23 — ΠΡΠ±ΠΎΡΠΊΠ° ΠΈΠ· ΠΆΡΡΠ½Π°Π»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π ΠΈΡΡΠ½ΠΎΠΊ 4.24 — ΠΡΠΊΠ°Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠΎ ΠΆΡΡΠ½Π°Π»Ρ
5. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° MS SQL Server
5.1 ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ 5.1.
Π’Π°Π±Π»ΠΈΡΠ° 5.1 — ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ
β ΠΏ/ΠΏ | ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ | ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ | ΠΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ | |
full_appointments_info | ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡΡ , Π²ΠΊΠ»ΡΡΠ°Ρ ΠΎΡΠ΄Π΅Π», Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΡ, Π€ΠΠ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°. | ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΡΠ°Π±Π΅Π»Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ². Π’Π°ΠΊΠΆΠ΅ ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ ΠΎΡΡΠ΅ΡΠ° ΠΏΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°ΠΌ ΠΎΡΠ΄Π΅Π»Π°. | ||
Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ_ΠΎΡΠ΄Π΅Π»Ρ | ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°Ρ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π½Π°Π·Π²Π°Π½ΠΈΡΠΌΠΈ ΠΎΡΠ΄Π΅Π»ΠΎΠ² Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. | ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ΅. | ||
SQL-ΡΠ΅ΠΊΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ:
— Π Π°ΡΡΠΈΡΠ΅Π½Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡΡ
CREATE VIEW full_appointments_info AS
SELECT ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠΎΠ΄ ΠΠΎΠ΄, ΠΡΠ΄Π΅Π»Ρ. ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΡΠ΄Π΅Π», Π€ΠΠ,
ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ.ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΡ, ΠΠ°ΡΠ°_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΠ°ΡΠ°_ΡΡ ΠΎΠ΄Π°, ΠΡΠ΄Π΅Π»Ρ. ΠΠΎΠ΄ ΠΠΎΠ΄ΠΡΠ΄Π΅Π»Π° FROM ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ, Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ,
ΠΡΠ΄Π΅Π»Ρ WHERE ΠΠΎΠ΄_Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ = ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ. ΠΠΎΠ΄
and ΠΠΎΠ΄_ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°= Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ. ΠΠΎΠ΄
and ΠΠΎΠ΄_ΠΎΡΠ΄Π΅Π»Π° = ΠΡΠ΄Π΅Π»Ρ. ΠΠΎΠ΄
— ΠΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ — ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΎΡΠ΄Π΅Π»ΠΎΠ²
CREATE VIEW Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ_ΠΎΡΠ΄Π΅Π»Ρ AS
SELECT ΠΠΎΠ΄ = ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ. ΠΠΎΠ΄ + 0, Π€ΠΠ, ΠΠ°ΡΠ°_ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ,
ΠΠΎΠ΄_ΠΎΡΠ΄Π΅Π»Π° = ΠΠΎΠ΄_ΠΎΡΠ΄Π΅Π»Π° + 0, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΎΡΠ΄Π΅Π» FROM ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ,
ΠΡΠ΄Π΅Π»Ρ WHERE ΠΠΎΠ΄_ΠΎΡΠ΄Π΅Π»Π° = ΠΡΠ΄Π΅Π»Ρ. ΠΠΎΠ΄
5.2 ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΡΠ°Π½ΠΈΠΌΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Ρ ΡΠ°Π½ΠΈΠΌΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ 5.2.
Π’Π°Π±Π»ΠΈΡΠ° 5.2 — ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Ρ ΡΠ°Π½ΠΈΠΌΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ
β ΠΏ/ΠΏ | ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ | ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ | ΠΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ | |
restore_appointments | ΠΡΠΊΠ°Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. | ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΎΡΠΊΠ°ΡΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. | ||
table_info | ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΎ Π·Π°ΡΠΏΠ»Π°ΡΠ΅ Π² Π²ΠΈΠ΄Π΅ ΡΠ°Π±Π»ΠΈΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΡΠΌΠΌΠ°Ρ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΈ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ. | ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ ΠΎΡΡΠ΅ΡΠ° Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ Π·Π°ΡΠΏΠ»Π°ΡΠ΅. | ||
Insert_to_personal | ΠΡΡΠ°Π²ΠΊΠ° Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ°Π±Π»ΠΈΡΡ «Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ» ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π΅Π΅ ΠΊΠΎΠ΄Π°. | ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΡΠ°Π±Π»ΠΈΡΡ «Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ» | ||
Insert_to_appointments | ΠΡΡΠ°Π²ΠΊΠ° Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ°Π±Π»ΠΈΡΡ «ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ» ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π΅Π΅ ΠΊΠΎΠ΄Π°. | ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΡΠ°Π±Π»ΠΈΡΡ «ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ» | ||
Insert_to_table | ΠΡΡΠ°Π²ΠΊΠ° Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ°Π±Π»ΠΈΡΡ «Π’Π°Π±Π΅Π»Ρ» ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π΅Π΅ ΠΊΠΎΠ΄Π°. | ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΡΠ°Π±Π»ΠΈΡΡ «Π’Π°Π±Π΅Π»Ρ» | ||
Insert_to_charges | ΠΡΡΠ°Π²ΠΊΠ° Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ°Π±Π»ΠΈΡΡ «ΠΠ°ΡΠΈΡΠ»Π΅Π½ΠΈΡ» ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π΅Π΅ ΠΊΠΎΠ΄Π°. | ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΡΠ°Π±Π»ΠΈΡΡ «ΠΠ°ΡΠΈΡΠ»Π΅Π½ΠΈΡ» | ||
Insert_to_keepings | ΠΡΡΠ°Π²ΠΊΠ° Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ°Π±Π»ΠΈΡΡ «Π£Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ» ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π΅Π΅ ΠΊΠΎΠ΄Π°. | ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΡΠ°Π±Π»ΠΈΡΡ «Π£Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ» | ||
SQL-ΡΠ΅ΠΊΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ:
—ΠΡΠΊΠ°Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠΎ ΠΆΡΡΠ½Π°Π»Ρ
—ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ — ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π·Π°ΠΏΠΈΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΡΠ°Π΅ΡΡΡ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
create proc restore_appointments @last_ok_id int
as
declare logc cursor for
select oper, anum, aworker, aposition, astart, aend
from appointments_log
where id > @last_ok_id
order by id desc
declare @oper char, @anum int, @aworker int, @aposition int,
@astart datetime, @aend datetime
set identity_insert Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ on
open logc
fetch logc into @oper, @anum, @aworker,
@aposition, @astart, @aend
while @@fetch_status = 0 begin
if (@oper = 'I')
delete from Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ where ΠΊΠΎΠ΄ = @anum
else if (@oper = 'D')
insert into Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ (ΠΠΎΠ΄, ΠΠΎΠ΄_ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°, ΠΠΎΠ΄_Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ, ΠΠ°ΡΠ°_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΠ°ΡΠ°_ΡΡ ΠΎΠ΄Π°)
values (@anum,@aworker,@aposition,@astart,@aend)
else
update Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ set ΠΠΎΠ΄_ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° = @aworker,
ΠΠΎΠ΄_Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ = @aposition,
ΠΠ°ΡΠ°_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ = @astart, ΠΠ°ΡΠ°_ΡΡ ΠΎΠ΄Π° = @aend
where ΠΠΎΠ΄ = @anum
fetch logc into @oper, @anum, @aworker,
@aposition, @astart, @aend
end
set identity_insert Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ off
close logc
deallocate logc
—Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ°Π±Π»ΠΈΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΠΎ Π·Π°ΡΠΏΠ»Π°ΡΠ΅
create proc table_info @date_id int as
select Π’Π°Π±Π΅Π»Ρ. ΠΠΎΠ΄, Π§Π°ΡΡ, Π€ΠΠ, ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ. ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΡ, ΠΡΠ΄Π΅Π»Ρ. ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΡΠ΄Π΅Π», ΠΠ°ΡΠ°, ΠΠΎΠ»Π»ΠΈΡΠ΅ΡΡΠ²ΠΎ_ΡΠ°ΡΠΎΠ², ΠΠΊΠ»Π°Π΄
INTO #table from Π’Π°Π±Π΅Π»Ρ, ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ,
ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ, ΠΡΠ΄Π΅Π»Ρ, ΠΠ°ΡΡ
where ΠΠΎΠ΄_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ = ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠΎΠ΄
and ΠΠΎΠ΄_ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° = Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ. ΠΠΎΠ΄
and ΠΠΎΠ΄_Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ = ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ. ΠΠΎΠ΄
and ΠΠΎΠ΄_ΠΎΡΠ΄Π΅Π»Π° = ΠΡΠ΄Π΅Π»Ρ. ΠΠΎΠ΄
and ΠΠΎΠ΄_Π΄Π°ΡΡ = ΠΠ°ΡΡ. ΠΠΎΠ΄ and ΠΠ°ΡΡ. ΠΠΎΠ΄ = @date_id
order by Π΄Π°ΡΠ°, ΠΎΡΠ΄Π΅Π», Π€ΠΈΠΎ
—Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌΠΎΠ΅ ΠΏΠΎΠ»Π΅ Ρ ΡΡΠΌΠΌΠΎΠΉ ΠΎΠΊΠ»Π°Π΄Π° Π·Π° ΠΎΡΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠ΅ ΡΠ°ΡΡ
alter table #table add ΡΡΠΌΠΌΠ°_Π·Π°_ΡΠ°ΡΡ as cast (ΠΎΠΊΠ»Π°Π΄ * (cast (ΡΠ°ΡΡ as float)/ΠΊΠΎΠ»Π»ΠΈΡΠ΅ΡΡΠ²ΠΎ_ΡΠ°ΡΠΎΠ²) as numeric (10,2))
—ΡΠ°Π±Π»ΠΈΡΠ° Π΄Π»Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ
CREATE TABLE #charges (ΠΠΎΠ΄ int, ΠΏΡΠΎΡΠ΅Π½Ρ_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ int,
ΠΏΡΠΎΡΠ΅Π½Ρ_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ int, ΡΡΠΌΠΌΠ°_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ float,
ΡΡΠΌΠΌΠ°_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ float, ΠΈΡΠΎΠ³ΠΎ float)
INSERT INTO #charges (ΠΊΠΎΠ΄) SELECT ΠΠΎΠ΄ FROM #table
—ΠΏΠΎΠ΄ΡΡΠ΅Ρ ΠΏΡΠΎΡΠ΅Π½ΡΠ° Π΄Π»Ρ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΈ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ
update #charges set ΠΡΠΎΡΠ΅Π½Ρ_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ =
(SELECT SUM (ΠΠ΅Π»ΠΈΡΠΈΠ½Π°*ΠΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ)
FROM ΠΠΈΠ΄Ρ_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ, ΠΠ°ΡΠΈΡΠ»Π΅Π½ΠΈΡ
WHERE ΠΠΎΠ΄_Π²ΠΈΠ΄Π°_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ = ΠΠΈΠ΄Ρ_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ.ΠΠΎΠ΄
AND ΠΠΎΠ΄_ΡΠ°Π±Π΅Π»Ρ = #charges.ΠΠΎΠ΄
AND Π’ΠΈΠΏ = 'Π')
update #charges set ΠΡΠΎΡΠ΅Π½Ρ_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ =
isnull (ΠΡΠΎΡΠ΅Π½Ρ_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ, 0)
update #charges set ΠΏΡΠΎΡΠ΅Π½Ρ_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ =
(SELECT SUM (ΠΠ΅Π»ΠΈΡΠΈΠ½Π°*ΠΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ)
FROM ΠΠΈΠ΄Ρ_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ, Π£Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ
WHERE ΠΠΎΠ΄_Π²ΠΈΠ΄Π°_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ = ΠΠΈΠ΄Ρ_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ.ΠΠΎΠ΄
AND ΠΠΎΠ΄_ΡΠ°Π±Π΅Π»Ρ = #charges.ΠΠΎΠ΄
AND Π’ΠΈΠΏ = 'Π')
update #charges set ΠΏΡΠΎΡΠ΅Π½Ρ_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ =
isnull (ΠΏΡΠΎΡΠ΅Π½Ρ_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ, 0)
—ΠΏΠΎΠ΄ΡΡΠ΅Ρ ΡΡΠΌΠΌ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΈ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ
update #charges set Π‘ΡΠΌΠΌΠ°_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ =
(SELECT isnull (SUM (ΠΠ΅Π»ΠΈΡΠΈΠ½Π°*ΠΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ), 0)
FROM ΠΠΈΠ΄Ρ_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ, ΠΠ°ΡΠΈΡΠ»Π΅Π½ΠΈΡ
WHERE ΠΠΎΠ΄_Π²ΠΈΠ΄Π°_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ = ΠΠΈΠ΄Ρ_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ.ΠΠΎΠ΄
AND ΠΠΎΠ΄_ΡΠ°Π±Π΅Π»Ρ = #charges.ΠΠΎΠ΄
AND Π’ΠΈΠΏ = 'A')
update #charges set Π‘ΡΠΌΠΌΠ°_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ =
(SELECT isnull (SUM (ΠΠ΅Π»ΠΈΡΠΈΠ½Π°*ΠΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ), 0)
FROM ΠΠΈΠ΄Ρ_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ, Π£Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ
WHERE ΠΠΎΠ΄_Π²ΠΈΠ΄Π°_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ = ΠΠΈΠ΄Ρ_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ.ΠΠΎΠ΄
AND ΠΠΎΠ΄_ΡΠ°Π±Π΅Π»Ρ = #charges.ΠΠΎΠ΄
AND Π’ΠΈΠΏ = 'A')
—Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΡΠΌΠΌΡ ΠΏΠΎ ΠΏΠΎΠ΄ΡΡΠΈΡΠ°Π½Π½ΡΠΌ ΡΠ°Π½Π΅Π΅ ΠΏΡΠΎΡΠ΅Π½ΡΠ°ΠΌ
update #charges set
Π‘ΡΠΌΠΌΠ°_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ = Π‘ΡΠΌΠΌΠ°_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ + ΡΡΠΌΠΌΠ°_Π·Π°_ΡΠ°ΡΡ *
cast (ΠΡΠΎΡΠ΅Π½Ρ_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ as float) / 100
from #table where #charges.ΠΠΎΠ΄ = #table.ΠΠΎΠ΄
update #charges set
Π‘ΡΠΌΠΌΠ°_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ = Π‘ΡΠΌΠΌΠ°_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ +
(ΡΡΠΌΠΌΠ°_Π·Π°_ΡΠ°ΡΡ + Π‘ΡΠΌΠΌΠ°_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ) *
cast (ΠΡΠΎΡΠ΅Π½Ρ_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ as float) / 100
from #table where #charges.ΠΠΎΠ΄ = #table.ΠΠΎΠ΄
—ΡΠ°ΡΡΠ΅Ρ Π·Π°ΡΠΏΠ»Π°ΡΡ
update #charges set
ΠΈΡΠΎΠ³ΠΎ = ΡΡΠΌΠΌΠ°_Π·Π°_ΡΠ°ΡΡ + Π‘ΡΠΌΠΌΠ°_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ;
Π‘ΡΠΌΠΌΠ°_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ
from #table where #charges.ΠΠΎΠ΄ = #table.ΠΠΎΠ΄
—Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅
select ΠΠ°ΡΠ°, ΠΡΠ΄Π΅Π», Π€ΠΠ, ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΡ, ΡΠ°ΡΡ, ΡΡΠΌΠΌΠ°_Π·Π°_ΡΠ°ΡΡ,
ΠΡΠΎΡΠ΅Π½Ρ_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ, ΠΏΡΠΎΡΠ΅Π½Ρ_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ,
Cast (Π‘ΡΠΌΠΌΠ°_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ as numeric (10,2))
Π‘ΡΠΌΠΌΠ°_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ,
Cast (Π‘ΡΠΌΠΌΠ°_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ as numeric (10,2)) Π‘ΡΠΌΠΌΠ°_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ,
Cast (ΠΡΠΎΠ³ΠΎ as numeric (10,2)) ΠΡΠΎΠ³ΠΎ
from #table, #charges where #table.ΠΊΠΎΠ΄ = #charges.ΠΊΠΎΠ΄
go
— ΠΡΠΎΡΠ΅Π΄ΡΡΡ Π΄Π»Ρ Π²ΡΡΠ°Π²ΠΊΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ
— ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ — ΠΊΠΎΠ΄ Π²ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ
CREATE PROC Insert_to_personal AS
declare @code int;
select @code = min (ΠΊΠΎΠ΄) from ΠΎΡΠ΄Π΅Π»Ρ
insert into ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ (Π€ΠΠ, ΠΠΎΠ΄_ΠΎΡΠ΄Π΅Π»Π°) values ('', @code)
SELECT @@identity ΠΠΎΠ΄
GO
CREATE PROC Insert_to_appointments @worker_id int AS
declare @code int;
select @code = min (ΠΊΠΎΠ΄) from Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ
insert into Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ (ΠΊΠΎΠ΄_ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°, Π΄Π°ΡΠ°_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΠΎΠ΄_Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ) values (@worker_id, getdate (), @code)
SELECT IDENT_CURRENT ('Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ') ΠΠΎΠ΄
GO
CREATE PROC Insert_to_table AS
declare @code int;
select @code = min (ΠΊΠΎΠ΄) from Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ
insert into ΡΠ°Π±Π΅Π»Ρ (ΡΠ°ΡΡ, ΠΊΠΎΠ΄_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ) values (0, @code)
SELECT @@identity ΠΠΎΠ΄
GO
CREATE PROC Insert_to_charges @table_id int AS
declare @code int;
select @code = min (ΠΊΠΎΠ΄) from Π²ΠΈΠ΄Ρ_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ
insert into Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ (ΠΊΠΎΠ΄_ΡΠ°Π±Π΅Π»Ρ, ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ, ΠΊΠΎΠ΄_Π²ΠΈΠ΄Π°_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ) values (@table_id, 1, @code)
SELECT @@identity ΠΠΎΠ΄
GO
CREATE PROC Insert_to_keepings @table_id int AS
declare @code int;
select @code = min (ΠΊΠΎΠ΄) from Π²ΠΈΠ΄Ρ_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ
insert into ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ (ΠΊΠΎΠ΄_ΡΠ°Π±Π΅Π»Ρ, ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ, ΠΊΠΎΠ΄_Π²ΠΈΠ΄Π°_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ) values (@table_id, 1, @code)
SELECT @@identity ΠΠΎΠ΄
GO
5.3 ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΡΠ°Π½ΠΈΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Ρ ΡΠ°Π½ΠΈΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ 5.3.
Π’Π°Π±Π»ΠΈΡΠ° 5.3 — ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Ρ ΡΠ°Π½ΠΈΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
β ΠΏ/ΠΏ | ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ | ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ | ΠΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ | |
salary | ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠΌΠΌΡ Π·Π°ΡΠΏΠ»Π°ΡΡ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ ΡΠ°Π±Π΅Π»Ρ. | ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΡΡΠ΅ΡΠ° Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ Π·Π°ΡΠΏΠ»Π°ΡΠ΅. Π’Π°ΠΊΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Π° Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Π·Π°ΡΠΏΠ»Π°Ρ ΠΎΡΠ΄Π΅Π»ΠΎΠ². | ||
Appointments_of_worker_by_id | ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°. | ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ ΠΎΡΡΠ΅ΡΠ° ΠΏΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°. | ||
SQL-ΡΠ΅ΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ:
— ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ — ΠΊΠΎΠ΄ ΡΠ°Π±Π΅Π»Ρ
— ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ — ΡΡΠΌΠΌΠ° Π·Π°ΡΠΏΠ»Π°ΡΡ
create function salary (@table_id int) returns numeric (10,2)
begin
declare @sum float
set @sum = 0
— ΡΡΠΌΠΌΠ° ΠΎΠΊΠ»Π°Π΄Π° Π·Π° ΠΎΡΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠ΅ ΡΠ°ΡΡ
declare @sum_by_hours float
select @sum_by_hours = cast (ΠΎΠΊΠ»Π°Π΄ *(cast (ΡΠ°ΡΡ as float) /
ΠΊΠΎΠ»Π»ΠΈΡΠ΅ΡΡΠ²ΠΎ_ΡΠ°ΡΠΎΠ²) as numeric (10,2))
from ΡΠ°Π±Π΅Π»Ρ, Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ, Π΄Π°ΡΡ
where ΠΊΠΎΠ΄_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ = Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΊΠΎΠ΄
and ΠΊΠΎΠ΄_Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ = Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ. ΠΊΠΎΠ΄
and ΠΊΠΎΠ΄_Π΄Π°ΡΡ = Π΄Π°ΡΡ. ΠΊΠΎΠ΄ and ΡΠ°Π±Π΅Π»Ρ. ΠΊΠΎΠ΄ = @table_id
set @sum = @sum_by_hours
— ΠΏΡΠΎΡΠ΅Π½Ρ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΈ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ
declare @percent_add float
declare @percent_keep float
SELECT @percent_add = SUM (ΠΠ΅Π»ΠΈΡΠΈΠ½Π°*ΠΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ)
FROM ΠΠΈΠ΄Ρ_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ, ΠΠ°ΡΠΈΡΠ»Π΅Π½ΠΈΡ
WHERE ΠΠΎΠ΄_Π²ΠΈΠ΄Π°_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ = ΠΠΈΠ΄Ρ_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ.ΠΠΎΠ΄
AND ΠΠΎΠ΄_ΡΠ°Π±Π΅Π»Ρ = @table_id AND Π’ΠΈΠΏ = 'Π'
set @percent_add = isnull (@percent_add, 0)
SELECT @percent_keep = SUM (ΠΠ΅Π»ΠΈΡΠΈΠ½Π°*ΠΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ)
FROM ΠΠΈΠ΄Ρ_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ, Π£Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ
WHERE ΠΠΎΠ΄_Π²ΠΈΠ΄Π°_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ = ΠΠΈΠ΄Ρ_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ.ΠΠΎΠ΄
AND ΠΠΎΠ΄_ΡΠ°Π±Π΅Π»Ρ = @table_id AND Π’ΠΈΠΏ = 'Π'
set @percent_keep = isnull (@percent_keep, 0)
— ΡΡΠΌΠΌΠ° Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΈ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ
declare @sum_add float
declare @sum_keep float
SELECT @sum_add = isnull (SUM (ΠΠ΅Π»ΠΈΡΠΈΠ½Π°*ΠΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ), 0)
FROM ΠΠΈΠ΄Ρ_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ, ΠΠ°ΡΠΈΡΠ»Π΅Π½ΠΈΡ
WHERE ΠΠΎΠ΄_Π²ΠΈΠ΄Π°_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ = ΠΠΈΠ΄Ρ_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ.ΠΠΎΠ΄
AND ΠΠΎΠ΄_ΡΠ°Π±Π΅Π»Ρ = @table_id AND Π’ΠΈΠΏ = 'A'
SELECT @sum_keep = isnull (SUM (ΠΠ΅Π»ΠΈΡΠΈΠ½Π°*ΠΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ), 0)
FROM ΠΠΈΠ΄Ρ_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ, Π£Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ
WHERE ΠΠΎΠ΄_Π²ΠΈΠ΄Π°_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ = ΠΠΈΠ΄Ρ_ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΉ.ΠΠΎΠ΄
AND ΠΠΎΠ΄_ΡΠ°Π±Π΅Π»Ρ = @table_id AND Π’ΠΈΠΏ = 'A'
set @sum_add = @sum_add + @sum_by_hours * @percent_add / 100
set @sum_keep = @sum_keep + (@sum_add + @sum_by_hours) *
@percent_keep / 100
— Π·Π°ΡΠΏΠ»Π°ΡΠ°
set @sum = @sum_by_hours + @sum_add — @sum_keep
return @sum
end
— ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ — ΠΊΠΎΠ΄ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°
— ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ — ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΡΠΎΠ³ΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°
CREATE FUNCTION Appointments_of_worker_by_id (@worker int)
RETURNS @appointments table (ΠΠΎΠ΄ int, ΠΠΎΠ΄_Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ int,
ΠΠΎΠ΄_ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° int, ΠΠ°ΡΠ°_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ datetime,
ΠΠ°ΡΠ°_ΡΡ ΠΎΠ΄Π° datetime, Π€ΠΠ varchar (50)) AS
BEGIN
DECLARE @name varchar (50)
SELECT @name = Π€ΠΠ
FROM Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ
WHERE ΠΠΎΠ΄ = @worker
INSERT INTO @appointments (ΠΠΎΠ΄, ΠΠΎΠ΄_Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ, ΠΠΎΠ΄_ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°, ΠΠ°ΡΠ°_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΠ°ΡΠ°_ΡΡ ΠΎΠ΄Π°, Π€ΠΠ)
SELECT ΠΠΎΠ΄, ΠΠΎΠ΄_Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ, @worker,
ΠΠ°ΡΠ°_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΠ°ΡΠ°_ΡΡ ΠΎΠ΄Π°, @name
FROM ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ WHERE ΠΠΎΠ΄_ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° = @worker
RETURN
END
5.4 ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ°Π±Π»ΠΈΡ
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ 5.4.
Π’Π°Π±Π»ΠΈΡΠ° 5.4 — ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ
β ΠΏ/ΠΏ | ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ | ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ | ΠΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ | |
#table | Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ Π±Π°Π·ΠΎΠ²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ Π·Π°ΠΏΠΈΡΡΠΌ ΡΠ°Π±Π΅Π»Ρ, Π²ΠΊΠ»ΡΡΠ°Ρ Π½Π°ΡΠΈΡΠ»ΡΠ΅ΠΌΡΠΉ ΠΎΠΊΠ»Π°Π΄. | ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ № 2 | ||
#charges | Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ Π·Π°ΠΏΠΈΡΡΠΌ ΡΠ°Π±Π΅Π»Ρ ΠΈ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ Π·Π°ΡΠΏΠ»Π°ΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π΄Π»Ρ Π΅Π΅ ΡΠ°ΡΡΠ΅ΡΠ°. | ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ № 2 | ||
5.5 ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΡΡΡΠΎΡΠΎΠ²
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΊΡΡΡΠΎΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ 5.4.
Π’Π°Π±Π»ΠΈΡΠ° 5.4 — ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΊΡΡΡΠΎΡΡ
β ΠΏ/ΠΏ | ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ | ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ | ΠΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ | |
logc | ΠΡΠΎΡ ΠΎΠ΄ ΠΏΠΎ Π·Π°ΠΏΠΈΡΡΠΌ ΠΆΡΡΠ½Π°Π»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. | ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ № 1 | ||
dates | ΠΡΠΎΡ ΠΎΠ΄ ΠΏΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌΡΠΌ Π΄Π°ΡΠ°ΠΌ. | ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΡΠΈΠ³Π³Π΅ΡΠ΅ № 6 | ||
5.6 ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΈΠ³Π³Π΅ΡΠΎΠ²
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΡΠΈΠ³Π³Π΅ΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ 5.6.
Π’Π°Π±Π»ΠΈΡΠ° 5.6 — ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΡΠΈΠ³Π³Π΅ΡΡ
β ΠΏ/ΠΏ | ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ | ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ | ΠΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ | |
ΠΠΈΠ΄Ρ_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ_ Del | ΠΠΎΠ½ΡΡΠΎΠ»Ρ ΡΡΡΠ»ΠΎΡΠ½ΠΎΠΉ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ. | Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ «ΠΠΈΠ΄Ρ_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ». | ||
ΠΠ°ΡΠΈΡΠ»Π΅Π½ΠΈΡ_Ins | ΠΠΎΠ½ΡΡΠΎΠ»Ρ ΡΡΡΠ»ΠΎΡΠ½ΠΎΠΉ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ. | ΠΡΡΠ°Π²ΠΊΠ° Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΡΠ°Π±Π»ΠΈΡΡ «ΠΠ°ΡΠΈΡΠ»Π΅Π½ΠΈΡ». | ||
ΠΠ°ΡΠΈΡΠ»Π΅Π½ΠΈΡ_Upd | ΠΠΎΠ½ΡΡΠΎΠ»Ρ ΡΡΡΠ»ΠΎΡΠ½ΠΎΠΉ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ. | ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΡ «ΠΠ°ΡΠΈΡΠ»Π΅Π½ΠΈΡ». | ||
ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ_log | ΠΠ΅Π΄Π΅Π½ΠΈΠ΅ ΠΆΡΡΠ½Π°Π»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. | ΠΡΡΠ°Π²ΠΊΠ° ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΡΠ°Π±Π»ΠΈΡΡ «ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ». | ||
ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ_log_upd | ΠΠ΅Π΄Π΅Π½ΠΈΠ΅ ΠΆΡΡΠ½Π°Π»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. | ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΡ «ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ». | ||
ΠΠ°ΡΡ_Ins | ΠΠ°ΡΠΊΠ°Π΄Π½Π°Ρ Π²ΡΡΠ°Π²ΠΊΠ° Π΄Π°Π½Π½ΡΡ Π² ΡΠ°Π±Π»ΠΈΡΡ «Π’Π°Π±Π΅Π»Ρ». | ΠΡΡΠ°Π²ΠΊΠ° Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΡΠ°Π±Π»ΠΈΡΡ «ΠΠ°ΡΡ». | ||
Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ_ΠΎΡΠ΄Π΅Π»Ρ_Ins | ΠΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅. | ΠΡΡΠ°Π²ΠΊΠ° Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ «Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ_ΠΎΡΠ΄Π΅Π»Ρ». | ||
Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ_ΠΎΡΠ΄Π΅Π»Ρ_Upd | ΠΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅. | ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ «Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ_ΠΎΡΠ΄Π΅Π»Ρ». | ||
Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ_ΠΎΡΠ΄Π΅Π»Ρ_Del | ΠΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅. | Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ «Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ_ΠΎΡΠ΄Π΅Π»Ρ». | ||
ΠΠΈΠ΄Ρ_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ_Ins_Upd | ΠΠΎΠ½ΡΡΠΎΠ»Ρ Π΄Π°Π½Π½ΡΡ . | ΠΡΡΠ°Π²ΠΊΠ° ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΡ «ΠΠΈΠ΄Ρ_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ». | ||
SQL-ΡΠ΅ΠΊΡΡ ΡΡΠΈΠ³Π³Π΅ΡΠΎΠ²:
—Π’ΡΠΈΠ³Π³Π΅ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ
CREATE TRIGGER ΠΠΈΠ΄Ρ_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ_Del ON ΠΠΈΠ΄Ρ_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ
FOR DELETE
AS
IF EXISTS (SELECT * FROM ΠΠ°ΡΠΈΡΠ»Π΅Π½ΠΈΡ WHERE ΠΠΎΠ΄_Π²ΠΈΠ΄Π°_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ IN (SELECT ΠΠΎΠ΄ FROM deleted))
BEGIN
raiserror ('Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ.ΠΊ. Π΅ΡΡΡ
ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π² Π΄ΡΡΠ³ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅', 16, 1)
rollback tran
END
GO
CREATE TRIGGER ΠΠ°ΡΠΈΡΠ»Π΅Π½ΠΈΡ_Ins ON ΠΠ°ΡΠΈΡΠ»Π΅Π½ΠΈΡ
FOR INSERT
AS
IF (SELECT count (*) FROM inserted) <>
(SELECT count (*) FROM inserted
WHERE ΠΠΎΠ΄_Π²ΠΈΠ΄Π°_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ IN
(SELECT ΠΠΎΠ΄ FROM ΠΠΈΠ΄Ρ_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ))
BEGIN
raiserror ('ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π·Π°ΠΏΠΈΡΡ: Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ Π²ΠΈΠ΄ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ', 16, 1)
rollback tran
END
GO
CREATE TRIGGER ΠΠ°ΡΠΈΡΠ»Π΅Π½ΠΈΡ_Upd ON ΠΠ°ΡΠΈΡΠ»Π΅Π½ΠΈΡ
FOR UPDATE
AS
IF update (ΠΠΎΠ΄_Π²ΠΈΠ΄Π°_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ) BEGIN
IF (SELECT count (*) FROM inserted) <>
(SELECT count (*) FROM inserted
WHERE ΠΠΎΠ΄_Π²ΠΈΠ΄Π°_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ IN
(SELECT ΠΠΎΠ΄ FROM ΠΠΈΠ΄Ρ_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ))
BEGIN
raiserror ('ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π·Π°ΠΏΠΈΡΡ: Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ Π²ΠΈΠ΄ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ', 16, 1)
rollback tran
END
END
GO
—Π’ΡΠΈΠ³Π³Π΅Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π΄Π°Π½Π½ΡΡ
CREATE TRIGGER ΠΠΈΠ΄Ρ_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ_Ins_Upd ON ΠΠΈΠ΄Ρ_Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ
FOR Insert, Update
AS
IF (SELECT count (*) FROM inserted) <>
(SELECT count (*) FROM inserted
WHERE Π’ΠΈΠΏ IN ('Π','Π'))
BEGIN
raiserror ('ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π·Π°ΠΏΠΈΡΡ. ΠΠ²Π΅Π΄Π΅Π½ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΡΠΈΠΏ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ', 16, 1)
rollback tran
END
GO
— Π’ΡΠΈΠ³Π³Π΅ΡΡ Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΆΡΡΠ½Π°Π»Π° ΠΏΠΎ ΡΠ°Π±Π»ΠΈΡΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ
create trigger ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ_log on Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ
after insert, update, delete
as
declare @date datetime
set @date = getdate ()
declare @user varchar (50)
set @user = current_user
insert into appointments_log
select 'D', @user, @date, ΠΠΎΠ΄, ΠΠΎΠ΄_ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°, ΠΠΎΠ΄_Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ, ΠΠ°ΡΠ°_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π΄Π°ΡΠ°_ΡΡ ΠΎΠ΄Π°
from deleted
insert into appointments_log
select 'I',@user,@date, ΠΠΎΠ΄, ΠΠΎΠ΄_ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°, ΠΠΎΠ΄_Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ, ΠΠ°ΡΠ°_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π΄Π°ΡΠ°_ΡΡ ΠΎΠ΄Π°
from inserted
go
create trigger ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ_log_upd on Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ
after update
as
declare @date datetime
set @date = getdate ()
declare @user varchar (50)
set @user = current_user
insert into appointments_log
select 'U', @user, @date, ΠΠΎΠ΄, ΠΠΎΠ΄_ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°, ΠΠΎΠ΄_Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ,
ΠΠ°ΡΠ°_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π΄Π°ΡΠ°_ΡΡ ΠΎΠ΄Π°
from deleted
go
—Π’ΡΠΈΠ³Π³Π΅Ρ ΠΊΠ°ΡΠΊΠ°Π΄Π½ΠΎΠΉ Π²ΡΡΠ°Π²ΠΊΠΈ Π² ΡΠ°Π±Π΅Π»Ρ Π΄Π»Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ
create trigger ΠΠ°ΡΡ_Ins on ΠΠ°ΡΡ
after insert
as
declare @date_id int
declare @date datetime
set nocount on
DECLARE dates CURSOR FOR
SELECT ΠΠΎΠ΄, ΠΠ°ΡΠ°
FROM inserted
OPEN dates
FETCH dates INTO @date_id, @date
WHILE @@Fetch_status = 0 BEGIN
insert into ΡΠ°Π±Π΅Π»Ρ (ΠΠΎΠ΄_Π΄Π°ΡΡ, ΠΠΎΠ΄_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π§Π°ΡΡ)
select @date_id, ΠΠΎΠ΄, 0
from Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ where
(ΠΠ°ΡΠ°_ΡΡ ΠΎΠ΄Π° is null or
Year (ΠΠ°ΡΠ°_ΡΡ ΠΎΠ΄Π°) > Year (@date) or
Year (ΠΠ°ΡΠ°_ΡΡ ΠΎΠ΄Π°) = Year (@date) and
Month (ΠΠ°ΡΠ°_ΡΡ ΠΎΠ΄Π°) >= Month (@date))
and
(Year (ΠΠ°ΡΠ°_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ) < Year (@date) or
Year (ΠΠ°ΡΠ°_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ) = Year (@date) and
Month (ΠΠ°ΡΠ°_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ) < Month (@date))
FETCH dates INTO @date_id, @date
END
CLOSE dates
DEALLOCATE dates
go
—Π’ΡΠΈΠ³Π³Π΅ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ
create trigger Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ_ΠΎΡΠ΄Π΅Π»Ρ_Ins on Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ_ΠΎΡΠ΄Π΅Π»Ρ
instead of insert
as
insert into ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ (Π€ΠΠ, ΠΠ°ΡΠ°_ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ, ΠΠΎΠ΄_ΠΎΡΠ΄Π΅Π»Π°)
select Π€ΠΠ, ΠΠ°ΡΠ°_ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ, d. ΠΠΎΠ΄
from inserted i left join ΠΎΡΠ΄Π΅Π»Ρ d
on i. ΠΠΎΠ΄_ΠΎΡΠ΄Π΅Π»Π° = d. ΠΠΎΠ΄ and i. ΠΡΠ΄Π΅Π» is Null
or i. ΠΡΠ΄Π΅Π» = d. ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ and i. ΠΠΎΠ΄_ΠΎΡΠ΄Π΅Π»Π° is null
or i. ΠΠΎΠ΄_ΠΎΡΠ΄Π΅Π»Π° = d. ΠΠΎΠ΄ and i. ΠΡΠ΄Π΅Π» = d. ΠΠ°Π·Π²Π°Π½ΠΈΠ΅
go
create trigger Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ_ΠΎΡΠ΄Π΅Π»Ρ_Upd on Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ_ΠΎΡΠ΄Π΅Π»Ρ
instead of update
as
if update (ΠΡΠ΄Π΅Π»)
if not update (ΠΠΎΠ΄_ΠΎΡΠ΄Π΅Π»Π°) begin
update ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ
set Π€ΠΠ = i. Π€ΠΠ,
ΠΠ°ΡΠ°_ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ = i. ΠΠ°ΡΠ°_ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ,
ΠΠΎΠ΄_ΠΎΡΠ΄Π΅Π»Π° = d. ΠΠΎΠ΄
from ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ, inserted i left join ΠΎΡΠ΄Π΅Π»Ρ d
on i. ΠΡΠ΄Π΅Π» = d. ΠΠ°Π·Π²Π°Π½ΠΈΠ΅
where ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ. ΠΊΠΎΠ΄ = i. ΠΠΎΠ΄
end
else begin
update ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ
set Π€ΠΠ = i. Π€ΠΠ,
ΠΠ°ΡΠ°_ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ = i. ΠΠ°ΡΠ°_ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ,
ΠΠΎΠ΄_ΠΎΡΠ΄Π΅Π»Π° = d. ΠΠΎΠ΄
from ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ, inserted i left join ΠΎΡΠ΄Π΅Π»Ρ d
on i. ΠΡΠ΄Π΅Π» = d. ΠΠ°Π·Π²Π°Π½ΠΈΠ΅
and i. ΠΠΎΠ΄_ΠΎΡΠ΄Π΅Π»Π° = d. ΠΠΎΠ΄
where ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ. ΠΊΠΎΠ΄ = i. ΠΠΎΠ΄
end
else if not update (ΠΠΎΠ΄_ΠΎΡΠ΄Π΅Π»Π°) begin
update ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ
set Π€ΠΠ = i. Π€ΠΠ,
ΠΠ°ΡΠ°_ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ = i. ΠΠ°ΡΠ°_ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ
from ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ, inserted i
where ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ. ΠΊΠΎΠ΄ = i. ΠΠΎΠ΄
end
else begin
update ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ
set Π€ΠΠ = i. Π€ΠΠ,
ΠΠ°ΡΠ°_ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ = i. ΠΠ°ΡΠ°_ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ,
ΠΠΎΠ΄_ΠΎΡΠ΄Π΅Π»Π° = d. ΠΠΎΠ΄
from ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ, inserted i left join ΠΎΡΠ΄Π΅Π»Ρ d
on i. ΠΠΎΠ΄_ΠΎΡΠ΄Π΅Π»Π° = d. ΠΠΎΠ΄
where ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ. ΠΊΠΎΠ΄ = i. ΠΠΎΠ΄
end
go
create trigger Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ_ΠΎΡΠ΄Π΅Π»Ρ_Del on Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ_ΠΎΡΠ΄Π΅Π»Ρ
instead of delete
as
delete from ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ where ΠΊΠΎΠ΄ in
(select ΠΊΠΎΠ΄ from deleted)
go
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π Ρ ΠΎΠ΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π±ΡΠ»ΠΈ ΠΈΠ·ΡΡΠ΅Π½Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ MS SQL SERVER ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ «ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ΅» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ «ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΠΎΠΌ Π±ΡΡ Π³Π°Π»ΡΠ΅ΡΠΈΠΈ ΠΏΠΎ ΡΠ°ΡΡΠ΅ΡΡ Π·Π°ΡΠΏΠ»Π°ΡΡ».
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π½Π°Π΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π±ΡΠ»Π°:
— ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ , ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π·Π°Π΄Π°ΡΠΈ;
— Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ;
— ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
Π Π°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ:
— Ρ ΡΠ°Π½ΠΈΡΡ Π² ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π΄Π°Π½Π½ΡΠ΅ ΠΎ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΈ Π·Π°ΡΠ°Π±ΠΎΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ²,
— ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ,
— Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΡΡΠ΅Ρ Π·Π°ΡΠ°Π±ΠΎΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡ.
ΠΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΠΏΡΠΎΡΡΡΠΌ, ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ. ΠΠ½Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ. ΠΡΠΎΠ²Π΅Π΄Π΅Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ .
Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ²
1 ΠΡΠ΅ΠΉΡΠ° Π . SQL Server 2000. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. Π§Π°ΡΡΡ 2 [Π’Π΅ΠΊΡΡ] / Π . ΠΡΠ΅ΠΉΡΠ°. — Π.: ΠΠΈΠ½ΠΎΠΌ, 2004. — 807 Ρ.
2 ΠΠ°ΠΌΠ°Π΅Π² Π. Π. Microsoft SQL Server 2000. ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ [Π’Π΅ΠΊΡΡ] / Π. Π. ΠΠ°ΠΌΠ°Π΅Π². — Π‘ΠΠ±.: BHV, 2005. — 1280 Ρ.
3 ΠΡΠ²ΠΈΠ΄ΡΠΎΠ½ Π. ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π°Π· Π΄Π°Π½Π½ΡΡ Π½Π° SQL Server 2000 [Π’Π΅ΠΊΡΡ] / Π. ΠΡΠ²ΠΈΠ΄ΡΠΎΠ½. — Π.: ΠΠΈΠ½ΠΎΠΌ, 2003. — 680 Ρ.
ΡΠ΅ΡΠ²Π΅Ρ ΠΏΠ΅ΡΠ°ΡΠ½ΡΠΉ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ ΡΡΠΈΠ³Π³Π΅Ρ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π ΠΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΠΎΠ΄ Π²ΡΠ±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ «ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ». ΠΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΡΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²ΠΊΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ°.
//ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
BaseFrame->query = new TADOQuery (this);
//ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ
BaseFrame->query->Connection = connection;
BaseFrame->query->Active = False;
BaseFrame->query->SQL->Text =
" SELECT ΠΠΎΠ΄, ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΡ, ΠΠΊΠ»Π°Π΄ FROM ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ order by ΠΠ°Π·Π²Π°Π½ΠΈΠ΅" ;
BaseFrame->query->Active = True;
//ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ Π³ΡΠΈΠ΄Π°
BaseFrame->dataSource = new TDataSource (this);
//ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ Π΅Π³ΠΎ Ρ Π½Π°Π±ΠΎΡΠΎΠΌ Π΄Π°Π½Π½ΡΡ
BaseFrame->dataSource->DataSet = BaseFrame->query;
//ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π΄Π»Ρ Π³ΡΠΈΠ΄Π°
BaseFrame->DBGrid->DataSource = BaseFrame->dataSource;
BaseFrame->DBGrid->Columns->Items[0]->FieldName = «ΠΠΎΠ΄» ;
BaseFrame->DBGrid->Columns->Items[1]->FieldName = «ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΡ» ;
BaseFrame->DBGrid->Columns->Items[2]->FieldName = «ΠΠΊΠ»Π°Π΄» ;
BaseFrame->DBGrid->Columns->Items[0]->Visible = false;
//ΡΠΎΠΊΡΡΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ Π΅ΡΠ»ΠΈ Π½Π΅Ρ Π΄Π°Π½Π½ΡΡ
if (BaseFrame->query->IsEmpty ()) {
BaseFrame->btnDel->Enabled = false;
BaseFrame->btnEdit->Enabled = false;
}
ΠΠΎΠ΄ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Π·Π°ΠΏΠΈΡΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ΅.
//ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π·Π°ΠΏΠΈΡΠΈ
int k = query->FieldByName («ΠΠΎΠ΄»)->AsInteger;
//ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ
WideString s = query->Sort;
//ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
query->Close ();
query->Open ();
query->DisableControls ();
//ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°
query->Sort = s;
//ΠΏΠΎΠΈΡΠΊ Π·Π°ΠΏΠΈΡΠΈ
query->Locate («ΠΠΎΠ΄», k, TLocateOptions ());
query->EnableControls ();
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ.
query->Delete ();
Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ.
if (query->State == dsEdit || query->State == dsInsert)
query->Post ();
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ.
query->Insert ();
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π Π Π°Π±ΠΎΡΠ° Ρ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ «Π’Π°Π±Π΅Π»Ρ»
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ «Π’Π°Π±Π΅Π»Ρ» Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ «ΠΠΎΠΊΠ°Π·Π°ΡΡ» Π² ΠΎΠΊΠ½Π΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
query->Active = False;
//Π·Π°Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°
query->SQL->Clear ();
query->SQL->Add («SELECT Π’Π°Π±Π΅Π»Ρ. ΠΠΎΠ΄, «);
query->SQL->Add («Π€ΠΠ, ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ. ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΡ,»);
query->SQL->Add («ΠΠ°ΡΠ°, ΠΡΠ΄Π΅Π»Ρ. ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΡΠ΄Π΅Π», Π§Π°ΡΡ, «);
query->SQL->Add («ΠΠΎΠ»Π»ΠΈΡΠ΅ΡΡΠ²ΠΎ_ΡΠ°ΡΠΎΠ² ΠΡΠ΅Π³ΠΎ, ΠΠΎΠ΄_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΠΎΠ΄_Π΄Π°ΡΡ «);
query->SQL->Add («FROM Π’Π°Π±Π΅Π»Ρ, Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ, ΠΡΠ΄Π΅Π»Ρ, «);
query->SQL->Add («ΠΠ°ΡΡ, ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ «);
query->SQL->Add («WHERE ΠΠΎΠ΄_ΠΎΡΠ΄Π΅Π»Π° = ΠΡΠ΄Π΅Π»Ρ. ΠΠΎΠ΄ «);
query->SQL->Add («AND ΠΠΎΠ΄_Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ = ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ. ΠΠΎΠ΄ «);
query->SQL->Add («AND ΠΠΎΠ΄_Π΄Π°ΡΡ = ΠΠ°ΡΡ. ΠΠΎΠ΄ «);
query->SQL->Add («AND ΠΠΎΠ΄_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ = ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠΎΠ΄ «);
query->SQL->Add («AND ΠΠΎΠ΄_ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° = Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ. ΠΠΎΠ΄ «);
query->SQL->Add («AND ΠΠ°ΡΠ° BETWEEN: start and: end»);
query->SQL->Add («ORDER BY ΠΠ°ΡΠ°, Π€ΠΠ»);
//ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
start = dateStart->Date;
end = dateEnd->Date;
//Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠ°
query->Parameters->ParamByName («start»)->Value = dateStart->Date;
query->Parameters->ParamByName («end»)->Value = dateEnd->Date;
query->Active = True;
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΡΠ°Π±Π΅Π»Ρ.
//ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π·Π°ΠΏΠΈΡΠΈ
int id = query->FieldByName («ΠΠΎΠ΄»)->AsInteger;
//ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
TRecordInfo* x = new TRecordInfo (id);
x->SetHours (query->FieldByName («Π§Π°ΡΡ»)->AsInteger);
x->SetTotal (query->FieldByName («ΠΡΠ΅Π³ΠΎ»)->AsInteger);
x->SetAppointmentId (query->FieldByName («ΠΠΎΠ΄_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ»)->AsInteger);
x->SetDateId (query->FieldByName («ΠΠΎΠ΄_Π΄Π°ΡΡ»)->AsInteger);
x->SetStartDate (start);
x->SetEndDate (end);
//ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠΊΠ½Π° Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π°ΠΏΡΠΈ ΡΠ°Π±Π΅Π»Ρ
TableRecord = new TTableRecord (this, connection, x);
//ΠΎΡΠΊΡΡΡΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
connection->BeginTrans ();
TModalResult mr = TableRecord->ShowModal ();
//ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
TADOQuery* queryUpd = new TADOQuery (this);
queryUpd->Connection = connection;
queryUpd->Active = False;
queryUpd->SQL->Clear ();
if (mr == mrOk){
//Π·Π°ΠΏΡΠΎΡ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ
queryUpd->SQL->Add («UPDATE Π’Π°Π±Π΅Π»Ρ SET «);
queryUpd->SQL->Add («Π§Π°ΡΡ = :hours, «);
queryUpd->SQL->Add («ΠΠΎΠ΄_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ = :app_id, «);
queryUpd->SQL->Add («ΠΠΎΠ΄_Π΄Π°ΡΡ = :date_id «);
queryUpd->SQL->Add («WHERE ΠΠΎΠ΄ = :id»);
//Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²
queryUpd->Parameters->ParamByName («id»)->Value = id;
queryUpd->Parameters->ParamByName («hours»)->Value =
x->GetHours ();
queryUpd->Parameters->ParamByName («app_id»)->Value =
x->GetAppointmentId ();
queryUpd->Parameters->ParamByName («date_id»)->Value =
x->GetDateId ();
queryUpd->ExecSQL ();
//Π·Π°ΠΊΡΡΡΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
connection->CommitTrans ();
//ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² Π³ΡΠΈΠ΄Π΅ ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
int oldID = query->FieldByName («ΠΠΎΠ΄»)->AsInteger;
positioning (oldID);
} else {
//ΠΎΡΠΊΠ°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
connection->RollbackTrans ();
}
delete queryUpd;
delete TableRecord;
delete x;
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ.
//ΠΎΡΠΊΡΡΡΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
connection->BeginTrans ();
//ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Ρ ΡΠ°Π½ΠΈΠΌΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ
TADOStoredProc* storedProc = new TADOStoredProc (this);
storedProc->Connection = connection;
//Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ
storedProc->ProcedureName = «Insert_to_table» ;
storedProc->Active = True;
//ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ
int id = storedProc->FieldByName («ΠΠΎΠ΄»)->AsInteger;
//ΠΎΠ±ΡΠ΅ΠΊΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ
TRecordInfo* x = new TRecordInfo (id);
x->SetStartDate (dateStart->Date);
x->SetEndDate (dateEnd->Date);
//ΠΎΠΊΠ½ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
TableRecord = new TTableRecord (this, connection, x);
TModalResult mr = TableRecord->ShowModal ();
//ΠΎΠ±ΡΠ΅ΠΊΡ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
TADOQuery* queryUpd = new TADOQuery (this);
queryUpd->Connection = connection;
queryUpd->Active = False;
int oldID;
if (mr == mrOk){
queryUpd->SQL->Clear ();
queryUpd->SQL->Add («UPDATE Π’Π°Π±Π΅Π»Ρ SET «);
queryUpd->SQL->Add («Π§Π°ΡΡ = :hours, «);
queryUpd->SQL->Add («ΠΠΎΠ΄_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ = :app_id, «);
queryUpd->SQL->Add («ΠΠΎΠ΄_Π΄Π°ΡΡ = :date_id «);
queryUpd->SQL->Add («WHERE ΠΠΎΠ΄ = :id»);
queryUpd->Parameters->ParamByName («id»)->Value = id;
queryUpd->Parameters->ParamByName («hours»)->Value =
x->GetHours ();
queryUpd->Parameters->ParamByName («app_id»)->Value =
x->GetAppointmentId ();
queryUpd->Parameters->ParamByName («date_id»)->Value =
x->GetDateId ();
queryUpd->ExecSQL ();
//Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ ΠΊΠΎΠ΄ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π΄Π»Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
oldID = id;
//Π·Π°ΠΊΡΡΡΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
connection->CommitTrans ();
} else {
//Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ ΠΊΠΎΠ΄ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π·Π°ΠΏΠΈΡΠΈ Π΄Π»Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
oldID = query->FieldByName («ΠΠΎΠ΄»)->AsInteger;
connection->RollbackTrans ();
}
//ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² Π³ΡΠΈΠ΄Π΅ ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
positioning (oldID);
delete storedProc;
delete queryUpd;
delete TableRecord;
delete x;
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ.
TADOQuery* queryUpd = new TADOQuery (this);
queryUpd->Connection = connection;
int id = query->FieldByName («ΠΠΎΠ΄»)->AsInteger;
queryUpd->Active = False;
//ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ
queryUpd->SQL->Add («Select ΠΠΎΠ΄ FROM ΠΠ°ΡΠΈΡΠ»Π΅Π½ΠΈΡ»);
queryUpd->SQL->Add («WHERE ΠΠΎΠ΄_ΡΠ°Π±Π΅Π»Ρ = :id»);
queryUpd->SQL->Add («UNION»);
queryUpd->SQL->Add («Select ΠΠΎΠ΄ FROM Π£Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ»);
queryUpd->SQL->Add («WHERE ΠΠΎΠ΄_ΡΠ°Π±Π΅Π»Ρ = :id2»);
queryUpd->Parameters->ParamByName («id»)->Value = id;
queryUpd->Parameters->ParamByName («id2»)->Value = id;
queryUpd->Open ();
if (!queryUpd->IsEmpty ()) {
//ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ
ShowMessage («ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ Π·Π°ΠΏΠΈΡΡ»);
delete queryUpd;
return;
}
//Π·Π°ΠΏΡΠΎΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠΈ
int btn;
btn = Application->MessageBox («Π£Π΄Π°Π»ΠΈΡΡ Π·Π°ΠΏΠΈΡΡ?», «Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ» ,
MB_YESNO);
if (btn == IDNO) {
return;
}
//ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
query->Next ();
int oldID = query->FieldByName («ΠΠΎΠ΄»)->AsInteger;
if (oldID == id) {
query->Prior ();
oldID = query->FieldByName («ΠΠΎΠ΄»)->AsInteger;
}
//ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ
queryUpd->Active = False;
queryUpd->SQL->Text = «DELETE FROM Π’Π°Π±Π΅Π»Ρ WHERE ΠΠΎΠ΄ = :id» ;
queryUpd->Parameters->ParamByName («id»)->Value = id;
queryUpd->ExecSQL ();
positioning (oldID);
delete queryUpd;
ΠΠΎΠΈΡΠΊ Π² ΡΠ°Π±Π»ΠΈΡΠ΅
int id = query->FieldByName («ΠΠΎΠ΄»)->AsInteger;
querySearch->Close ();
querySearch->SQL->Clear ();
//Π·Π°ΠΏΡΠΎΡ Π½Π° ΠΏΠΎΠΈΡΠΊ Π΄Π°Π½Π½ΡΡ
querySearch->SQL->Add («Select ΡΠ°Π±Π΅Π»Ρ. ΠΠΎΠ΄ FROM ΡΠ°Π±Π΅Π»Ρ,»);
querySearch->SQL->Add («full_appointments_info, ΠΠ°ΡΡ»);
querySearch->SQL->Add («WHERE Π€ΠΈΠΎ like: name»);
querySearch->SQL->Add («and ΠΎΡΠ΄Π΅Π» like: dep»);
querySearch->SQL->Add («and Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΡ like: pos»);
querySearch->SQL->Add («and ΠΊΠΎΠ΄_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ = full_appointments_info.ΠΠΎΠ΄»);
querySearch->SQL->Add («AND ΠΠΎΠ΄_Π΄Π°ΡΡ = ΠΠ°ΡΡ. ΠΠΎΠ΄ «);
querySearch->SQL->Add («AND ΠΠ°ΡΠ° BETWEEN: start and: end»);
querySearch->SQL->Add («ORDER BY ΠΠ°ΡΠ°, Π€ΠΠ»);
querySearch->Parameters->ParamByName («name»)->Value =
" %" + eSearch->Text + «%» ;
querySearch->Parameters->ParamByName («dep»)->Value =
" %" + eDepartment->Text + «%» ;
querySearch->Parameters->ParamByName («pos»)->Value =
" %" + ePosition->Text + «%» ;
querySearch->Parameters->ParamByName («start»)->Value = start;
querySearch->Parameters->ParamByName («end»)->Value = end;
querySearch->Open ();
if (querySearch->IsEmpty ()){
btnSearchNext->Enabled = false;
btnSearchPrev->Enabled = false;
} else {
//Π΅ΡΠ»ΠΈ Π·Π°ΠΏΠΈΡΠΈ Π½Π°ΠΉΠ΄Π΅Π½Ρ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ
btnSearchNext->Enabled = true;
btnSearchPrev->Enabled = true;
//ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΉ
int newId = querySearch->FieldByName («ΠΠΎΠ΄»)->AsInteger;
query->Locate («ΠΠΎΠ΄», newId, TLocateOptions ());
DBGrid->SetFocus ();
}
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π² Π³ΡΠΈΠ΄Π΅ ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π²ΡΡΠ°Π²ΠΊΠ΅, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ, ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ.
WideString s = query->Sort;
query->Close ();
query->Open ();
query->DisableControls ();
query->Sort = s;
query->Locate («ΠΠΎΠ΄», key, TLocateOptions ());
query->EnableControls ();
DBGrid->SetFocus ();
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ°ΡΠ½ΡΡ ΡΠΎΡΠΌ ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΎΡΡΠ΅ΡΠ° ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠ΅ΠΉ.
query2 = new TADOQuery (this);
dataSource = new TDataSource (this);
query2->Connection = connection;
query2->Close ();
//ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ²
query2->SQL->Add («Select ΠΠΎΠ΄, Π€ΠΠ»);
query2->SQL->Add («from Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ»);
query2->SQL->Add («order by Π€ΠΠ»);
query2->Open ();
if (query2->IsEmpty ()){
//Π²ΡΡ ΠΎΠ΄ Π΅ΡΠ»ΠΈ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² Π½Π΅Ρ
ShowMessage («ΠΠ΅Ρ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠΎΠ²»);
Close ();
}
//ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°
dataSource->DataSet = query2;
DBLookupComboBox1->ListSource = dataSource;
DBLookupComboBox1->ListField = «Π€ΠΠ» ;
DBLookupComboBox1->KeyField = «ΠΠΎΠ΄» ;
ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΎΡΡΠ΅ΡΠ°, ΠΏΠΎΡΠ»Π΅ Π²ΡΠ±ΠΎΡΠ° ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°.
//ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°
int worker = query2->FieldByName («ΠΠΎΠ΄»)->AsInteger;
query->Connection = connection;
query->Close ();
query->SQL->Clear ();
//ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠ΅ΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΡΠ°Π½ΠΈΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ
query->SQL->Add («Select ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ. ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΡ,»);
query->SQL->Add («ΠΠ°ΡΠ°_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΠ°ΡΠ°_ΡΡ ΠΎΠ΄Π°, Π€ΠΠ»);
query->SQL->Add («From Appointments_of_worker_by_id (:wid), ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ»);
query->SQL->Add («where ΠΠΎΠ΄_Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ = Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ. ΠΊΠΎΠ΄»);
query->SQL->Add («Order by ΠΠ°ΡΠ°_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ»);
query->Parameters->ParamByName («wid»)->Value = worker;
query->Open ();
if (query->IsEmpty ()){
QRLabel1->Caption = «ΠΠ΅Ρ Π΄Π°Π½Π½ΡΡ » ;
} else {
QRLabel1->Caption = «ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ:» ;
}
lFio->Caption = query->FieldByName («Π€ΠΠ»)->AsString;
//ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΎΡΡΠ΅ΡΠ° ΠΈ ΠΏΠΎΠ»Π΅ΠΉ Π²ΡΠ²ΠΎΠ΄Π° Ρ Π½Π°Π±ΠΎΡΠΎΠΌ Π΄Π°Π½Π½ΡΡ
QuickRep1->DataSet = query;
tPosition->DataSet = query;
tPosition->DataField = «ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΡ» ;
tStart->DataSet = query;
tStart->DataField = «ΠΠ°ΡΠ°_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ» ;
tEnd->DataSet = query;
tEnd->DataField = «ΠΠ°ΡΠ°_ΡΡ ΠΎΠ΄Π°» ;
QuickRep1->Preview ();
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΠΎΠ΄ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Π·Π°ΡΠΏΠ»Π°Ρ Π² ΠΎΡΠ΄Π΅Π»Π°Ρ Π·Π° Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄.
query->Active = False;
query->SQL->Clear ();
//ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ
query->SQL->Add («Select ΠΡΠ΄Π΅Π»Ρ. ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΡΠ΄Π΅Π»,»);
query->SQL->Add («Sum (amfedorenko.salary (Π’Π°Π±Π΅Π»Ρ.ΠΠΎΠ΄)) ΠΠ°ΡΠΏΠ»Π°ΡΠ°»);
query->SQL->Add («From Π’Π°Π±Π΅Π»Ρ, ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ, ΠΠ°ΡΡ, ΠΡΠ΄Π΅Π»Ρ»);
query->SQL->Add («where ΠΠΎΠ΄_Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ = Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΊΠΎΠ΄»);
query->SQL->Add («and ΠΊΠΎΠ΄_ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° = ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ. ΠΊΠΎΠ΄»);
query->SQL->Add («and ΠΊΠΎΠ΄_Π΄Π°ΡΡ = Π΄Π°ΡΡ. ΠΊΠΎΠ΄»);
query->SQL->Add («and ΠΊΠΎΠ΄_ΠΎΡΠ΄Π΅Π»Π° = ΠΎΡΠ΄Π΅Π»Ρ. ΠΊΠΎΠ΄»);
query->SQL->Add («and ΠΠ°ΡΠ° between: start and: end»);
query->SQL->Add («group by ΠΡΠ΄Π΅Π»Ρ. ΠΠ°Π·Π²Π°Π½ΠΈΠ΅»);
query->SQL->Add («order by ΠΡΠ΄Π΅Π»Ρ. ΠΠ°Π·Π²Π°Π½ΠΈΠ΅»);
query->Parameters->ParamByName («start»)->Value = dateStart->Date;
query->Parameters->ParamByName («end»)->Value = dateEnd->Date;
query->Open ();
if (!query->IsEmpty ()) {
Chart->Title->Text->Clear ();
Chart->Title->Text->Add («ΠΠ°ΡΠΏΠ»Π°ΡΠ° ΠΏΠΎ ΠΎΡΠ΄Π΅Π»Π°ΠΌ Π·Π° «);
Chart->Title->Text->Add (dateStart->Date.DateString ());
Chart->Title->Text->Add (dateEnd->Date.DateString ());
} else {
Chart->Title->Text->Clear ();
Chart->Title->Text->Add («ΠΠ΅Ρ Π΄Π°Π½Π½ΡΡ Π·Π° ΡΡΠΎΡ ΠΏΠ΅ΡΠΈΠΎΠ΄»);
}
Chart->SeriesList->Clear ();
//ΡΠ΅ΡΠΈΡ Π΄Π»Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ
TBarSeries* x = new TBarSeries (this);
AnsiString name = «» ;
Currency sum = 0;
//ΠΏΡΠΎΡ ΠΎΠ΄ ΠΏΠΎ Π²ΡΠ΅ΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π½ΡΠΌ Π·Π°ΠΏΠΈΡΡΠΌ
while (!query->Eof){
name = query->FieldByName («ΠΡΠ΄Π΅Π»»)->AsString;
sum = query->FieldByName («ΠΠ°ΡΠΏΠ»Π°ΡΠ°»)->AsCurrency;
//Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ»Π±ΡΠ° Π² ΡΠ΅ΡΠΈΡ
x->AddBar (sum, name, clBlue);
//ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π·Π°ΠΏΠΈΡΠΈ
query->Next ();
}
Chart->AddSeries (x);