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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Β»

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

C++ (Π‘ΠΈ++) — ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ статичСски Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния. Π―Π·Ρ‹ΠΊ Π²ΠΎΠ·Π½ΠΈΠΊ Π² Π½Π°Ρ‡Π°Π»Π΅ 1980;Ρ… Π³ΠΎΠ΄ΠΎΠ², ΠΊΠΎΠ³Π΄Π° сотрудник Ρ„ΠΈΡ€ΠΌΡ‹ Bell Laboratories Π‘ΡŒΡ‘Ρ€Π½ Бтрауструп ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π» ряд ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΡΠ·Ρ‹ΠΊΡƒ Π‘ΠΈ ΠΏΠΎΠ΄ собствСнныС Π½ΡƒΠΆΠ΄Ρ‹. Π”ΠΎ Π½Π°Ρ‡Π°Π»Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ стандартизации язык развивался Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ силами Бтрауструпа Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° Π·Π°ΠΏΡ€ΠΎΡΡ‹ программистского сообщСства. Π’ 1998 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π»… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Β» (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ проСктирования слуТит ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС.

ЦСль ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° — Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

1. ВСсти Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ½ΠΈΠ³;

2. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…;

3. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ справку ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π½Π°Π²Ρ‹ΠΊΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½Π΅ΠΉ.

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ язык программирования C++, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр практичСских Π·Π°Π΄Π°Π½ΠΈΠΉ. Π’Π°ΠΊ ΠΆΠ΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠ°ΠΊ Microsoft Access, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ создаСм Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚. Π΅ Π½Π°Ρˆ исходный источник Π΄Π°Π½Π½Ρ‹Ρ….

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ всС эти возмоТности ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ поставлСнныС Π²Ρ‹ΡˆΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°ΠΌΠΈ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для использования Π΅Π΅ Π»ΡŽΠ±Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ.

  • Π Π΅Ρ„Π΅Ρ€Π°Ρ‚
  • 1. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅
  • 2. ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ
  • 3. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
  • 3.1 БистСмный Π°Π½Π°Π»ΠΈΠ· ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области
  • 3.2 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ
  • 3.3 ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ Π΅Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅
  • 4. ОписаниС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса
  • 5. Π’Ρ‹Π²ΠΎΠ΄
  • 6. Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹
  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ А

1. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

C++ (Π‘ΠΈ++) — ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ статичСски Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния. Π―Π·Ρ‹ΠΊ Π²ΠΎΠ·Π½ΠΈΠΊ Π² Π½Π°Ρ‡Π°Π»Π΅ 1980;Ρ… Π³ΠΎΠ΄ΠΎΠ², ΠΊΠΎΠ³Π΄Π° сотрудник Ρ„ΠΈΡ€ΠΌΡ‹ Bell Laboratories Π‘ΡŒΡ‘Ρ€Π½ Бтрауструп ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π» ряд ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΡΠ·Ρ‹ΠΊΡƒ Π‘ΠΈ ΠΏΠΎΠ΄ собствСнныС Π½ΡƒΠΆΠ΄Ρ‹. Π”ΠΎ Π½Π°Ρ‡Π°Π»Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ стандартизации язык развивался Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ силами Бтрауструпа Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° Π·Π°ΠΏΡ€ΠΎΡΡ‹ программистского сообщСства. Π’ 1998 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π» Ρ€Π°Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½Ρ‹ΠΉ стандарт языка C++: ISO/IEC 14 882: 1998 «Standard for the C++ Programming Language»; послС принятия тСхничСских исправлСний ΠΊ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Ρƒ Π² 2003 Π³ΠΎΠ΄Ρƒ — Π½Ρ‹Π½Π΅ΡˆΠ½ΡΡ вСрсия этого стандарта — ISO/IEC 14 882: 2003. Π’ Π½Π°ΡΡ‚оящСС врСмя всС большСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ автоматизация процСссов, связанных с Π±Ρ‹Ρ‚ΠΎΠ²Ρ‹ΠΌΠΈ услугами для удобства ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ Π·Π°Ρ‚Ρ€Π°Ρ‚ Π½Π° ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Π½ΠΈΠ΅. ВслСдствиС этого появляСтся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… систСм, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… довольно Π»Π΅Π³ΠΊΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹.

ЦСлью выполнСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ курсового ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° являСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° систСмы «Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°» ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π΅ΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΡƒΡ‡Π΅Ρ‚Π° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹.

Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π±Ρ‹Π»Π° Π²Ρ‹Π±Ρ€Π°Π½Π° Π‘Π£Π‘Π” MSSQL Server. Π­Ρ‚Π° Π‘Π£Π‘Π” Π±Ρ‹Π»Π° Π²Ρ‹Π±Ρ€Π°Π½Π° Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ инструмСнта ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° способна Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° ΡΠ΅Ρ€Π²Π΅Ρ€Π½ΠΎΠΉ основС, ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ большиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности. Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ языка программирования Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ язык Π‘++. Данная срСда позволяСт Π»Π΅Π³ΠΊΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, созданной Π² MSSQL Server, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΅Π΅.

Π―Π·Ρ‹ΠΊ SQL (Structured Query Language) Π² Π½Π°ΡΡ‚оящСС врСмя стал фактичСски стандартным языком доступа ΠΊ Ρ€Π΅Π»ΡΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. ЦСлью стандартизации являСтся ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π‘Π£Π‘Π”.

РСализация Π² SQL ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π½Π° Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ΅ прСдставлСниС Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ язык с Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΠΌ (ΠΌΠ΅Π½Π΅Π΅ 30) Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ. SQL ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ (для выполнСния запросов) ΠΈ ΠΊΠ°ΠΊ встроСнный (для построСния ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ). Π’ Π½Π΅ΠΌ сущСствуСт:

ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ опрСдСлСния Π΄Π°Π½Π½Ρ‹Ρ… (ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ²);

ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π²Ρ‹Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ…;

ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ управлСния Π΄Π°Π½Π½Ρ‹ΠΌΠΈ (прСдоставлСниС ΠΈ ΠΎΡ‚ΠΌΠ΅Π½Π° ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π½Π° Π΄ΠΎΡΡ‚ΡƒΠΏ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈ Π΄Ρ€.);

ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… (Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…).

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, прСдоставляСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π² ΡΡ‚ΠΈΡ… прСдлоТСниях:

арифмСтичСскиС вычислСния, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ тСкстовых строк;

упорядочиваниС строк, столбцов ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ содСрТимого Ρ‚Π°Π±Π»ΠΈΡ†;

Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΏΠΎ Π·Π°ΠΏΡ€ΠΎΡΡƒ содСрТимого Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹;

созданиС прСдставлСний (Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†);

Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…: Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΡ‚ΠΈΠΌ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ Ρ‚Π°ΠΊΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΊΠ°ΠΊ срСднСС, сумма, максимум, ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, число элСмСнтов.

К ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ срСдствам, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ простоС ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ использованиС MSSQL Server ΠΌΠΎΠΆΠ½ΠΎ отнСсти:

Enterprise Manager;

Service Manager;

Query Analyzer.

интСрфСйс Π±Π°Π·Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… SQL Server — это ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для хранСния, записи ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ — содСрТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹:

Π’Π°Π±Π»ΠΈΡ†Ρ‹;

Π₯Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹;

Π˜Π½Π΄Π΅ΠΊΡΡ‹;

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡ.

2. ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

Π—Π°Π΄Π°Ρ‡Π΅ΠΉ Π΄Π°Π½Π½ΠΎΠ³ΠΎ курсового ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° являСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° систСмы «Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°», которая содСрТит Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠ½ΠΈΠ³Π°Ρ… Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅.

БвСдСния ΠΎ ΠΊΠ½ΠΈΠ³Π°Ρ… содСрТат:

? Π½ΠΎΠΌΠ΅Ρ€ Π£Π”Πš;

? Ρ„Π°ΠΌΠΈΠ»ΠΈΡŽ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»Ρ‹ Π°Π²Ρ‚ΠΎΡ€Π°;

? Π½Π°Π·Π²Π°Π½ΠΈΠ΅;

? год издания;

? количСство экзСмпляров Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΡΠΈΡΡ‚Π΅ΠΌΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ:

? Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ Π²ΡΠ΅Ρ… ΠΊΠ½ΠΈΠ³Π°Ρ… Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Π² Π²ΠΈΠ΄Π΅ списка;

? Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ ΠΊΠ½ΠΈΠ³Π°Ρ…, вновь ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΡ… Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ;

? ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ ΡΠΏΠΈΡΡ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΊΠ½ΠΈΠ³Π°Ρ…;

? ΠΏΠΎ Π·Π°ΠΏΡ€ΠΎΡΡƒ Π²Ρ‹Π΄Π°ΡŽΡ‚ΡΡ свСдСния ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΊΠ½ΠΈΠ³ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅, упорядочСнныС ΠΏΠΎ Π³ΠΎΠ΄Π°ΠΌ издания.

3. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

3.1 БистСмный Π°Π½Π°Π»ΠΈΠ· ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π² ΡΡ€Π΅Π΄Π΅ Borland C++Builder 6 Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ программирования C++ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… срСдств. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΠΌΠΈΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ филатСлиста.

НСобходимо Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для ΡƒΡ‡Π΅Ρ‚Π° ΠΌΠ°Ρ€ΠΎΠΊ ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΎΠ½Π΅Ρ€ΠΎΠ².

Данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° состоит ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅ΠΉ Π² ΡΠ΅Π±Ρ ΠΎΠ΄Π½Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ:

Книги:

Π¨ Π½ΠΎΠΌΠ΅Ρ€ Π£Π”Πš

Π¨ Ρ„Π°ΠΌΠΈΠ»ΠΈΡŽ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»Ρ‹ Π°Π²Ρ‚ΠΎΡ€Π°

Π¨ Π½Π°Π·Π²Π°Π½ΠΈΠ΅

Π¨ Π³ΠΎΠ΄ издания

Π¨ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ экзСмпляров Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅

Данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для:

ВсСх ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ со ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΎΠΌ филатСлиста.

Π’ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ:

1. ΠŸΡ€ΠΈ нСобходимости ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ….

2. Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π½Π΅Π΅ внСсСнныС Π΄Π°Π½Π½Ρ‹Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

3. Π£Π΄Π°Π»ΡΡ‚ΡŒ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ записи, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Ρ†Π΅Π»ΠΈ пользования Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ.

4. ΠžΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ поиск ΠΊΠ°ΠΊ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

3.2 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ всСх Π²Ρ‹ΡˆΠ΅ поставлСнных Π·Π°Π΄Π°Ρ‡, для Π½Π°Ρ‡Π°Π»Π° Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π‘Π” ΠΈ Π²Π½Π΅ΡΡ‚ΠΈ Π² Π½Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Для заполнСния Π‘Π” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-сайты Π½Π° Π·Π°Π΄Π°Π½ΡƒΡŽ Ρ‚Π΅ΠΌΡƒ.

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½Π°ΡˆΡƒ Π‘Π” ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ «books» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Microsoft Access, которая Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΠΏΠ°ΠΊΠ΅Ρ‚ Microsoft Office. Наша Π‘Π” состоит ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ «Books» — содСрТая ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠ½ΠΈΠ³Π°Ρ….

Π’Π°Π±Π»ΠΈΡ†Π° «Books» Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ:

ь num — содСрТит порядковый Π½ΠΎΠΌΠ΅Ρ€

ь num_udk — содСрТит Π½ΠΎΠΌΠ΅Ρ€ Π£Π”Πš

ь autor — содСрТит Ρ„Π°ΠΌΠΈΠ»ΠΈΡŽ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»Ρ‹ Π°Π²Ρ‚ΠΎΡ€Π°

ь title — содСрТит Π½Π°Π·Π²Π°Π½ΠΈΠ΅

ь count_in_library — содСрТит Π³ΠΎΠ΄ издания

ь year_print — содСрТит количСство экзСмпляров Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅

ПослС создания ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Ρ‚Π°Π±Π»ΠΈΡ† ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ наши исходныС Π΄Π°Π½Π½Ρ‹Π΅.

3.3 ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ Π΅Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ ΠΎΡ‚обраТСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹:

DBGrid

ADOConnection

DataSource

ADOQuery

ADOCommand

ОписаниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²:

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ DBGrid обСспСчиваСт Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΉ способ отобраТСния Π½Π° ΡΠΊΡ€Π°Π½Π΅ строк Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ADOTable ΠΈΠ»ΠΈ ADOQuery. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ DBGrid для отобраТСния, вставки, уничтоТСния, рСдактирования Π΄Π°Π½Π½Ρ‹Ρ… Π‘Π”.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ADOConnection ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для управлСния соСдинСниСм с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π΄Π°Π½Π½Ρ‹Ρ… ADO. Он ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ доступ ΠΊ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ ADO, ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… (см. Π½ΠΈΠΆΠ΅).

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ этого ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π΄Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ряд прСимущСств:

всС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ADO ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ ΠΊ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ΄Π½ΠΎ соСдинСниС;

Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° соСдинСния;

доступ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ соСдинСния ADO;

Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ADO;

Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ;

Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ соСдинСниСм ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² событий.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ DataSource дСйствуСт ΠΊΠ°ΠΊ посрСдник ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ TDataSet (TTable, TQuery, TStoredProc) ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Data Controls — элСмСнтами управлСния, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈ прСдставлСниС Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ TDataSet ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ связями с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ Borland Database Engine (BDE), Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ DataSource управляСт связями с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ… Data Controls.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ TADOQuery ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для выполнСния SQL-запросов Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ADO (ADO data store).

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ выполняСт запросы SELECT, INSERT, DELETE, UPDATE, ALTER TABLE ΠΈ CREATE TABLE. Π’Π°ΠΊΠΆΠ΅ исполняСт Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ADOCommand прСдставляСт ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ (запрос ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅), которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° источником Π΄Π°Π½Π½Ρ‹Ρ…. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Execute, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ Π² ADOCommand. TADOCommand Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для исполнСния ΠΊΠΎΠΌΠ°Π½Π΄ языка опрСдСлСния Π΄Π°Π½Π½Ρ‹Ρ… (DDL) SQL.

4. ОписаниС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° «Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°» состоит ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΠΊΠΎΠ½, ΠΊΠ½ΠΎΠΏΠΎΠΊ, мСню ΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ². ВсС эти элСмСнты ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ описаны Π½Π° Π΄Π°Π½Π½ΠΎΠΉ страницС. НиТС Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ интСрфСйса ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ послС запуска:

Рисунок 1 — Окно ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ мСню ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

МСню " Π’Ρ‹Ρ…ΠΎΠ΄"

Рисунок 2 — Π’Ρ‹Ρ…ΠΎΠ΄

МСню " ΠŸΡ€Π°Π²ΠΊΠ°"

Рисунок 3 — ΠŸΡ€Π°Π²ΠΊΠ°

МСню «Π‘ΠΏΡ€Π°Π²ΠΊΠ°»

Рисунок 4 — Π‘ΠΏΡ€Π°Π²ΠΊΠ°

О ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ - содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ: Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, описаниС, авторскиС ΠΏΡ€Π°Π²Π° ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Рисунок 5 — О ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅

Π Π°Π±ΠΎΡ‚Π° с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ:

Доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ осущСствляСтся нСпосрСдствСнно ΠΏΡ€ΠΈ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ Π²ΡΠ΅Ρ… ΠΊΠ½ΠΈΠ³Π°Ρ… Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Π² Π²ΠΈΠ΄Π΅ списка.

Для добавлСния Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ добавлСния Π΄Π°Π½Π½Ρ‹Ρ….

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π² Π² ΠΌΠ΅Π½ΡŽ «ΠŸΡ€Π°Π²ΠΊΠ°» ΠΏΡƒΠ½ΠΊΡ‚ «Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ» ΠΈΠ»ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ этот ΠΆΠ΅ ΠΏΡƒΠ½ΠΊΡ‚ ΠΈΠ· ΠΊΠΎΠ½Ρ‚Скстного мСню Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

Для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ добавлСния Π½ΠΎΠ²ΠΎΠΉ записи Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ всС поля Ρ„ΠΎΡ€ΠΌΡ‹.

Π’ ΠΏΠΎΠ»Ρ «Π³ΠΎΠ΄ издания» ΠΈ «ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅» допускаСтся Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ числа.

Рисунок 6 — Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ

Для измСнСния Π΄Π°Π½Π½Ρ‹ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² ΠΌΠ΅Π½ΡŽ ΠŸΡ€Π°Π²ΠΊΠ° Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ «Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ». ПослС Ρ‡Π΅Π³ΠΎ откроСтся Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ.

Рисунок 7 — Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ

Для удалСния Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ· ΠΌΠ΅Π½ΡŽ ΠŸΡ€Π°Π²ΠΊΠ° Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ «Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ» .

ПослС этого Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½Π° ΠΊΠ½ΠΈΠ³Π° запись ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ выдСлСнная Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ просмотра списка ΠΊΠ½ΠΈΠ³.

Для осущСствлСния поиска Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚ «ΠŸΠΎΠΈΡΠΊ.» Π² ΠΌΠ΅Π½ΡŽ ΠŸΡ€Π°Π²ΠΊΠ° ΠΈΠ»ΠΈ ΠΈΠ· ΠΊΠΎΠ½Ρ‚Скстного мСню Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

Поиск ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΏΠΎ Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΈΠ· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

Π’ ΠΏΠΎΠ»Ρ «Π“ΠΎΠ΄ издания» ΠΈ «ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅» допускаСтся Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π΅Π»Ρ‹Π΅ числа.

Рисунок 8 — Поиск

5. Π’Ρ‹Π²ΠΎΠ΄

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ выполнСния этой курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ стала ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° «Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°» Она написана Π½Π° Π²Ρ‹ΡΠΎΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌ языкС программирования — C++, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Borland C++Builder 6. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΠΌΠ΅Π΅Ρ‚ простой ΠΈ ΠΏΠΎΠ½ΡΡ‚Π½Ρ‹ΠΉ интСрфСйс Π»Π΅Π³ΠΊΠ° Π² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ‚Π°ΠΊ ΠΆΠ΅ Π»Π΅Π³ΠΊΠ° Π² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ. Она ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Π² ΡΠ΅Π±Π΅ простоту, Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΎΠΉ Π½Π°Π±ΠΎΡ€ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… возмоТностСй ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Сля Π³Π»ΡƒΠ±ΠΎΠΊΠΈΡ… Π·Π½Π°Π½ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π·Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ.

Π’ Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΡ‹ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ возмоТности C++ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

Π’. Π΅ ΠΌΠΎΠΆΠ½ΠΎ с ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ использовании Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ, которая Π΄ΠΎΠ»ΠΆΠ½Π° ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚ΡŒ потрСбности Π΄Π°ΠΆΠ΅ самого Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

6. Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

1. Wikipedia.org/

2. books.net-soft.ru/

3. board.com/

4. sqlforum.ru/

5. Π‘ΡŒΠ΅Ρ€Π½ Бтрауструп «Π―Π·Ρ‹ΠΊ программирования C++»

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ А

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

frmMain (Unit1. cpp)

// —————————————————————————————————————;

#include

#pragma hdrstop

#include «Unit1. h» // frmMain

#include «Unit2. h» // frmSearch

#include «Unit3. h» // frmEdit

#include «Unit4. h» // frmAbout

#include «UserFunctions_unit. h»

// —————————————————————————————————————;

#pragma package (smart_init)

#pragma resource «*. dfm»

TfrmMain *frmMain;

int frmEditState; // ОбъявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Π½Π° Ρ‚ΠΈΠΏ Ρ„ΠΎΡ€ΠΌΡ‹ frmEdit (Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅)

bool sortedbooks = false; // пСрСмСнная, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ Π±Ρ‹Π»ΠΈ Π»ΠΈ отсортированы ΠΊΠ½ΠΈΠ³ΠΈ

MyFunctions func; // объявлСниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° MyFunctions

// —————————————————————————————————————;

__fastcall TfrmMain: TfrmMain (TComponent* Owner)

: TForm (Owner)

{

// Π—Π°Π΄Π°Π΅ΠΌ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ надпись Π² ΠΏΠ°Π½Π΅Π»ΠΈ статуса

StatusBar1->Panels->Items — >Text = «ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ списка всСх ΠΊΠ½ΠΈΠ³ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅» ;

try // ΠŸΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ошибки Π²ΠΎ Π²Ρ€Π΅ΠΌΡ выполнСния Π±Π»ΠΎΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°

{

String TTQuery1 = «select num_udk, autor, title, year_print, count_in_library from Books»; // Бтроковая пСрСмСнная, содСрТащая SQL запрос ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…

ADOQuery1->SQL->Clear (); // ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ SQL-запрос

ADOQuery1->SQL->Add (TTQuery1); // УстанавливаСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ SQL-запроса Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ADOQuery1

ADOQuery1->Open (); // Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ SQL-запрос

}

catch (EDatabaseError&) // ΠžΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ (ΠΎΡˆΠΈΠ±ΠΊΡƒ)

{

Application->MessageBox («ΠžΡˆΠΈΠ±ΠΊΠ° ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…», «Π’Ρ‹Π²ΠΎΠ΄ записСй», MB_OK + MB_ICONINFORMATION); // Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС

}

func. ChangeCollName (DBGrid1); // ИзмСнСниС Π½Π°Π·Π²Π°Π½ΠΈΠΉ столбцов

}

// —————————————————————————————————————;

// Ѐункция Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния

void __fastcall TfrmMain: mnuExitClick (TObject *Sender)

{

this->Close (); // Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

}

// —————————————————————————————————————;

// Ѐункция Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΠΎΡ€ΠΌΡ‹ поиска

void __fastcall TfrmMain: mnuSearchClick (TObject *Sender)

{

frmSearch->Show (); // ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ поиска

}

// —————————————————————————————————————;

// Ѐункция Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΠΎΡ€ΠΌΡ‹ поиска

void __fastcall TfrmMain: popmnuSearchClick (TObject *Sender)

{

frmSearch->Show (); // ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ поиска

}

// —————————————————————————————————————;

// Ѐункция Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΠΎΡ€ΠΌΡ‹ добавлСния ΠΊΠ½ΠΈΠ³ΠΈ

void __fastcall TfrmMain: mnuAddClick (TObject *Sender)

{

if (! frmEdit->Showing) // Ссли Ρ„ΠΎΡ€ΠΌΠ° Π΅Ρ‰Π΅ Π½Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π°

{

frmEditState = 0; // устанавливаСм состояниС Ρ„ΠΎΡ€ΠΌΡ‹, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ добавлСния ΠΊΠ½ΠΈΠ³ΠΈ

frmEdit->Show (); // ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ добавлСния ΠΊΠ½ΠΈΠ³ΠΈ

}

}

// —————————————————————————————————————;

// Ѐункция Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΠΎΡ€ΠΌΡ‹ рСдактирования ΠΊΠ½ΠΈΠ³ΠΈ

void __fastcall TfrmMain: mnuEditBookClick (TObject *Sender)

{

if (! frmEdit->Showing) // Ссли Ρ„ΠΎΡ€ΠΌΠ° Π΅Ρ‰Π΅ Π½Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π°

{

frmEditState = 1; // устанавливаСм состояниС Ρ„ΠΎΡ€ΠΌΡ‹, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ рСдактирования ΠΊΠ½ΠΈΠ³ΠΈ

frmEdit->Show (); // ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ добавлСния ΠΊΠ½ΠΈΠ³ΠΈ

}

}

// —————————————————————————————————————;

// Ѐункция Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΠΎΡ€ΠΌΡ‹ добавлСния ΠΊΠ½ΠΈΠ³ΠΈ

void __fastcall TfrmMain: popmnuAddClick (TObject *Sender)

{

if (! frmEdit->Showing) // Ссли Ρ„ΠΎΡ€ΠΌΠ° Π΅Ρ‰Π΅ Π½Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π°

{

frmEditState = 0; // устанавливаСм состояниС Ρ„ΠΎΡ€ΠΌΡ‹, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ добавлСния ΠΊΠ½ΠΈΠ³ΠΈ

frmEdit->Show (); // ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ добавлСния ΠΊΠ½ΠΈΠ³ΠΈ

}

}

// —————————————————————————————————————;

// Ѐункция Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΠΎΡ€ΠΌΡ‹ рСдактирования ΠΊΠ½ΠΈΠ³ΠΈ

void __fastcall TfrmMain: popmnuEditBookClick (TObject *Sender)

{

if (! frmEdit->Showing) // Ссли Ρ„ΠΎΡ€ΠΌΠ° Π΅Ρ‰Π΅ Π½Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π°

{

frmEditState = 1; // устанавливаСм состояниС Ρ„ΠΎΡ€ΠΌΡ‹, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ рСдактирования ΠΊΠ½ΠΈΠ³ΠΈ

frmEdit->Show (); // ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ добавлСния ΠΊΠ½ΠΈΠ³ΠΈ

}

}

// —————————————————————————————————————;

// Ѐункция Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° удалСния ΠΊΠ½ΠΈΠ³ΠΈ

void __fastcall TfrmMain: mnuDeleteClick (TObject *Sender)

{

frmMain->DeleteBook (); // Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ удалСния ΠΊΠ½ΠΈΠ³ΠΈ

}

// —————————————————————————————————————;

// Ѐункция удалСния ΠΊΠ½ΠΈΠ³ΠΈ

void __fastcall TfrmMain: DeleteBook ()

{

if (Application->MessageBox («Π’Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΆΠ΅Π΄Π°Π΅Ρ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ?», «Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ записи ΠΎ ΠΊΠ½ΠΈΠ³Π΅», MB_OKCANCEL + MB_ICONWARNING) == IDOK) // Π’Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ MessageBox. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΌΠ΅Ρ‚ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ OK

{

// Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ SQL запроса // Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ дСйствия

String QueryDelete = «DELETE FROM Books»

" WHERE num_udk='" +DBGrid1->Fields — >AsString+" ' and autor='" +DBGrid1->Fields — >AsString+" 'and title='" +DBGrid1->Fields — >AsString+" 'and year_print="+DBGrid1->Fields — >AsString+" and count_in_library="+DBGrid1->Fields — >AsString; // Бтроковая пСрСмСнная, содСрТащая SQL запрос ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…

try // ΠŸΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ошибки Π²ΠΎ Π²Ρ€Π΅ΠΌΡ выполнСния Π±Π»ΠΎΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°

{

ADOCommand1->CommandText = QueryDelete; // УстанавливаСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ SQL-запроса Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ADOCommand1

ADOCommand1->Execute (); // Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ SQL-запрос

// ОбновлСниС списка ΠΊΠ½ΠΈΠ³ Π² Ρ‚Π°ΡŽΠ»ΠΈΡ†Π΅ DBGrid1

String TTQuery1 = «select num_udk, autor, title, year_print, count_in_library from Books»; // Бтроковая пСрСмСнная, содСрТащая SQL запрос ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…

ADOQuery1->SQL->Clear (); // ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ SQL-запрос

ADOQuery1->SQL->Add (TTQuery1); // УстанавливаСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ SQL-запроса Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ADOQuery1

ADOQuery1->Open (); // Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ SQL-запрос

func. ChangeCollName (DBGrid1); // ИзмСнСниС Π½Π°Π·Π²Π°Π½ΠΈΠΉ столбцов

}

catch (EDatabaseError&) // ΠžΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ (ΠΎΡˆΠΈΠ±ΠΊΡƒ)

{

Application->MessageBox («ΠžΡˆΠΈΠ±ΠΊΠ° ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…», «Π’Ρ‹Π²ΠΎΠ΄ записСй», MB_OK + MB_ICONINFORMATION); // Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС

}

}

}

// —————————————————————————————————————;

// Ѐункция Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° удалСния ΠΊΠ½ΠΈΠ³ΠΈ

void __fastcall TfrmMain: popmnuDeleteClick (TObject *Sender)

{

frmMain->DeleteBook (); // Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ удалСния ΠΊΠ½ΠΈΠ³ΠΈ

}

// —————————————————————————————————————;

// Ѐункция Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΠΎΡ€ΠΌΡ‹ frmAbout

void __fastcall TfrmMain: mnuAboutClick (TObject *Sender)

{

frmAbout->Show (); // ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ frmAbout

}

// —————————————————————————————————————;

// Ѐункция Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ список всСх ΠΊΠ½ΠΈΠ³ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅

void __fastcall TfrmMain: mnuShowAllClick (TObject *Sender)

{

String TTQuery1 = «select num_udk, autor, title, year_print, count_in_library from Books»; // Бтроковая пСрСмСнная, содСрТащая SQL запрос ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…

ADOQuery1->SQL->Clear (); // ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ SQL-запрос

ADOQuery1->SQL->Add (TTQuery1); // УстанавливаСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ SQL-запроса Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ADOQuery1

ADOQuery1->Open (); // Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ SQL-запрос

func. ChangeCollName (DBGrid1); // ИзмСнСниС Π½Π°Π·Π²Π°Π½ΠΈΠΉ столбцов

frmMain->mnuShowAll->Visible = false; // скрываСм ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню

frmMain->popmnuShowAll->Visible = false; // Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ Π²Ρ‹Π²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΠΎΠ»Π½ΠΎΠΌ спискС ΠΊΠ½ΠΈΠ³ ΠΎΠ½ΠΈ Π½Π΅ Π²ΠΎΡΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½Ρ‹

StatusBar1->Panels->Items — >Text = «ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ списка всСх ΠΊΠ½ΠΈΠ³ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅»; // ИзмСняСм тСкст Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ статуса

}

// —————————————————————————————————————;

// Ѐункция Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ список всСх ΠΊΠ½ΠΈΠ³ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅

void __fastcall TfrmMain: popmnuShowAllClick (TObject *Sender)

{

String TTQuery1 = «select num_udk, autor, title, year_print, count_in_library from Books»; // Бтроковая пСрСмСнная, содСрТащая SQL запрос ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…

ADOQuery1->SQL->Clear (); // ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ SQL-запрос

ADOQuery1->SQL->Add (TTQuery1); // УстанавливаСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ SQL-запроса Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ADOQuery1

ADOQuery1->Open (); // Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ SQL-запрос

func. ChangeCollName (DBGrid1); // ИзмСнСниС Π½Π°Π·Π²Π°Π½ΠΈΠΉ столбцов

frmMain->mnuShowAll->Visible = false; // скрываСм ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню

frmMain->popmnuShowAll->Visible = false; // Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ Π²Ρ‹Π²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΠΎΠ»Π½ΠΎΠΌ спискС ΠΊΠ½ΠΈΠ³ ΠΎΠ½ΠΈ Π½Π΅ Π²ΠΎΡΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½Ρ‹

StatusBar1->Panels->Items — >Text = «ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ списка всСх ΠΊΠ½ΠΈΠ³ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅»; // ИзмСняСм тСкст Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ статуса

}

// —————————————————————————————————————;

// Ѐункция открытия Ρ„Π°ΠΉΠ»Π° справки help. chm

void __fastcall TfrmMain: mnuHelpContentClick (TObject *Sender)

{

AnsiString FILE_HELP_NAME_STR = «help. chm»; // Π—Π°Π΄Π°Π΅ΠΌ имя Ρ„Π°ΠΉΠ»Π° справки

if (FileExists (FILE_HELP_NAME_STR)) // Если Ρ„Π°ΠΉΠ» help. chm присутствуСт Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

{

ShellExecute (Handle, «open», «help. chm», 0, 0, SW_SHOWNORMAL); // запускаСм Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅

return;

}

else

{

ShowMessage («Π€Π°ΠΉΠ» справки «help. chm» Π² ΠΏΠ°ΠΏΠΊΠ΅ с ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½. Для исправлСния Π΄Π°Π½Π½ΠΎΠΉ ситуации ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ΅Ρ€Π΅ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π»ΠΈΠ±ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. «);

return;

}

}

// —————————————————————————————————————;

// Ѐункция Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° сортировки ΠΊΠ½ΠΈΠ³

void __fastcall TfrmMain: mnuSortByYearClick (TObject *Sender)

{

SortBook (); // Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сортировки ΠΊΠ½ΠΈΠ³

}

// —————————————————————————————————————;

// Ѐункция сортировки ΠΊΠ½ΠΈΠ³

void __fastcall TfrmMain: SortBook ()

{

if (! sortedbooks) // Если ΠΊΠ½ΠΈΠ³ΠΈ Π½Π΅ ΠΎΡ‚сортированны, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠΌ сортировку

{

String TTQuery1 = «select num_udk, autor, title, year_print, count_in_library from Books ORDER BY year_print DESC»; // Бтроковая пСрСмСнная, содСрТащая SQL запрос ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…

ADOQuery1->SQL->Clear (); // ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ SQL-запрос

ADOQuery1->SQL->Add (TTQuery1); // УстанавливаСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ SQL-запроса Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ADOQuery1

ADOQuery1->Open (); // Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ SQL-запрос

func. ChangeCollName (DBGrid1); // ИзмСнСниС Π½Π°Π·Π²Π°Π½ΠΈΠΉ столбцов

mnuSortByYear->Caption = «ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ сортировку ΠΏΠΎ Π³ΠΎΠ΄Π°ΠΌ»; // ИзмСняСм названия

popSortByYear->Caption = «ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ сортировку ΠΏΠΎ Π³ΠΎΠ΄Π°ΠΌ»; // ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню

sortedbooks = true; // ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π° ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅

}

else // Если ΠΊΠ½ΠΈΠ³ΠΈ отсортированны, Ρ‚ΠΎ ΠΎΡ‚мСняСм сортировку

{

String TTQuery1 = «select num_udk, autor, title, year_print, count_in_library from Books»; // Бтроковая пСрСмСнная, содСрТащая SQL запрос ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…

ADOQuery1->SQL->Clear (); // ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ SQL-запрос

ADOQuery1->SQL->Add (TTQuery1); // УстанавливаСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ SQL-запроса Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ADOQuery1

ADOQuery1->Open (); // Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ SQL-запрос

func. ChangeCollName (DBGrid1); // ИзмСнСниС Π½Π°Π·Π²Π°Π½ΠΈΠΉ столбцов

mnuSortByYear->Caption = «Π£ΠΏΠΎΡ€ΡΠ»ΠΎΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎ Π³ΠΎΠ΄Π°ΠΌ»; // ИзмСняСм названия

popSortByYear->Caption = «Π£ΠΏΠΎΡ€ΡΠ»ΠΎΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎ Π³ΠΎΠ΄Π°ΠΌ»; // ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню

sortedbooks = false; // ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π° ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅

}

}

// —————————————————————————————————————;

// Ѐункция Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° сортировки ΠΊΠ½ΠΈΠ³

void __fastcall TfrmMain: popSortByYearClick (TObject *Sender)

{

SortBook (); // Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сортировки ΠΊΠ½ΠΈΠ³

}

// —————————————————————————————————————;

frmMain (Unit1. h)

// —————————————————————————————————————;

#ifndef Unit1H

#define Unit1H

// —————————————————————————————————————;

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

// —————————————————————————————————————;

class TfrmMain: public TForm

{

__published: // IDE-managed Components

TADOConnection *ADOConnection1;

TADOQuery *ADOQuery1;

TDBGrid *DBGrid1;

TDataSource *DataSource1;

TStatusBar *StatusBar1;

TMainMenu *MainMenu1;

TMenuItem *mnuFile;

TMenuItem *mnuExit;

TMenuItem *mnuEdit;

TMenuItem *mnuAdd;

TMenuItem *mnuDelete;

TMenuItem *mnuSearch;

TMenuItem *N3;

TMenuItem *mnuHelp;

TMenuItem *mnuHelpContent;

TMenuItem *N1;

TMenuItem *mnuAbout;

TPopupMenu *PopupMenu1;

TMenuItem *popmnuAdd;

TMenuItem *popmnuDelete;

TMenuItem *N2;

TMenuItem *popmnuSearch;

TMenuItem *popmnuEditBook;

TMenuItem *mnuEditBook;

TADOCommand *ADOCommand1;

TADODataSet *ADODataSet1;

TMenuItem *mnuShowAll;

TMenuItem *popmnuShowAll;

TMenuItem *N4;

TMenuItem *mnuSortByYear;

TMenuItem *N5;

TMenuItem *popSortByYear;

void __fastcall mnuExitClick (TObject *Sender);

void __fastcall mnuSearchClick (TObject *Sender);

void __fastcall popmnuSearchClick (TObject *Sender);

void __fastcall mnuAddClick (TObject *Sender);

void __fastcall mnuEditBookClick (TObject *Sender);

void __fastcall popmnuAddClick (TObject *Sender);

void __fastcall popmnuEditBookClick (TObject *Sender);

void __fastcall mnuDeleteClick (TObject *Sender);

void __fastcall DeleteBook ();

void __fastcall popmnuDeleteClick (TObject *Sender);

void __fastcall mnuAboutClick (TObject *Sender);

void __fastcall mnuShowAllClick (TObject *Sender);

void __fastcall popmnuShowAllClick (TObject *Sender);

void __fastcall mnuHelpContentClick (TObject *Sender);

void __fastcall mnuSortByYearClick (TObject *Sender); // Ѐункция удалСния Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ

void __fastcall SortBook ();

void __fastcall popSortByYearClick (TObject *Sender);

private: // User declarations

public: // User declarations

__fastcall TfrmMain (TComponent* Owner);

};

// —————————————————————————————————————;

extern PACKAGE TfrmMain *frmMain;

// —————————————————————————————————————;

#endif

frmSearch (Unit2. cpp)

// —————————————————————————————————————;

#include

#pragma hdrstop

#include «Unit1. h»

#include «Unit2. h»

#include «UserFunctions_unit. h» // ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

// —————————————————————————————————————;

#pragma package (smart_init)

#pragma resource «*. dfm»

TfrmSearch *frmSearch;

extern bool sortedbooks; // ОбъявляСм ΠΎΠ±Ρ‰ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для Ρ„ΠΎΡ€ΠΌ frmMain, frmEdit ΠΈ frmSearch

MyFunctions func2; // объявлСниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° MyFunctions

// —————————————————————————————————————;

__fastcall TfrmSearch: TfrmSearch (TComponent* Owner)

: TForm (Owner)

{

}

// —————————————————————————————————————;

// Ѐункция ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ btnSearch

void __fastcall TfrmSearch: btnSearchClick (TObject *Sender)

{

bool searchOK = false; // пСрСмСнная, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π»ΠΈ Ρ…ΠΎΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ»Π΅ для поиска

String QuerySearch = «SELECT num_udk, autor, title, year_print, count_in_library from Books WHERE «; // Бтроковая пСрСмСнная, содСрТащая SQL запрос ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…

if (txtUdk->Text! = «») // Если txtUdk содСрТит тСкст

{

searchOK = true; // ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ присваиваСм true

QuerySearch = QuerySearch + «num_udk = '» + txtUdk->Text + «' «; // добкавляСм тСкст поиска ΠΊ SQL запросу

}

if (txtAuthor->Text! = «») // Если txtAuthor содСрТит тСкст

{

if (searchOK) QuerySearch = QuerySearch + «and «; // Ссли это Π½Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅

QuerySearch = QuerySearch + «autor like '%» + txtAuthor->Text + «%' «; // добкавляСм тСкст поиска ΠΊ SQL запросу

searchOK = true; // ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ присваиваСм true

}

if (txtTitle->Text! = «»)

{

if (searchOK) QuerySearch = QuerySearch + «and «;

QuerySearch = QuerySearch + «title like '%» + txtTitle->Text + «%' «;

searchOK = true;

}

if (txtYear->Text! = «»)

{

if (searchOK) QuerySearch = QuerySearch + «and «;

QuerySearch = QuerySearch + «year_print = «+ txtYear->Text + ««;

searchOK = true;

}

if (txtNum_in_lib->Text! = «»)

{

if (searchOK) QuerySearch = QuerySearch + «and «;

QuerySearch = QuerySearch + «count_in_library = «+ txtNum_in_lib->Text + ««;

searchOK = true;

}

// Если хотябы ΠΎΠ΄Π½ΠΎ тСкстовоС ΠΏΠΎΠ»Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ выполняСм поиск

if (txtAuthor->Text! ="" || txtNum_in_lib->Text! ="" || txtTitle->Text! ="" || txtUdk->Text! ="" || txtYear->Text! ="")

{

try // ΠŸΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ошибки Π²ΠΎ Π²Ρ€Π΅ΠΌΡ выполнСния Π±Π»ΠΎΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°

{

frmMain->ADOQuery1->SQL->Clear (); // ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ SQL-запрос

frmMain->ADOQuery1->SQL->Add (QuerySearch); // УстанавливаСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ SQL-запроса Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ADOQuery1

frmMain->ADOQuery1->Open (); // Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ SQL-запрос

}

catch (EDatabaseError&) // ΠžΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ (ΠΎΡˆΠΈΠ±ΠΊΡƒ)

{

Application->MessageBox («ΠžΡˆΠΈΠ±ΠΊΠ° ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ поиска», «ΠŸΠΎΠΈΡΠΊ», MB_OK + MB_ICONINFORMATION); // Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС

}

frmMain->mnuShowAll->Visible = true; // ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню «ΠžΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ всС ΠΊΠ½ΠΈΠ³ΠΈ»

frmMain->popmnuShowAll->Visible = true; // ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню «ΠžΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ всС ΠΊΠ½ΠΈΠ³ΠΈ»

frmSearch->Close (); // Π—Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ„ΠΎΡ€ΠΌΡƒ поиска

frmMain->StatusBar1->Panels->Items — >Text = «Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ поиска»; // ИзмСняСм тСкст Π² ΠΏΠ°Π½Π΅Π»ΠΈ статусак

frmMain->mnuSortByYear->Caption = «Π£ΠΏΠΎΡ€ΡΠ»ΠΎΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎ Π³ΠΎΠ΄Π°ΠΌ»; // ИзмСняСм Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡƒΠ½ΠΊΡ‚Π° сортировки

frmMain->popSortByYear->Caption = «Π£ΠΏΠΎΡ€ΡΠ»ΠΎΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎ Π³ΠΎΠ΄Π°ΠΌ»; // ИзмСняСм Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡƒΠ½ΠΊΡ‚Π° сортировки

sortedbooks = false; // Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ — сортировка Π½Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ

func2. ChangeCollName (frmMain->DBGrid1); // ИзмСнСниС Π½Π°Π·Π²Π°Π½ΠΈΠΉ столбцов

}

else ShowMessage («ΠΠ΅ Π·Π°Π΄Π°Π½Ρ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ поиска»); // Если Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΏΠΎΠ»Π΅ поиска Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС

}

// —————————————————————————————————————;

void __fastcall TfrmSearch: btnCleartextClick (TObject *Sender) // ΠžΡ‡ΠΈΡ‰Π°Π΅ΠΌ тСкстовыС поля

{

txtAuthor->Text = «»; // ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ тСкстовым полям пустоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

txtNum_in_lib->Text = «» ;

txtTitle->Text = «» ;

txtUdk->Text = «» ;

txtYear->Text = «» ;

}

// —————————————————————————————————————;

// Ѐункция ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π²ΠΎΠ΄Π° тСкста Π² ΠΏΠΎΠ»Π΅ txtYear

void __fastcall TfrmSearch: txtYearKeyPress (TObject *Sender, char &Key)

// —————————————————————————————————————;

// —————————————————————————————————————;

// Ѐункция ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π²ΠΎΠ΄Π° тСкста Π² ΠΏΠΎΠ»Π΅ txtNum

void __fastcall TfrmSearch: txtNum_in_libKeyPress (TObject *Sender,

char &Key)

// Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅ΠΌ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†ΠΈΡ„Ρ€Ρ‹

if (! ((Key >= '0' && Key <= '9')

// —————————————————————————————————————;

frmSearch (Unit2. h)

// —————————————————————————————————————;

#ifndef Unit2H

#define Unit2H

// —————————————————————————————————————;

#include

#include

#include

#include

// —————————————————————————————————————;

class TfrmSearch: public TForm

{

__published: // IDE-managed Components

TEdit *txtUdk;

TEdit *txtTitle;

TEdit *txtAuthor;

TEdit *txtYear;

TEdit *txtNum_in_lib;

TButton *btnSearch;

TLabel *lblUDK;

TLabel *lblTitle;

TLabel *lblAuthor;

TLabel *lblNum_in_lib;

TLabel *lblyear;

TButton *btnCleartext;

void __fastcall btnSearchClick (TObject *Sender);

void __fastcall btnCleartextClick (TObject *Sender);

void __fastcall txtYearKeyPress (TObject *Sender, char &Key);

void __fastcall txtNum_in_libKeyPress (TObject *Sender, char &Key);

private: // User declarations

public: // User declarations

__fastcall TfrmSearch (TComponent* Owner);

};

// —————————————————————————————————————;

extern PACKAGE TfrmSearch *frmSearch;

// —————————————————————————————————————;

#endif

frmEdit (Unit3. cpp)

// —————————————————————————————————————;

#include

#pragma hdrstop

#include «Unit3. h»

#include «Unit1. h»

#include «UserFunctions_unit. h»

// —————————————————————————————————————;

#pragma package (smart_init)

#pragma resource «*. dfm»

TfrmEdit *frmEdit;

extern int frmEditState; // ОбъявляСм ΠΎΠ±Ρ‰ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для Ρ„ΠΎΡ€ΠΌ frmMain, frmEdit

extern bool sortedbooks; // ОбъявляСм ΠΎΠ±Ρ‰ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для Ρ„ΠΎΡ€ΠΌ frmMain, frmEdit ΠΈ frmSearch

MyFunctions func3; // объявлСниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° MyFunctions

// —————————————————————————————————————;

__fastcall TfrmEdit: TfrmEdit (TComponent* Owner)

: TForm (Owner)

{

}

// —————————————————————————————————————;

void __fastcall TfrmEdit: FormShow (TObject *Sender)

{

if (frmEditState == 0) // Если frmEditState равняСтся 0

{

frmEdit->Caption = «Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ»; // ИзмСняСм Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Ρ„ΠΎΡ€ΠΌΡ‹

}

else

{

frmEdit->Caption = «Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ»; // ИзмСняСм Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Ρ„ΠΎΡ€ΠΌΡ‹

btnOK->Caption = «Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния»; // ИзмСняСм Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΊΠ½ΠΎΠΏΠΊΠΈ

txtUdk->Text=frmMain->DBGrid1->Fields — >AsString; // заполняСм тСкстовыС

txtAuthor->Text=frmMain->DBGrid1->Fields — >AsString; // поля значСниями ΠΈΠ· DBGrid1

txtTitle->Text=frmMain->DBGrid1->Fields — >AsString;

txtNum_in_lib->Text=frmMain->DBGrid1->Fields — >AsString;

txtYear->Text=frmMain->DBGrid1->Fields — >AsString;

}

}

// —————————————————————————————————————;

// Ѐункция ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ

void __fastcall TfrmEdit: btnOKClick (TObject *Sender)

{

if (frmEditState == 0) // Если frmEditState равняСтся 0

{ // Если Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ всС поля

if (txtAuthor->Text! ="" && txtNum_in_lib->Text! ="" && txtTitle->Text! ="" && txtUdk->Text! ="" && txtYear->Text! ="")

{ // Π€ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ SQL запрос Π½Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ записи

String QueryAdd = «INSERT INTO Books (num_udk, autor, title, year_print, count_in_library) VALUES ('»

+txtUdk->Text+" ', '" +txtAuthor->Text+" ', '" +txtTitle->Text+" ', «+txtYear->Text+», «+txtNum_in_lib->Text+»); «; // Бтроковая пСрСмСнная, содСрТащая SQL запрос ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…

try // ΠŸΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ошибки Π²ΠΎ Π²Ρ€Π΅ΠΌΡ выполнСния Π±Π»ΠΎΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°

{

frmMain->ADOCommand1->CommandText = QueryAdd; // УстанавливаСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ SQL-запроса Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ADOCommand1

frmMain->ADOCommand1->Execute (); // Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ SQL-запрос

// ОбновляСм список ΠΊΠ½ΠΈΠ³ Π² DBGrid1

String TTQuery1 = «select num_udk, autor, title, year_print, count_in_library from Books»; // Бтроковая пСрСмСнная, содСрТащая SQL запрос ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…

frmMain->ADOQuery1->SQL->Clear (); // ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ SQL-запрос

frmMain->ADOQuery1->SQL->Add (TTQuery1); // УстанавливаСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ SQL-запроса Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ADOQuery1

frmMain->ADOQuery1->Open (); // Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ SQL-запрос

}

catch (EDatabaseError&) // ΠžΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ (ΠΎΡˆΠΈΠ±ΠΊΡƒ)

{

Application->MessageBox («ΠžΡˆΠΈΠ±ΠΊΠ° ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…», «Π’Ρ‹Π²ΠΎΠ΄ записСй», MB_OK + MB_ICONINFORMATION); // Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС

}

frmMain->mnuSortByYear->Caption = «Π£ΠΏΠΎΡ€ΡΠ»ΠΎΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎ Π³ΠΎΠ΄Π°ΠΌ»; // УстанавливаСм Π½ΠΎΠ²Ρ‹Π΅

frmMain->popSortByYear->Caption = «Π£ΠΏΠΎΡ€ΡΠ»ΠΎΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎ Π³ΠΎΠ΄Π°ΠΌ»; // Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ для ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню

sortedbooks = false; // Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ — сортировка Π½Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ

func3. ChangeCollName (frmMain->DBGrid1); // ИзмСнСниС Π½Π°Π·Π²Π°Π½ΠΈΠΉ столбцов

frmEdit->Close (); // Π—Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ„ΠΎΡ€ΠΌΡƒ

}

else ShowMessage («Π—Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Π½Π΅ Π²ΡΠ΅ поля!»); // Если Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Π½Π΅ Π²ΡΠ΅ поля Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС

}

else if (frmEditState == 1) // Если frmEditState равняСтся 0

{ // Π€ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ SQL запрос Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ записи

String QueryUpdate = «UPDATE Books SET num_udk='» +txtUdk->Text+" ', autor='" +txtAuthor->Text+" ', title='" +txtTitle->Text+" ', year_print="+txtYear->Text+", count_in_library="+txtNum_in_lib->Text+

" WHERE num_udk='" +frmMain->DBGrid1->Fields — >AsString+" ' and autor='" +frmMain->DBGrid1->Fields — >AsString+" 'and title='" +frmMain->DBGrid1->Fields — >AsString+" 'and year_print="+frmMain->DBGrid1->Fields — >AsString+" and count_in_library="+frmMain->DBGrid1->Fields — >AsString; // Бтроковая пСрСмСнная, содСрТащая SQL запрос ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…

try // ΠŸΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ошибки Π²ΠΎ Π²Ρ€Π΅ΠΌΡ выполнСния Π±Π»ΠΎΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°

{

frmMain->ADOCommand1->CommandText = QueryUpdate; // УстанавливаСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ SQL-запроса Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ADOCommand1

frmMain->ADOCommand1->Execute (); // Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ SQL-запрос

// ОбновляСм список ΠΊΠ½ΠΈΠ³ Π² DBGrid1

String TTQuery1 = «select num_udk, autor, title, year_print, count_in_library from Books»; // Бтроковая пСрСмСнная, содСрТащая SQL запрос ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…

frmMain->ADOQuery1->SQL->Clear (); // ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ SQL-запрос

frmMain->ADOQuery1->SQL->Add (TTQuery1); // УстанавливаСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ SQL-запроса Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ADOQuery1

frmMain->ADOQuery1->Open (); // Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ SQL-запрос

}

catch (EDatabaseError&) // ΠžΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ (ΠΎΡˆΠΈΠ±ΠΊΡƒ)

{

Application->MessageBox («ΠžΡˆΠΈΠ±ΠΊΠ° ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…», «Π’Ρ‹Π²ΠΎΠ΄ записСй», MB_OK + MB_ICONINFORMATION); // Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС

}

frmMain->mnuSortByYear->Caption = «Π£ΠΏΠΎΡ€ΡΠ»ΠΎΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎ Π³ΠΎΠ΄Π°ΠΌ»; // УстанавливаСм Π½ΠΎΠ²Ρ‹Π΅

frmMain->popSortByYear->Caption = «Π£ΠΏΠΎΡ€ΡΠ»ΠΎΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎ Π³ΠΎΠ΄Π°ΠΌ»; // Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ для ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню

sortedbooks = false; // Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ — сортировка Π½Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ

func3. ChangeCollName (frmMain->DBGrid1); // ИзмСнСниС Π½Π°Π·Π²Π°Π½ΠΈΠΉ столбцов

frmEdit->Close (); // Π—Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ„ΠΎΡ€ΠΌΡƒ

}

}

// —————————————————————————————————————;

// Ѐункция ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π²ΠΎΠ΄Π° тСкста Π² ΠΏΠΎΠ»Π΅ txtYear

void __fastcall TfrmEdit: txtYearKeyPress (TObject *Sender, char &Key)

// —————————————————————————————————————;

// Ѐункция ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π²ΠΎΠ΄Π° тСкста Π² ΠΏΠΎΠ»Π΅ txtNum

void __fastcall TfrmEdit: txtNum_in_libKeyPress (TObject *Sender, char &Key)

// Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅ΠΌ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†ΠΈΡ„Ρ€Ρ‹

if (! ((Key >= '0' && Key <= '9')

// —————————————————————————————————————;

frmEdit (Unit3. h)

// —————————————————————————————————————;

#ifndef Unit3H

#define Unit3H

// —————————————————————————————————————;

#include

#include

#include

#include

// —————————————————————————————————————;

class TfrmEdit: public TForm

{

__published: // IDE-managed Components

TEdit *txtUdk;

TEdit *txtTitle;

TEdit *txtAuthor;

TEdit *txtYear;

TEdit *txtNum_in_lib;

TButton *btnOK;

TLabel *lblUDK;

TLabel *lblTitle;

TLabel *lblAuthor;

TLabel *lblNum_in_lib;

TLabel *lblyear;

void __fastcall FormShow (TObject *Sender);

void __fastcall btnOKClick (TObject *Sender);

void __fastcall txtYearKeyPress (TObject *Sender, char &Key);

void __fastcall txtNum_in_libKeyPress (TObject *Sender, char &Key);

private: // User declarations

public: // User declarations

__fastcall TfrmEdit (TComponent* Owner);

};

// —————————————————————————————————————;

extern PACKAGE TfrmEdit *frmEdit;

// —————————————————————————————————————;

#endif

frmAbout (Unit4. cpp)

// —————————————————————————————————————;

#include

#pragma hdrstop

#include «Unit4. h»

// —————————————————————————————————————;

#pragma package (smart_init)

#pragma resource «*. dfm»

TfrmAbout *frmAbout;

// —————————————————————————————————————;

__fastcall TfrmAbout: TfrmAbout (TComponent* Owner)

: TForm (Owner)

{

Label6->Caption = «ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° осущСствляСт ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅nΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ списка Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ nсодСрТащСйся Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅» ;

}

// —————————————————————————————————————;

void __fastcall TfrmAbout: FormCreate (TObject *Sender)

{

}

// —————————————————————————————————————;

frmAbout (Unit4. cpp)

// —————————————————————————————————————;

#ifndef Unit4H

#define Unit4H

// —————————————————————————————————————;

#include

#include

#include

#include

// —————————————————————————————————————;

class TfrmAbout: public TForm

{

__published: // IDE-managed Components

TLabel *Label1;

TLabel *Label2;

TLabel *Label3;

TLabel *Label4;

TLabel *Label5;

TLabel *Label6;

TLabel *Label7;

private: // User declarations

public: // User declarations

__fastcall TfrmAbout (TComponent* Owner);

};

// —————————————————————————————————————;

extern PACKAGE TfrmAbout *frmAbout;

// —————————————————————————————————————;

#endif

UserFunctions_unit. cpp

// —————————————————————————————————————;

#pragma hdrstop

#include «UserFunctions_unit. h»

// —————————————————————————————————————;

#pragma package (smart_init)

// Ѐункция измСнСния Π½Π°Π·Π²Π°Π½ΠΈΠΉ столбцов

void MyFunctions: ChangeCollName (TDBGrid *DBGrid)

{

AnsiString colname; // строка ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ

AnsiString collable; // строка присвоСния lable ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π½Π° Ρ€ΡƒΡΡΠΊΠΎΠΌ

int width = 0;

for (int i = 0; i < (DBGrid->FieldCount); i++) // ΠžΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ всСх столбцов Π² DBGrid1

{

colname = DBGrid->Fields [i] - >FullName; // ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ имя ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΈ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

if (colname == «num_udk») // Π’ ΡΠ»Π΅Ρ‡Π°Π΅ совпадСния ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² DBGrid ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ строки

{ // мСняСм lable ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π½Π° Ρ€ΡƒΡΡΠΊΠΈΠ΅ названия

collable = «ΠΠΎΠΌΠ΅Ρ€ Π£Π”Πš»; // УстанавливаСм Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ

width=90; // УстанавливаСм ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ

}

else if (colname == «autor») // Π’ ΡΠ»Π΅Ρ‡Π°Π΅ совпадСния ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² DBGrid ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ строки

{ // мСняСм lable ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π½Π° Ρ€ΡƒΡΡΠΊΠΈΠ΅ названия

collable = «ΠΠ²Ρ‚ΠΎΡ€» ;

width=220;

}

else if (colname == «title») // Π’ ΡΠ»Π΅Ρ‡Π°Π΅ совпадСния ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² DBGrid ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ строки

{ // мСняСм lable ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π½Π° Ρ€ΡƒΡΡΠΊΠΈΠ΅ названия

collable = «ΠΠ°Π·Π²Π°Π½ΠΈΠ΅» ;

width=270;

}

else if (colname == «year_print») // Π’ ΡΠ»Π΅Ρ‡Π°Π΅ совпадСния ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² DBGrid ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ строки

{ // мСняСм lable ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π½Π° Ρ€ΡƒΡΡΠΊΠΈΠ΅ названия

collable = «Π“ΠΎΠ΄ издания» ;

width=90;

}

else if (colname == «count_in_library») // Π’ ΡΠ»Π΅Ρ‡Π°Π΅ совпадСния ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² DBGrid ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ строки

{ // мСняСм lable ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π½Π° Ρ€ΡƒΡΡΠΊΠΈΠ΅ названия

collable = «ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ» ;

width=90;

}

DBGrid->Fields [i] - >DisplayLabel = collable; // МСняСм Π½Π°Π·Π²Π°Π½ΠΈΠ΅ столбца Π² DBGrid Π½Π° ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅

DBGrid->Columns->Items [i] - >Width = width; // МСняСм ΡˆΠΈΡ€ΠΈΠ½Ρƒ столбца Π² DBGrid Π½Π° ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅

DBGrid->Columns->Items [i] - >Alignment = taLeftJustify; // МСняСм Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ Π² ΡΡ‚ΠΎΠ»Π±Ρ†Π΅ DBGrid Π½Π° Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π»Π΅Π²ΠΎΠΌΡƒ ΠΊΡ€Π°ΡŽ

}

}

UserFunctions_unit. h

// —————————————————————————————————————;

#include

#ifndef UserFunctions_unitH

#define UserFunctions_unitH

class MyFunctions

{

public: // User declarations

void ChangeCollName (TDBGrid*);

private:

};

// —————————————————————————————————————;

#endif

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