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

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-справочная систСма Β«ΠœΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Π°Ρ школа»

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

РСляционная Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… — это, ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго, Π½Π°Π±ΠΎΡ€ Ρ‚Π°Π±Π»ΠΈΡ†. Π‘Ρ‚ΠΎΠ»Π±Ρ†Ρ‹ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π΅ΠΌ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹ΠΌ характСристикам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² — полям. КаТдоС ΠΏΠΎΠ»Π΅ характСризуСтся Ρ‚Π΅ΠΌ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ Ρ‚ΠΈΠΏΠΎΠΌ хранящихся Π΄Π°Π½Π½Ρ‹Ρ…. Имя поля — это ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉΡΡ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… для манипуляции Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Он ΡΡ‚роится ΠΊΠ°ΠΊ ΠΈ Π»ΡŽΠ±ΠΎΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ латинскими (английскими) Π±ΡƒΠΊΠ²Π°ΠΌΠΈ ΠΎΠ΄Π½ΠΈΠΌ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-справочная систСма Β«ΠœΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Π°Ρ школа» (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π€Π΅Π΄Π΅Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ агСнтство ΠΏΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ БСлгородский государствСнный унивСрситСт Π€Π°ΠΊΡƒΠ»ΡŒΡ‚Π΅Ρ‚ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… Π½Π°ΡƒΠΊ ΠΈ Ρ‚Π΅Π»Π΅ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ ΠšΠ°Ρ„Π΅Π΄Ρ€Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠšΡƒΡ€ΡΠΎΠ²Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ Π΄ΠΈΡΡ†ΠΈΠΏΠ»ΠΈΠ½Π΅: «Π‘Ρ€Π΅Π΄Ρ‹ программирования Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…»

Π½Π° Ρ‚Π΅ΠΌΡƒ: «Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-справочная систСма „ΠœΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Π°Ρ школа“»

Π‘Π΅Π»Π³ΠΎΡ€ΠΎΠ΄ 2006

1. ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈ создании ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-справочной систСмы «ΠœΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Π°Ρ школа»

2. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² MS Access

3. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-справочной систСмы «ΠœΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Π°Ρ школа» Π² C++Builder

3.1 Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

3.2 Поля LookUp

3.3 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΡ‚Ρ‡Ρ‘Ρ‚ΠΎΠ²

3.4 Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ записСй Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ

3.5 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ запросов Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… источников ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ «Π›ΠΈΡΡ‚ΠΈΠ½Π³ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹»

Π’ Π΄Π°Π½Π½ΠΎΠΉ курсовой Ρ€Π°Π±ΠΎΡ‚Π΅ для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠœΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ ΡˆΠΊΠΎΠ»Ρ‹ разрабатываСтся ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-справочная Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…, содСрТащая ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Слях, ΡƒΡ‡Π΅Π½ΠΈΠΊΠ°Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… инструмСнтах ΠΈ ΠΊΠ»Π°ΡΡΠ°Ρ…. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Π°Ρ школа осущСствляСт ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π΅Ρ‚Π΅ΠΉ ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΡΡ‚ΠΊΠΎΠ² Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… инструмСнтах.

Для упрощСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…, разработанная Π² Microsoft Access, оформляСтся Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Borland C++Builder. Π‘Π°ΠΌΠ° Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… содСрТит Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…, Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅Ρ€Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ ΡˆΠΊΠΎΠ»Ρ‹.

Π Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΡˆΠΊΠΎΠ»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Π΅Π· Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π½ΠΈΠΉ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ запросы ΠΊΠ°ΠΊ ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΎΠ± ΡƒΡ‡Π°Ρ‰ΠΈΡ…ся, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€Π° ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ ΡˆΠΊΠΎΠ»Ρ‹.

ИмСнно поэтому я ΡΡ‡ΠΈΡ‚Π°ΡŽ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-справочной систСмы «ΠœΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Π°Ρ школа» Π² ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΡˆΠΊΠΎΠ»Π°Ρ… Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ.

Данная курсовая содСрТит 12 ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΉ, объСм курсовой 27 страниц.

1. ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈ создании ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-справочной систСмы «ΠœΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Π°Ρ школа»

ΠŸΡ€ΠΈ создании ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-справочной систСмы использовались Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ срСдства, ΠΊΠ°ΠΊ Microsoft Access ΠΈ Borland C++Builder. Π’ Microsoft Access создавалась Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…, состоящая ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… Ρ‚Π°Π±Π»ΠΈΡ†. Π’ Borland C++Builder данная Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ„ΠΎΡ€ΠΌΠ»ΡΠ»Π°ΡΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Набор Π΄Π°Π½Π½Ρ‹Ρ… Π² C++ Builder являСтся ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠΌ абстрактного класса TDataSet. НапримСр, классы TQuery, TTable ΠΈ TStoredProc — наслСдники TDBDataSet, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, Π² ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, являСтся наслСдником TDataSet. TDataSet содСрТит абстракции, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для нСпосрСдствСнного управлСния Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ ΠΈΠ»ΠΈ запросами, обСспСчивая срСдства для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈΠ»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ запрос ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΡΡ‚Ρ€ΠΎΠΊΠ°ΠΌ.

ΠŸΡ€ΠΈ создании ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-справочной систСмы «ΠœΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Π°Ρ школа» использовалось мноТСство ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Π½ΠΎ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ…:

Β§ TTable;

§ TDataSource;

Β§ TField;

§ TDBGrid;

§ DBNavigator;

§ БистСма ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² QuickReport;

Β§ TQuery.

НаиболСС простым способом обращСния ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… являСтся использованиС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° TTable, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ доступ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅. Для этой Ρ†Π΅Π»ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ свойства:

Β§ Active — ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° (true) ΠΈΠ»ΠΈ Π½Π΅Ρ‚ (false) данная Ρ‚Π°Π±Π»ΠΈΡ†Π°.

§ DatabaseName — имя ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, содСрТащСго ΠΈΡΠΊΠΎΠΌΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, Π»ΠΈΠ±ΠΎ псСвдоним (alias) ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π‘Π”.

§ TableName — имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

§ Exclusive — Ссли это свойство ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Ρ‚ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, Ссли ΠΎΠ½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

§ MasterFields — опрСдСляСт имя поля для создания связи с Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ.

§ MasterSource — имя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° TDataSource, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ TTable Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

Β§ ReadOnly — Ссли это свойство Ρ€Π°Π²Π½ΠΎ true, Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ «Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния» .

Β§ Fields — массив ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² TField. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ это свойство, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΠΏΠΎΠ»ΡΠΌ ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ DataSource дСйствуСт ΠΊΠ°ΠΊ посрСдник ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ TDataSet ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Data Controls — элСмСнтами управлСния, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽ-Ρ‰ΠΈΠΌΠΈ прСдставлСниС Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ TDataSet ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ связями с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ BDE, Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ DataSource управляСт связями с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ… Data Controls. Π’ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… прилоТСниях Π‘Π” ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ DataSource, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, связан с ΠΎΠ΄Π½ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ TDataSet ΠΈ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Data Controls. Бвязь этого ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ TDataSet ΠΈ DataControls осущСствляСтся с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… свойств ΠΈ ΡΠΎΠ±Ρ‹Ρ‚ΠΈΠΉ:

Β§ Бвойство DataSet ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° DataSource ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ имя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° TDataSet.

Β§ Бвойство AutoEdit ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° DataSource ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚, ΠΊΠ°ΠΊ инициируСтся Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ… Data Controls.

Β§ Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ OnDataChange ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° DataSource наступаСт, ΠΊΠΎΠ³Π΄Π° происходит ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ значСния поля, записи, Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, запроса.

Β§ Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ OnUpdateData ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° DataSource наступаСт, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ пытаСтся ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ запись Π² TDataSet.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ класса TField ΡΠ²Π»ΡΡŽΡ‚ΡΡ свойством ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° TDataSet. Бвойство Fields ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° TDataSet позволяСт ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ полям Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ…. Бвойство Fields являСтся массивом ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² TField, динамичСски ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΠΌΡΡ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ выполнСния прилоТСния. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ TField Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠ½ ΡΠ²ΡΠ·Π°Π½. Fields Editor позволяСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ статичСский список ΠΏΠΎΠ»Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, добавляСмых ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡŽ класса Ρ„ΠΎΡ€ΠΌΡ‹. Fields Editor позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ статичСский список ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Field Π½Π° ΡΡ‚Π°ΠΏΠ΅ проСктирования прилоТСния. ΠŸΡ€ΠΈ внСсСнии ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Fields Editor для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠΎΠ»Π΅ΠΉ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… ΠΊ TDataSet, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ TField, послС Ρ‡Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ эти поля Π² ΠΈΠ½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ… ΠΈΡ… ΡΠ²ΠΎΠΉΡΡ‚Π²Π°, события ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ TDBGrid обСспСчиваСт Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΉ способ отобраТСния Π½Π° ΡΠΊΡ€Π°Π½Π΅ строк Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² TTable ΠΈΠ»ΠΈ TQuery. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ TDBGrid для отобраТСния, вставки, уничтоТСния, рСдактирования Π΄Π°Π½Π½Ρ‹Ρ… Π‘Π”. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ DBGrid ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΡΠΎΡ‡Π΅Ρ‚Π°Π½ΠΈΠΈ с DBNavigator. Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° свойств Columns Editor ΠΈΠ»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ статичСского Π½Π°Π±ΠΎΡ€Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² TField.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ TQuery, ΠΊΠ°ΠΊ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ TTable, ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ всСми свойствами ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° TDataSet.

Как ΠΈ Π² ΡΠ»ΡƒΡ‡Π°Π΅ с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ TTable, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ TDataSource управляСт взаимодСйствиСм ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Data Controls ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ TQuery. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ DataSource для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎ-Π½Π΅Π½Ρ‚Π° TQuery.

НаиболСС часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ свойства ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° TQuery:

* Active — ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ (true) ΠΈΠ»ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ (false) Π΄Π°Π½Π½Ρ‹ΠΉ запрос

* Eof, Bof — эти свойства ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, ΠΊΠΎΠ³Π΄Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ записи располоТСн Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΈΠ»ΠΈ соотвСтствСнно ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ…, ΡΠ²Π»ΡΡŽΡ‰Π΅Π³ΠΎΡΡ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ выполнСния запроса.

* DatabaseName — имя ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π»ΠΈΠ±ΠΎ псСвдоним (alias) ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π‘Π”, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ осущСствляСтся запрос.

* DataSource — ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ источник Π΄Π°Π½Π½Ρ‹Ρ… для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… запросов (Ρ‚.Π΅. запросов с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°Ρ€Π°Π½Π΅Π΅ Π½Π΅ΠΈΠ·-вСстно).

* Fields — это свойство доступно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ выполнСния (run-time only) ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ся для чтСния ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ поля, ΠΎΠΏΡ€Π΅Π΄Π΅-ляСмого ΠΏΠΎ ΠΏΠΎΡ€ΡΠ΄ΠΊΠΎΠ²ΠΎΠΌΡƒ Π½ΠΎΠΌΠ΅Ρ€Ρƒ.

* Params — содСрТит ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ запроса.

* SQL — строковый массив, содСрТащий тСкст ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° запроса SQL.

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

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ TQuery позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ SQL для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π½Π° ΡΠΊΡ€Π°Π½Π΅, Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ, ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строки.

* RequestLive — Ссли это свойство ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true ΠΈ ΡΠΈΠ½Ρ‚аксис запроса Ρ‚Π°ΠΊΠΎΠ², Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ с ΡΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΡ… Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Если RequestLive ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ запроса возвращаСтся Π² ΡΠΎΡΡ‚оянии read-only.

2. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² MS Access

РСляционная Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… — это, ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго, Π½Π°Π±ΠΎΡ€ Ρ‚Π°Π±Π»ΠΈΡ†. Π‘Ρ‚ΠΎΠ»Π±Ρ†Ρ‹ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π΅ΠΌ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹ΠΌ характСристикам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² — полям. КаТдоС ΠΏΠΎΠ»Π΅ характСризуСтся Ρ‚Π΅ΠΌ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ Ρ‚ΠΈΠΏΠΎΠΌ хранящихся Π΄Π°Π½Π½Ρ‹Ρ…. Имя поля — это ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉΡΡ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… для манипуляции Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Он ΡΡ‚роится ΠΊΠ°ΠΊ ΠΈ Π»ΡŽΠ±ΠΎΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ латинскими (английскими) Π±ΡƒΠΊΠ²Π°ΠΌΠΈ ΠΎΠ΄Π½ΠΈΠΌ словом. НазваниС ΠΏΠΎΠ»Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, самой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΎΠΆΠ΅ являСтся ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ. Π’ΠΈΠΏ поля Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΈΠΏ хранящихся Π² ΡΡ‚ΠΎΠΌ ΠΏΠΎΠ»Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. КаТдая строка Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ соотвСтствуСт ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ значСния всСх ΠΏΠΎΠ»Π΅ΠΉ, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… Π΄Π°Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Π’Π°ΠΊΠΆΠ΅ сущСствуСт Ρ‚Π°ΠΊΠΎΠ΅ понятиС, ΠΊΠ°ΠΊ связь Ρ‚Π°Π±Π»ΠΈΡ†. Одна Ρ‚Π°Π±Π»ΠΈΡ†Π° выступаСт ΠΊΠ°ΠΊ главная, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠ°ΠΊ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ Π³Π»Π°Π²Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (Instr ΠΈ Klass), Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½Π° подчинСнная Ρ‚Π°Π±Π»ΠΈΡ†Π° (Ucheniki). Главная ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ.

Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… «ΠœΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Π°Ρ школа» состоит ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… Ρ‚Π°Π±Π»ΠΈΡ†. ΠŸΠ΅Ρ€Π²Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ…. Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Instr ΠΏΡΡ‚ΡŒ ΠΏΠΎΠ»Π΅ΠΉ: Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ инструмСнта (тСкстовый, Ρ€Π°Π·ΠΌΠ΅Ρ€ поля 25), количСство инструмСнтов (числовоС, Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅), количСство ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠ² (числовоС, Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅), Π΄Π°Ρ‚Π° поступлСния инструмСнта (Π΄Π°Ρ‚Π°/врСмя) ΠΈ Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ» (тСкстовый, Ρ€Π°Π·ΠΌΠ΅Ρ€ поля 25). ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ — Π½Π°Π·Π²Π°Π½ΠΈΠ΅ инструмСнта. Π­Ρ‚ΠΈ поля ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ….

Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Ucheniki прСдставлСна информация ΠΎΠ± ΡƒΡ‡Π΅Π½ΠΈΠΊΠ°Ρ…. Π’ Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ поля: ЀИО ΡƒΡ‡Π΅Π½ΠΈΠΊΠ° (тСкстовый, Ρ€Π°Π·ΠΌΠ΅Ρ€ поля 25), Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ класса (тСкстовый, Ρ€Π°Π·ΠΌΠ΅Ρ€ поля 25), Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ инструмСнта (тСкстовый, Ρ€Π°Π·ΠΌΠ΅Ρ€ поля 25), Π΄Π°Ρ‚Π° роТдСния (Π΄Π°Ρ‚Π°/врСмя), домашний адрСс (тСкстовый, Ρ€Π°Π·ΠΌΠ΅Ρ€ поля 25), домашний Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ (числовой, Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅) ΠΈ Π΄Π°Ρ‚Π° поступлСния (Π΄Π°Ρ‚Π°/врСмя). ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ ΠΏΠΎΠ»Π΅ΠΌ являСтся ΠΏΠΎΠ»Π΅ — ЀИО ΡƒΡ‡Π΅Π½ΠΈΠΊΠ°.

Бвязь Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… «ΠΎΠ΄ΠΈΠ½-ΠΊΠΎ-ΠΌΠ½ΠΎΠ³ΠΈΠΌ» осущСствляСтся ΠΏΠΎ ΠΏΠΎΠ»ΡŽ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ инструмСнта. Π’Π°ΠΆΠ½Ρ‹ΠΌ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠΌ для сохранСния цСлостности Π΄Π°Π½Π½Ρ‹Ρ… являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ создании связи Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ обСспСчСниС цСлостности Π΄Π°Π½Π½Ρ‹Ρ…, каскадноС ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΊΠ°ΡΠΊΠ°Π΄Π½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ связанных ΠΏΠΎΠ»Π΅ΠΉ (рис. 1).

Рисунок 1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ связи ΠΌΠ΅ΠΆΠ΄Ρƒ полями Ρ‚Π°Π±Π»ΠΈΡ†.

Π’ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Klass содСрТится информация ΠΎ ΠΊΠ»Π°ΡΡΠ°Ρ…. Π’ Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ поля: Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ класса (тСкстовый, Ρ€Π°Π·ΠΌΠ΅Ρ€ поля 25), ЀИО прСподаватСля (тСкстовый, Ρ€Π°Π·ΠΌΠ΅Ρ€ поля 25), количСство ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠ² (числовой, Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅), срок обучСния (числовой, Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅) ΠΈ Π°ΡƒΠ΄ΠΈΡ‚ория (числовой, Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅). ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ ΠΏΠΎΠ»Π΅ΠΌ являСтся ΠΏΠΎΠ»Π΅ — Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ класса. Бвязь ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Klass ΠΈ Ucheniki осущСствляСтся ΠΏΠΎ ΠΏΠΎΠ»ΡΠΌ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ класса, ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ «ΠΎΠ΄ΠΈΠ½-ΠΊΠΎ-ΠΌΠ½ΠΎΠ³ΠΈΠΌ» (рис. 2).

Рисунок 2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ связи ΠΌΠ΅ΠΆΠ΄Ρƒ полями Ρ‚Π°Π±Π»ΠΈΡ† ПослСдняя Ρ‚Π°Π±Π»ΠΈΡ†Π° Prepod содСрТит поля: ЀИО прСподаватСля (тСкстовоС, Ρ€Π°Π·ΠΌΠ΅Ρ€ поля 25), ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ (тСкстовоС, Ρ€Π°Π·ΠΌΠ΅Ρ€ поля 25), количСство часов Π² Π½Π΅Π΄Π΅Π»ΡŽ (числовоС, Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅), Π΄Π°Ρ‚Π° Π½Π°ΠΉΠΌΠ° (тСкстовоС, Ρ€Π°Π·ΠΌΠ΅Ρ€ поля 10), домашний адрСс (тСкстовоС, Ρ€Π°Π·ΠΌΠ΅Ρ€ поля 10), домашний Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ (числовоС, Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅), Π΄Π°Ρ‚Π° роТдСния (Π΄Π°Ρ‚Π°/врСмя) ΠΈ Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Π° (числовоС, Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ — ЀИО прСподаватСля.

Рисунок 3. Π‘Ρ…Π΅ΠΌΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π°ΠΏΡ‚Π΅ΠΊΠ°.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ΡΡ с Ρ‚ΠΈΠΏΠΎΠΌ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ «ΠΎΠ΄ΠΈΠ½-ΠΊΠΎ-ΠΌΠ½ΠΎΠ³ΠΈΠΌ».

3. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-справочной систСмы «ΠœΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Π°Ρ школа» Π² C++Builder

3.1 Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π Π°Π·Π½Ρ‹Π΅ Π‘Π£Π‘Π” ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΡŽΡ‚ ΠΈ Ρ…ранят свои Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ свойства Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Π» Π±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ всС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, Ρ„Π°ΠΉΠ»Ρ‹, сСрвСры ΠΈ Ρ‚. Π΄., Π³Π΄Π΅ хранится нуТная Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…. Π”Π° ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ постоянно ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Ρ‹Π²Π°Ρ‚ΡŒ, ΠΏΡ€ΠΈ смСнС, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ структуры ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ с ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ псСвдонимы Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. ПсСвдоним (alias) содСрТит всю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ для обСспСчСния доступа ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚Π° информация сообщаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΏΡ€ΠΈ создании. А ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для связи с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ псСвдоним.

Рисунок 4. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ DNS MSh.

Для создания псСвдонима Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ DNS Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Для этого Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΉΡ‚ΠΈ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Π² ΠΏΠ°Π½Π΅Π»ΡŒ управлСния ΠΈ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ администрированиС Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ярлык источники Π΄Π°Π½Π½Ρ‹Ρ… ODBC. Π”Π°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ DNS. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС DNS MSh с Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ Driver do Microsoft Access (рис. 4).

Π’ C++Builder основой Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ BDE (Borland Database Engine). BDE слуТит посрСдником ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…. Он ΠΏΡ€Π΅Π΄ΠΎΡΡ‚авляСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΅Π΄ΠΈΠ½Ρ‹ΠΉ интСрфСйс для Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. BDE ΠΏΠΎ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡƒ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€, Ссли Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Π½Π΅Ρ‚, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ся ODBC. BDE ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ SQL стандартизованный язык запросов, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с SQL-сСрвСрами.

Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈ соСдинСнии с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ADO, Π½ΠΎ Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ возмоТности ADO Π² C++Builder Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΡ… Π½ΠΈΠΆΠ΅, Ρ‡Π΅ΠΌ возмоТности BDE, данная Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»Π°ΡΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² BDE.

КаТдоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²:

Β· ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ — Π½Π°Π±ΠΎΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…: Table, Query ΠΈ Ρ‚. Π΄.

Β· ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ — источник Π΄Π°Π½Π½Ρ‹Ρ…: DataSource.

Β· ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ: DBGrid, DBEdit, DBText ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€.

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ «ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-справочная систСма „ΠœΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Π°Ρ школа“» для связи Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Table ΠΈ Query. Query ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ запроса. А ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Table — Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ….

ПослС создания псСвдонима, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ связи. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² Π΄Π°Π½Π½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ PageControl со Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Win32, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ Ρ‚Ρ€ΠΈ страницы. КаТдая создаваСмая страница являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Ρ‚ΠΈΠΏΠ° TTabSheet. Π­Ρ‚ΠΎ панСль Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ всС ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΎΠΊΠ½Π° рСдактирования ΠΈ Ρ‚. Π΄. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ (свойство Caption) страницы Π² «ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚», «ΠΊΠ»Π°ΡΡΡ‹», «ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΠΈ», «ΡƒΡ‡Π΅Π½ΠΈΠΊΠΈ».

На ΠΏΠ΅Ρ€Π²ΡƒΡŽ страницу PageControl Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Table, DataSource, DBNavigator ΠΈ DBGrid. Бвязь ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ порядкС:

Β· Π’ ΡΠ²ΠΎΠΉΡΡ‚Π²Π°Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Table Π½Π°ΠΉΡ‚ΠΈ свойство DatabaseName ΠΈ Π² Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌ спискС Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ псСвдоним. ΠŸΡ€ΠΈ соСдинСнии с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠœΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Π°Ρ школа — псСвдоним MSh. Π’ ΡΠ²ΠΎΠΉΡΡ‚Π²Π΅ TableName Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Instr).

Β· Π’ Π³Π»Π°Π²Π½ΠΎΠΌ свойствС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° DataSource DataSet Π² Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌ спискС Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Table1.

Β· Π’ ΡΠ²ΠΎΠΉΡΡ‚Π²Π΅ DataSource ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° DBGrid Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ DataSource1.

Β· Π’ ΡΠ²ΠΎΠΉΡΡ‚Π²Π°Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Table Π½Π°ΠΉΡ‚ΠΈ свойство Active ΠΈ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ true.

Β· Для удобства управлСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ DBNavigator. Для этого Π² Π΅Π³ΠΎ Π³Π»Π°Π²Π½ΠΎΠΌ свойствС DataSource Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ DataSource1.

Рисунок 5. БвязываниС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Instr с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

Π’ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ DBGrid появилась выбранная Ρ‚Π°Π±Π»ΠΈΡ†Π°.

На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ страницС PageControl ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Klass.

Рисунок 6. БвязываниС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Klass с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

Π’Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ страницС PageControl ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Prepod. Аналогично ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Ucheniki.

3.2 Поля LookUp

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг — созданиС ΠΏΠΎΠ»Π΅ΠΉ просмотра Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… «ΠœΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Π°Ρ школа».

Π”Π²ΠΎΠΉΠ½Ρ‹ΠΌ Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ ΠΏΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ Table вызываСтся Fields Editor. Π’ Π½Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ всС поля. Для этого послС Ρ‰Π΅Π»Ρ‡ΠΊΠ° ΠΌΡ‹ΡˆΡŒΡŽ ΠΏΠΎ ΠΏΡƒΡΡ‚ΠΎΠΌΡƒ полю Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Add all fields. Π’ΠΎΠΆΠ΅ самоС Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈ Ρ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Table. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΏΠΎΠ»Π΅ΠΉ (Fields Editor) ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ поля, вычисляСмыС поля ΠΈ ΠΏΠΎΠ»Ρ просмотра (Lookup).

Π’ Π΄Π°Π½Π½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π½Π°Π²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Lookup. ПослС Π²Ρ‹Π±ΠΎΡ€Π° New field ΠΈΠ· Π²ΡΠΏΠ»Ρ‹Π²ΡˆΠ΅Π³ΠΎ мСню открываСтся ΠΎΠΊΠ½ΠΎ создания Π½ΠΎΠ²ΠΎΠ³ΠΎ поля. НСобходимо ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя ΠΈ Ρ‚ΠΈΠΏ создаваСмого поля. Π’ Π³Ρ€ΡƒΠΏΠΏΠ΅ Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΎΠΊ Field type Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Lookup. Π’ Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌ спискС Key fields Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ»Π΅ просмотра, Π² ΡΠΏΠΈΡΠΊΠ΅ DataSet Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΅ΡΡ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅, Π΄Π°Π»Π΅Π΅ Π² Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌ спискС Lookup Keys Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅ просматриваСмой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π² Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌ спискС Result Field Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ просматриваСмоС ΠΏΠΎΠ»Π΅.

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅ просмотра Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ ΠšΠ»Π°ΡΡΡ‹ — ΠΏΠΎΠ»Π΅ количСство часов Π² Π½Π΅Π΄Π΅Π»ΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΠΈ. Π’ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎΠ»Π΅ просмотра Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ (рис. 7):

Рисунок 7. Поля просмотра ΠšΡ€ΠΎΠΌΠ΅ ΠΏΠΎΠ»Π΅ΠΉ просмотра Π² ΡΠ°ΠΌΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ Π΄Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° DBLookupListBox. Они Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± Π°ΡƒΠ΄ΠΈΡ‚ориях ΠΈ Π€Π˜Πž ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»Π΅ΠΉ (рис. 8).

Рисунок 8. Поля просмотра Для отобраТСния Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ DBLookupListBox Π½ΡƒΠΆΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π°Π΄ΠΎ внСсти Π΅Π³ΠΎ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ свойство DataSource Ρ€Π°Π²Π½Ρ‹ΠΌ DataSource2, Π° ΡΠ²ΠΎΠΉΡΡ‚Π²ΠΎ DataField Ρ€Π°Π²Π½Ρ‹ΠΌ FIOPrepod. БвяТСм ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ DBLookupListBox1 с DataSource1, установив Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства ListSource ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° DBLookupListBox1 Ρ€Π°Π²Π½Ρ‹ΠΌ DataSource2, свойства KeytField Ρ€Π°Π²Π½Ρ‹ΠΌ FIOPrepod, Π° ΡΠ²ΠΎΠΉΡΡ‚Π²Π° ListField Ρ€Π°Π²Π½Ρ‹ΠΌ Audit. МоТно ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π·Π°Ρ‚Π΅ΠΌ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ.

3.3 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΡ‚Ρ‡Ρ‘Ρ‚ΠΎΠ² ПослС создания ΠΏΠΎΠ»Π΅ΠΉ просмотра ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡŽ ΠΎΡ‚Ρ‡Π΅Ρ‚Π°.

Для создания ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² Π² Π‘++Builder Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° систСма QuickReport ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². QuickReport ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ², состоящих ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° полос. Полоса (band) — это ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΎΡ‚Ρ‡Π΅Ρ‚Π° ΠΈΠ»ΠΈ Ρ€Π°Π·Π΄Π΅Π», содСрТащий Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ тСкст, изобраТСния, Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹. Полоса являСтся ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², вносящих Π² ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ.

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

ΠžΡ‚Ρ‡Π΅Ρ‚ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ «ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-справочная систСма „ΠœΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Π°Ρ школа“» Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ свСдСния ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ucheniki. Для создания ΠΎΡ‚Ρ‡Π΅Ρ‚Π° Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. Π”Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ ряд свойств, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… характСристику ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ:

Β· Print Settings — Π·Π°Π΄Π°Π΅Ρ‚ число ΠΊΠΎΠΏΠΈΠΉ ΠΎΡ‚Ρ‡Π΅Ρ‚Π° ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌΡ‹Ρ… страниц;

Β· Page — Π·Π°Π΄Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ страницы, Π΅Π΅ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΈ ΠΏΠΎΠ»Ρ;

Β· Options — опрСдСляСт Π½Π°Π΄ΠΎ Π»ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½Ρ‚ΠΈΡ‚ΡƒΠ» ΠΏΠ΅Ρ€Π²ΠΎΠΉ страницы ΠΈ Π½ΠΈΠΆΠ½ΠΈΠΉ послСднСй;

Β· Units — Π·Π°Π΄Π°Π΅Ρ‚ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ измСрСния Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² страницы;

Β· Zoom — ΠΌΠ°ΡΡˆΡ‚Π°Π± ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ Π² ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π°Ρ….

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС ΠΎΡ‚Ρ‡Π΅Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅: ΠžΡ‚Ρ‡Π΅Ρ‚ ΠΏΠΎ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Ρƒ ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠ² Π½Π° Π΄Π°Ρ‚Ρƒ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚Π°. Для этого Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ QuickRep Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. Π’ Π΅Π³ΠΎ свойствС Π² Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌ спискС Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ rbTitle, Ρ‚ΠΎΠ³Π΄Π° это Π±ΡƒΠ΄Π΅ полоса Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰Π°ΡΡΡ Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅ ΠΊΠ°ΠΊ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ страницС. На ΠΏΠ΅Ρ€Π²ΡƒΡŽ полосу ΠΎΡ‚Ρ‡Π΅Ρ‚Π° Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ QRLable ΠΈ QRSysDatΠ°. Π’ ΡΠ²ΠΎΠΉΡΡ‚Π²Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° QRSysDatΠ° Data Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ qrsDate для отобраТСния настоящСй Π΄Π°Ρ‚Ρ‹ (рис. 9). Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ полоса ΠΎΡ‚Ρ‡Π΅Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Бвойство QRBand Band Type Π½Π°Π΄ΠΎ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ€Π°Π²Π½Ρ‹ΠΌ rbColumnHeader ΠΈ Π²Π½Π΅ΡΡ‚ΠΈ Π½Π° ΠΏΠΎΠ»ΠΎΡΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ QRLable (рис. 9). Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ полоса ΠΎΡ‚Ρ‡Π΅Ρ‚Π° — ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ QRSubDetail. На Π½Π΅ΠΌ Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Бвязав QRSubDetail с Π½ΡƒΠΆΠ½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ, Π½ΡƒΠΆΠ½ΠΎ внСсти Π½Π° Π½Π΅Ρ‘ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ QRDBText, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π² ΡΠ²ΠΎΠΉΡΡ‚Π²Π΅ DataSet ΠΈ DataField Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈ ΠΏΠΎΠ»Π΅ этой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (рис. 9). ПослСдняя полоса ΠΎΡ‚Ρ‡Π΅Ρ‚Π° — суммарная. На Π½Π΅ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ Π·Π° Π΄Π΅Π½ΡŒ ΠΏΠΎ Π»Π΅ΠΊΠ°Ρ€ΡΡ‚Π²Π°ΠΌ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ сколько лСкарств ΠΊΡƒΠΏΠ»Π΅Π½ΠΎ ΠΈ Π·Π°ΠΊΠ°Π·Π°Π½ΠΎ. Π”Π°Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ. На ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. Π’ Π½Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Для отобраТСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ полосС, свойство ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Band Type Ρ€Π°Π²Π½ΠΎ rbSummary Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ QRRichText. Π•Π³ΠΎ Π³Π»Π°Π²Π½Ρ‹ΠΌ свойством являСтся ParentRichEdit. Π’ ΡΡ‚ΠΎΠΌ свойствС Π² Π½ΠΈΡΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌ спискС Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ RichEdit1. Π’Π΅ΠΏΠ΅Ρ€ΡŒ вводимая Π² RichEdit информация Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅. ПослСдним ΡˆΡ‚Ρ€ΠΈΡ…ΠΎΠΌ ΠΎΡ‚Ρ‡Π΅Ρ‚Π° являСтся ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ страницы. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° QRSysDatΠ°, Π² ΡΠ²ΠΎΠΉΡΡ‚Π²Π΅ Data Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ qrsPageNumber. Π€ΠΎΡ€ΠΌΠ° ΠΎΡ‚Ρ‡Π΅Ρ‚Π° Π³ΠΎΡ‚ΠΎΠ²Π°. Π­Ρ‚ΠΎ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ„ΠΎΡ€ΠΌΠ° ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΅Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ свойство Visible Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ€Π°Π²Π½ΡΡ‚ΡŒΡΡ true. На Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹: MainMenu, FontDialog, RichEdit (Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ). Π’ ΠΌΠ΅Π½ΡŽ ΠΌΠΎΠΆΠ½ΠΎ ввСсти ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‹: ΡˆΡ€ΠΈΡ„Ρ‚, просмотр ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ. Π’ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ просмотр вводится:

QuickRep1->Preview ();

Π’ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ: QuickRep1->Print ();

Π’ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΡˆΡ€ΠΈΡ„Ρ‚: FontDialog1->Execute ();

RichEdit1->SelAttributes->Assign (FontDialog1->Font);

RichEdit1->SetFocus ();

Π­Ρ‚ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ обСспСчат минимальноС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΎΠΊΠ½Π΅ RichEdit.

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

Рисунок 9. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Π°

3.4 Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ записСй Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ

c++builder access Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ ΠžΡΡ‚Π°Π»ΠΎΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ записи Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ. Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ классы Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Edit (ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΠΎΠ»Π΅ — 5 ΡˆΡ‚ΡƒΠΊ), Label — 6 ΡˆΡ‚ΡƒΠΊ ΠΈ Button, ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π² Π΅Ρ‘ Π² ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ» (рис. 12).

К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ запись Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ. Π’ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎ Π²ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

{Table2->Filtered=false;

Table2->Insert ();

Table2NaimKLas->AsString=Edit10->Text;

Table2FIOPrepod->AsString=Edit11->Text;

Table2KolUch->AsString=Edit12->Text;

Table2SrokObuch->AsString=Edit14->Text;

Table2Audit->AsString=Edit13->Text;

Table2->Post () ;}

Insert () позволяСт Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ запись Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, Π½ΠΎ ΠΏΠΎΡΠ»Π΅ пСрСсылки Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΎΠΊΠΎΠ½ рСдактирования Π² ΠΏΠΎΠ»Ρ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Post ().

Рисунок 12. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ добавлСния записи Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠžΡΡ‚Π°Π»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-справочной систСмой ΠœΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Π°Ρ школа Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠΈ прилоТСния ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ понятного интСрфСйса. Для этого ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Label, Panel, Menu, PopupMenu ΠΈ Ρ‚. Π΄.

3.5 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ запросов

Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Table ΠΈ Query. ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-справочной систСмы «ΠœΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Π°Ρ школа» Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ»Π°ΡΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Table Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Instr ΠΏΠΎ ΠΏΠΎΠ»ΡΠΌ: Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ инструмСнта, количСство ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠ², Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ» инструмСнта. Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒΡΡ свойствами Filtered, Filter ΠΈ FilterOptions. Бвойство Filtered Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΈΠ»ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ использованиС Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°. А ΡΠ°ΠΌ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ записываСтся Π² ΡΠ²ΠΎΠΉΡΡ‚Π²ΠΎ Filter Π² Π²ΠΈΠ΄Π΅ строки, содСрТащСй ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ограничСния Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ.

На Ρ„ΠΎΡ€ΠΌΡƒ помСщаСтся ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Edit ΠΈ Button, RadioGroup c ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ RadioButton (Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡ… 3). Бвойство ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Button Caption пСрСимСновываСтся Π² «Π½Π°ΠΉΡ‚ΠΈ». Бвойство Text ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Edit1 Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ пустым. Бвойство ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° RadioButton1 Caption пСрСимСновываСтся Π² Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ инструмСнта, RadioButton2 ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ Π² ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠ², RadioButton3 — Π² Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ» инструмСнта. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ Π² Edit1 количСство ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠ² — 2 ΠΈ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π½Π°ΠΉΡ‚ΠΈ» Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ (рис. 10). Для этого Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события OnClick ΠΊΠ½ΠΎΠΏΠΊΠΈ «Π½Π°ΠΉΡ‚ΠΈ» Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

if (RadioButton1->Checked==true)

{Table1->Active=false;

Table1->Filtered=false;

Table1->Filter="NameIns='" +Edit1->Text+" '" ;

Table1->Active=true;

Table1->Filtered=true;}

if (RadioButton2->Checked==true)

{Table1->Active=false;

Table1->Filtered=false;

Table1->Filter="KvUch='" +Edit1->Text+" '" ;

Table1->Active=true;

Table1->Filtered=true;}

if (RadioButton3->Checked==true)

{Table1->Active=false;

Table1->Filtered=false;

Table1->Filter="Artik='" +Edit1->Text+" '" ;

Table1->Active=true;

Table1->Filtered=true;}

Рисунок 10. Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Как Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅ поиск ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ парамСтричСских запросов.

Для создания запроса ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Query. Он ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ свойств ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΡ… с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ Table, Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ вмСсто Table. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ прСимущСства Query — Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ запросы Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ SQL. ОсновноС свойство Query — это SQL, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ Ρ‚ΠΈΠΏ TStrings. Π­Ρ‚ΠΎ список строк, содСрТащих запросы SQL. Π’ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ проСктирования прилоТСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ запрос. Но Π΄Π°Π»Π΅Π΅ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ выполнСния прилоТСния свойство SQL ΠΌΠΎΠΆΠ΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ. Бвойства Table Name Π² Query Π½Π΅Ρ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π°, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ вСдСтся Ρ€Π°Π±ΠΎΡ‚Π° указываСтся Π² Π·Π°ΠΏΡ€ΠΎΡΠ°Ρ… SQL. Запрос, заносимый Π² Π½Π°Ρ‡Π°Π»Π΅ проСктирования Π² SQL ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄: Select * from Prepod.

Запрос Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° называСтся статистичСским запросом. ΠšΡ€ΠΎΠΌΠ΅ статистичСских запросов Query позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ динамичСскиС запросы с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ вмСсто ΠΈΠΌΠ΅Π½ Ρ‚Π°Π±Π»ΠΈΡ†, ΠΈΠΌΠ΅Π½ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ЗначСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² опрСдСляСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ тСкст самого запроса, ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ Π² Π·Π°ΠΏΡ€ΠΎΡΠ΅ с Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ΠΌ, ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ для Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅ лСкарства ΠΏΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡŽ, запрос Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄:

Select * from Prepod Where (FIOPrepod=:Fio)

Если Π±Ρ‹ Ρ‚Π°ΠΊΠΎΠΉ запрос Π±Ρ‹Π» Π²Π²Π΅Π΄Π΅Π½ Π² ΡΠ²ΠΎΠΉΡΡ‚Π²ΠΎ SQL ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Query, Ρ‚ΠΎ Π² ΡΠ²ΠΎΠΉΡΡ‚Π²Π΅ Params откроСтся Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ со ΡΠΏΠΈΡΠΊΠΎΠΌ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² Π·Π²Π°ΠΏΡ€ΠΎΡΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС это Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π’Π’. ΠŸΡ€ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² ΠΈΠ½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ свойства ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²:

Β· DataType — Ρ‚ΠΈΠΏ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°;

Β· Name — имя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°;

Β· ParamType — Ρ‚ΠΈΠΏ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌ, Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹ΠΌ Π½Π° ΡΠ΅Ρ€Π²Π΅Ρ€Π΅);

Β· Value — Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

Β· Type подсвойство Value — Ρ‚ΠΈΠΏ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ доступ ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ выполнСния прилоТСния осущСствляСтся Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ доступу ΠΊ ΠΏΠΎΠ»ΡΠΌ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ…. Бвойство Params являСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° ΠΌΠ°ΡΡΠΈΠ² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ‚ΠΈΠΏΠ° TParam, ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡƒ Ρ‡Π΅Ρ€Π΅Π· Π΅Π³ΠΎ свойство Items. ΠšΡ€ΠΎΠΌΠ΅ свойства Items Ρƒ Params Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ свойство — ParamValues. Он ΠΏΡ€Π΅Π΄ΡΡ‚авляСт собой массив Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ‚ΠΈΠΏΠ° Variant. Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ индСкса Π² ΡΡ‚ΠΎ свойство пСрСдаСтся имя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΈΠ»ΠΈ нСсколько ΠΈΠΌΠ΅Π½, раздСляСмых Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ с Π·Π°ΠΏΡΡ‚ΠΎΠΉ. Π”Ρ€ΡƒΠ³ΠΎΠΉ способ обращСния ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π΅ Π½Π°Π΄ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΈΡ… ΠΈΠ½Π΄Π΅ΠΊΡΡ‹ — использованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ParamByName ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Query.

Для построСния запроса Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-справочной систСмС «ΠΠΏΡ‚Π΅ΠΊΠ°» использовались ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹: Query, DataSource. Π’ ΡΠ²ΠΎΠΉΡΡ‚Π²Π°Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Query Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ свойство DataSource=DataSource1 (соСдинСнным с Table1), DatabaseName Ρ€Π°Π²Π½Ρ‹ΠΌ apteka. ΠœΡ‹ ΠΏΠΎΠ΄ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠ»ΠΈ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… apteka Ρ‡Π΅Ρ€Π΅Π· Query. Π£ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° DataSource свойство DataSource ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π²Π½Ρ‹ΠΌ Query1. Если ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ запрос Π±ΡƒΠ΄Π΅ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ ΠΏΠΎ ΠΏΠΎΠ»ΡŽ Ρ„ΠΎΡ€ΠΌΠ° выпуска, Ρ‚ΠΎ Π² ΡΠΎΠ±Ρ‹Ρ‚ΠΈΠΈ OnClick ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ запрос, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ внСсти ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄:

Query1->Close ();

Query1->SQL->Clear ();

if (RadioButton7->Checked==true)

{Query1->SQL->Add («Select * from Prepod Where (FIOPrepod=:Fio)»);

Query1->Params->ParamValues[" Fio" ]=Edit3->Text;}

DBGrid3->DataSource=DataSource6;

Query1->Open ();

ΠœΠ΅Π½ΡΡ‚ΡŒ тСкст ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π² Query ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅. Π”Π°Π»Π΅Π΅ слСдуСт ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π»ΠΈΠ½ΠΈΠΈ TStrings ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Query. ΠŸΠΎΡ‚ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ запрос ΠΈ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ПослС выполнСния запроса Π² DBGrid появится Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ (рис. 11).

Рисунок 11. ДинамичСский запрос с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ ΡΡ€Ρƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ люди стрСмятся Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, поэтому ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-справочная систСма «ΠœΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Π°Ρ школа» Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π° для ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… школ. Данная справочная систСма позволяСт ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰Π΅ΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ.

Для создания ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-справочной систСмы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Microsoft Access ΠΈ. Π‘Π°ΠΌΠ° Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… конструируСтся Π² Microsoft Access. Она состоит ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… Ρ‚Π°Π±Π»ΠΈΡ†, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… прСдставлСна информация ΠΎ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Слях, ΡƒΡ‡Π΅Π½ΠΈΠΊΠ°Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… инструмСнтах ΠΈ ΠΊΠ»Π°ΡΡΠ°Ρ…. Π’Π°Π±Π»ΠΈΡ†Ρ‹ связаны ΠΌΠ΅ΠΆΠ΄Ρƒ собой связью Ρ‚ΠΈΠΏΠ° «ΠΎΠ΄ΠΈΠ½-ΠΊΠΎ-ΠΌΠ½ΠΎΠ³ΠΈΠΌ».

Π‘Π°ΠΌΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ создаСтся Π² Borland C++Builder, состоит ΠΈΠ· Π΄Π²ΡƒΡ… Ρ„ΠΎΡ€ΠΌ: главная Ρ„ΠΎΡ€ΠΌΠ° с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ записСй ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Π°. На Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. На ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ присутствуСт Ρ‚Π°Π±Π»ΠΈΡ†Π° с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ поиск. Поиск выполняСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ запросов ΠΈ Ρ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π’Π°ΠΊΠΆΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-справочная систСма позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΏΠΎ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Ρƒ ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠ² ΠΈ ΠΈΡ… ΡƒΡΠΏΠ΅Π²Π°Π΅ΠΌΠΎΡΡ‚ΠΈ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ± ΡƒΡΠΏΠ΅Π²Π°Π΅ΠΌΠΎΡΡ‚ΠΈ. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ интСрфСйс.

1. ΠΡ€Ρ…Π°Π½Π³Π΅Π»ΡŒΡΠΊΠΈΠΉ А. Π―. Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΎΠ΅ пособиС. Книга 2. ΠšΠ»Π°ΡΡΡ‹ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. — Πœ.: Π‘ΠΈΠ½ΠΎΠΌ-ΠŸΡ€Π΅ΡΡ, 2004 Π³. — 528 с.: ΠΈΠ».

2. ΠΡ€Ρ…Π°Π½Π³Π΅Π»ΡŒΡΠΊΠΈΠΉ А. Π―. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π‘++Builder 6. — Πœ.: Π‘Π˜ΠΠžΠœ, 2002 Π³. — 1152с.: ΠΈΠ».

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ «Π›ΠΈΡΡ‚ΠΈΠ½Π³ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹»

Unit1.cpp

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

#include

#pragma hdrstop

#include «Unit1.h»

#include «Unit2.h»

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

#pragma package (smart_init)

#pragma resource «*.dfm»

TForm1 *Form1;

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

__fastcall TForm1: TForm1(TComponent* Owner)

: TForm (Owner)

{

}

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

void __fastcall TForm1: Button1Click (TObject *Sender)

{ if (RadioButton1->Checked==true)

{Table1->Active=false;

Table1->Filtered=false;

Table1->Filter="NameIns='" +Edit1->Text+" '" ;

Table1->Active=true;

Table1->Filtered=true;

}

if (RadioButton2->Checked==true)

{Table1->Active=false;

Table1->Filtered=false;

Table1->Filter="KvUch='" +Edit1->Text+" '" ;

Table1->Active=true;

Table1->Filtered=true;

}

if (RadioButton3->Checked==true)

{Table1->Active=false;

Table1->Filtered=false;

Table1->Filter="Artik='" +Edit1->Text+" '" ;

Table1->Active=true;

Table1->Filtered=true;

}

}

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

void __fastcall TForm1: Button2Click (TObject *Sender)

{if (RadioButton4->Checked==true)

{Table2->Active=false;

Table2->Filtered=false;

Table2->Filter="NaimKLas='" +Edit2->Text+" '" ;

Table2->Active=true;

Table2->Filtered=true;

}

if (RadioButton5->Checked==true)

{Table2->Active=false;

Table2->Filtered=false;

Table2->Filter="FIOPrepod='" +Edit2->Text+" '" ;

Table2->Active=true;

Table2->Filtered=true;

}

if (RadioButton6->Checked==true)

{Table2->Active=false;

Table2->Filtered=false;

Table2->Filter="Audit='" +Edit2->Text+" '" ;

Table2->Active=true;

Table2->Filtered=true;

}

}

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

void __fastcall TForm1: Button4Click (TObject *Sender)

{

Form2->QuickRep1->Preview ();

}

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

void __fastcall TForm1: Button3Click (TObject *Sender)

{

Form2->QuickRep1->Print ();

}

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

void __fastcall TForm1: Button5Click (TObject *Sender)

{ Query1->Close ();

Query1->SQL->Clear ();

if (RadioButton7->Checked==true)

{Query1->SQL->Add («Select * from Prepod Where (FIOPrepod=:Fio)»);

Query1->Params->ParamValues[" Fio" ]=Edit3->Text;}

if (RadioButton8->Checked==true)

{Query1->SQL->Add («Select * from Prepod Where (KvCHasovNed=:Pr)»);

Query1->Params->ParamValues[" Pr" ]=Edit3->Text;}

if (RadioButton9->Checked==true)

{Query1->SQL->Add («Select * from Prepod Where (Zarplata=:Zp)»);

Query1->Params->ParamValues[" Zp" ]=Edit3->Text;}

DBGrid3->DataSource=DataSource6;

Query1->Open ();

}

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

void __fastcall TForm1: Button6Click (TObject *Sender)

{ Query2->Close ();

Query2->SQL->Clear ();

if (RadioButton10->Checked==true)

{Query2->SQL->Add («Select * from Ucheniki Where (FIOUch=:Fio)»);

Query2->Params->ParamValues[" Fio" ]=Edit4->Text;}

if (RadioButton11->Checked==true)

{Query2->SQL->Add («Select * from Ucheniki Where (NaimKlas=:Pr)»);

Query2->Params->ParamValues[" Pr" ]=Edit4->Text;}

if (RadioButton12->Checked==true)

{Query2->SQL->Add («Select * from Ucheniki Where (NameInstr=:Zp)»);

Query2->Params->ParamValues[" Zp" ]=Edit4->Text;}

DBGrid4->DataSource=DataSource5;

Query2->Open ();

}

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

void __fastcall TForm1: Button7Click (TObject *Sender)

{Table1->Filtered=false;

Table1->Insert ();

Table1NameIns->AsString=Edit5->Text;

Table1KolvoInstr->AsString=Edit6->Text;

Table1KvUch->AsString=Edit7->Text;

Table1DataPostInstr->AsString=Edit8->Text;

Table1Artik->AsString=Edit9->Text;

Table1->Post () ;

}

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

void __fastcall TForm1: Button8Click (TObject *Sender)

{Table2->Filtered=false;

Table2->Insert ();

Table2NaimKLas->AsString=Edit10->Text;

Table2FIOPrepod->AsString=Edit11->Text;

Table2KolUch->AsString=Edit12->Text;

Table2SrokObuch->AsString=Edit14->Text;

Table2Audit->AsString=Edit13->Text;

Table2->Post () ;

}

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

void __fastcall TForm1: Button9Click (TObject *Sender)

{Query1->Close ();

DBGrid3->DataSource=DataSource3;

Table3->Active=true;

Table3->Insert ();

Table3FIOPrepod->AsString=Edit15->Text;

Table3Predmet->AsString=Edit16->Text;

Table3KvCHasovNed->AsString=Edit17->Text;

Table3DataNaima->AsString=Edit18->Text;

Table3DomAdress->AsString=Edit19->Text;

Table3DomTel->AsString=Edit20->Text;

Table3DataRogd->AsString=Edit21->Text;

Table3Zarplata->AsString=Edit22->Text;

Table3->Post () ;

}

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

void __fastcall TForm1: Button10Click (TObject *Sender)

{Query2->Close ();

DBGrid4->DataSource=DataSource4;

Table4->Active=true;

Table4->Insert ();

Table4FioUch->AsString=Edit23->Text;

Table4NaimKLas->AsString=Edit24->Text;

Table4NameInstr->AsString=Edit25->Text;

Table4DataRogd->AsString=Edit26->Text;

Table4DomAdress->AsString=Edit27->Text;

Table4DomTel->AsString=Edit29->Text;

Table4DataPost->AsString=Edit28->Text;

Table4->Post () ;

}

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

Unit2.cpp

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

#include

#pragma hdrstop

#include «Unit2.h»

#include «Unit1.h»

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

#pragma package (smart_init)

#pragma resource «*.dfm»

TForm2 *Form2;

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

__fastcall TForm2: TForm2(TComponent* Owner)

: TForm (Owner)

{

}

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

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