Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Microsoft Visual C++ ΠΈ MFC. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Windows 95 ΠΈ Windows NT. Π§Π°ΡΡ‚ΡŒ 2Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 49

Автор АлСксандр Π€Ρ€ΠΎΠ»ΠΎΠ²

Если пСрвая строка Ρ„Π°ΠΉΠ»Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π½Π΅ содСрТит ΠΈΠΌΠ΅Π½Π° ΠΏΠΎΠ»Π΅ΠΉ, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Column Name Header Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½. НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ Guess Π² Π³Ρ€ΡƒΠΏΠΏΠ΅ Columns. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° установки ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΠΎΠ»Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ присвоит ΠΈΠΌ ΠΈΠΌΠ΅Π½Π° F1, F2, F3 ΠΈ Ρ‚. Π΄. Π’ послСдствии Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ названия ΠΏΠΎΠ»Π΅ΠΉ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² ΠΈΡ… Π² ΠΏΠΎΠ»Π΅ Name ΠΈ Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡƒ Modify.

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ всС Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΏΠ°Π½Π΅Π»ΠΈ прилоТСния 32bit ODBC. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Data Source появится Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ источник Π΄Π°Π½Π½Ρ‹Ρ… – Address Pad (Microsoft Text Driver (*.txt; *.csv)).

Π’ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ TEXTBASE, содСрТащСм Ρ„Π°ΠΉΠ» Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… TextBase.txt появится Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» – schema.ini . Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… (Π² нашСм случаС ΠΎΠ± СдинствСнной Ρ‚Π°Π±Π»ΠΈΡ†Π΅) Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ характСристики источника Π΄Π°Π½Π½Ρ‹Ρ… Address Pad Ρ‡Π΅Ρ€Π΅Π· этот Ρ„Π°ΠΉΠ», Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 32bit ODBC ΠΈΠ· Control Panel. Для этого запуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 32bit ODBC, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΈΠ· списка имя источника ΠΈ Π½Π°ΠΆΠΌΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Setup. ΠžΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ΡΡ панСль ODBC Text Setup, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ всСми ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

Листинг 5.2. Π€Π°ΠΉΠ» schema.ini

[textbase.txt]

ColNameHeader=True

Format=Delimited(;)

MaxScanRows=25

CharacterSet=ANSI

Col1=NAME Char Width 255

Col2=ADDRESS Char Width 255

Col3=PRIORITY Integer

Col4=PHONE Char Width 255

MFC AppWizard ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

Π‘Π°ΠΌΡ‹ΠΉ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ ΠΏΡƒΡ‚ΡŒ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² использовании MFC AppWizard. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ MFC AppWizard Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ быстро ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ записи Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ дальнСйшСм Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ шаблон прилоТСния, ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ MFC AppWizard, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ срСдств MFC ClassWizard ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… записСй Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, поиск Π½ΡƒΠΆΠ½Ρ‹Ρ… записСй ΠΈ Ρ‚. Π΄.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, присвоив Π΅ΠΌΡƒ имя Dater. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ для создания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° срСдства MFC AppWizard. AppWizard ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ Π²Π°ΠΌ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ряд ΠΏΠ°Π½Π΅Π»Π΅ΠΉ, пСрСчислив Π² Π½ΠΈΡ… свойства ΠΈ характСристики создаваСмого прилоТСния.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ½ΠΈΠ΅, Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ шагС опрСдСлСния свойств прилоТСния Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ для Π½Π΅Π³ΠΎ ΠΎΠ΄Π½ΠΎΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ интСрфСйс. На Π²Ρ‚ΠΎΡ€ΠΎΠΌ шагС MFC AppWizard запросит Ρƒ вас Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ диалоговая панСль MFC AppWizard прСдставлСна Π½Π°ΠΌΠΈ Π½Π° рисункС 5.6.

Рис. 5.6. Диалоговая панСль MFC AppWizard – Step 2 of 6


ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ с зависимой фиксациСй, располоТСнный Π² ΠΏΠ°Π½Π΅Π»ΠΈ MFC AppWizard – Step 2 of 6, опрСдСляСт Π½Π° ΠΊΠ°ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ обСспСчСна ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΊΡ€Π°Ρ‚ΠΊΠΎ описываСт этот ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ.

ПолоТСниС ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ ОписаниС None Π Π°Π±ΠΎΡ‚Π° с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ прСдусматриваСтся Header files only К Ρ„Π°ΠΉΠ»Π°Π°ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Ρ„Π°ΠΉΠ»Ρ‹ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ², Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для использования срСдств доступа ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… Database view without file support ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ΡΡ Ρ€Π°Π±ΠΎΡ‚Π° с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ позволяСт ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΠΊΠ½Π΅ просмотра. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². МСню File Ρ‚Π°ΠΊΠΎΠ³ΠΎ прилоТСния содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ строки, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ строку Exit. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Open ΠΈ Save (ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ…) Π² мСню File ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Database view with file support ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ΡΡ Ρ€Π°Π±ΠΎΡ‚Π° с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ позволяСт ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΠΊΠ½Π΅ просмотра. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ Ρ€Π°Π±ΠΎΡ‚Π° прилоТСния с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΠ΅ мСню File

ΠœΡ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ для нашСго прилоТСния Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π±Π΅Π· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ². ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Π½Π°Π΄ΠΎ пСрСвСсти Π² ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Database view without file support.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°Π΄ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ MFC AppWizard ΠΊΠ°ΠΊΡƒΡŽ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΊΠ°ΠΊΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΠΈΡ†Ρƒ ΠΈΠ· Π½Π΅Π΅ ΠΌΡ‹ ΠΆΠ΅Π»Π°Π΅ΠΌ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π² нашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Для этого ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Data Source, Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°ΡΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π² Π΄ΠΈΠ°Π°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ MFC AppWizard – Step 2 of 6.

На экранС появится диалоговая панСль Database Options (рис. 5.7). Π’ Π½Π΅ΠΉ находится ряд ΠΎΡ€Π³Π°Π½ΠΎΠ² управлСния, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π½Π° Ρ‚Ρ€ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ – Datasource, Recordset type ΠΈ Advanced.

Рис. 5.7. Диалоговая панСль Database Options


Π“Ρ€ΡƒΠΏΠΏΠ° Datasource ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Π²Ρ‹Π±ΠΎΡ€Π° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (источника Π΄Π°Π½Π½Ρ‹Ρ…). Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для доступа ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π»ΠΈΠ±ΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ ODBC, Π»ΠΈΠ±ΠΎ срСдства DAO. Π’ этой ΠΊΠ½ΠΈΠ³Π΅ ΠΌΡ‹ рассмотрим использованиС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² ODBC. ΠŸΠ΅Ρ€Π΅Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Datasource Π² ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ODBC. Из списка, располоТСнного справой стороны ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ ODBC Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ имя источника Π΄Π°Π½Π½Ρ‹Ρ…. Π’ нашСм случаС Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ строку Address Pad.

Π’ Π³Ρ€ΡƒΠΏΠΏΠ΅ Recordset type отобраТаСтся ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ с зависимой фиксациСй. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Snapshot, Dynaset ΠΈΠ»ΠΈ Table. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ этот ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Recordset type ОписаниС Snapshot Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для прСдставлСния статичСских Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния Dynaset ΠŸΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…, прСдставлСнная источником Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния. Π’Π°ΠΊΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ссли Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅

Для нашСго прилоТСния Dater ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ самый простой ΠΌΠ΅Ρ‚ΠΎΠ΄ доступа ΠΊ записям Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, поэтому ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Recordset type Π² ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Snapshot.

Π’ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ Advanced Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Detect dirty columns. Π­Ρ‚ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ срСдствами DAO ΠΈ Π² этой ΠΊΠ½ΠΈΠ³Π΅ Π½Π΅ рассматриваСтся.

Когда панСль Database Options Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π°, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ OK. На экранС появится диалоговая панСль Select Database Tables (рис. 5.8). Из Π½Π΅Π΅ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ· этой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ нашим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π’ нашСм случаС Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… (ΠΈΠ»ΠΈ источник Π΄Π°Π½Π½Ρ‹Ρ…) ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, поэтому Π²Ρ‹Π±ΠΎΡ€ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π½Π΅ составит Ρ‚Ρ€ΡƒΠ΄Π°. ΠŸΡ€ΠΎΡΡ‚ΠΎ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΌΡ‹ΡˆΡŒΡŽ ΠΏΠΎ строку TEXTBASE.TXT ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ OK.

Рис. 5.8. Диалоговая панСль Select Database Tables


Если ваша Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… содСрТит нСсколько Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½ΠΈΠΌΠΈ со всСми, Ρ‚ΠΎ ΡƒΠΆΠ΅ послС создания прилоТСния срСдствами MFC AppWizard, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ClassWizard, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с нСсколькими Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΡ‹ рассмотрим Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠ½ΠΈΠ³ сСрии β€œΠ‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° систСмного программиста”.

ПослС Π²Ρ‹Π±ΠΎΡ€Π° источника Π΄Π°Π½Π½Ρ‹Ρ…, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ созданиС прилоТСния ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Finish. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Π·Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΏΠ°Π½Π΅Π»ΠΈ MFC AppWizard. Π’ этом случаС Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΏΠ°Π½Π΅Π»ΠΈ MFC AppWizard, оставляя всС прСдлоТСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ЕдинствСнноС, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ для упрощСния прилоТСния, это ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС особСнности прилоТСния, связанныС с ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒΡŽ. Для этого ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Print and print preview Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ MFC AppWizard – Step 4 of 6.

Когда Π²Ρ‹ Π΄ΠΎΠΉΠ΄Π΅Ρ‚Π΅ Π΄ΠΎ послСднСй ΠΏΠ°Π½Π΅Π»ΠΈ MFC AppWizard – Step 6 of 6 (рис. 5.9) Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ классы ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Dater.

Рис. 5.9. Диалоговая панСль MFC AppWizard – Step 6 of 6

ΠžΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ΡΡ, Π² ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅ ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡Π°Π»ΠΈ Ρ€Π°Π½Π΅Π΅, класс ΠΎΠΊΠ½Π° просмотра прилоТСния Dater наслСдуСтся ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса CRecordView, ΠΈ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ класс ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ записи Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ² срСди Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠ·ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π½Π°ΠΌΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎΡ‚ класс наслСдуСтся ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса CRecordset.

Π”ΠΎΠ²ΠΎΠ΄ΠΊΠ° прилоТСния

ВзглянитС Π½Π° рСсурсы прилоТСния Dater. Для этого ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ страницу ResourceView Π² ΠΎΠΊΠ½Π΅ Project Workspace.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° шаблон Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ IDD_DATER_FORM (рис. 5.10). Π­Ρ‚ΠΎΡ‚ шаблон ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠΊΠ½ΠΎΠΌ просмотра, созданным Π½Π° основС класса CRecordView. Окно просмотра содСрТит Π² сСбС ΠΎΡ€Π³Π°Π½Ρ‹ управлСния, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² шаблонС Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ.

Рис. 5.10. Шаблон диалоговой панСли IDD_DATER_FORM


Π‘Ρ€Π°Π·Ρƒ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ MFC AppWizard создаст ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π² этом шаблонС Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ ΠΎΠ΄Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ тСкстовая строка TODO: Place form controls on this dialog, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰Π°Ρ Π²Π°ΠΌ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π½Π° Π½Π΅ΠΉ ΠΎΡ€Π³Π°Π½Ρ‹ управлСния.

Π£Π΄Π°Π»ΠΈΡ‚Π΅ с шаблона эту строку, Π° Π·Π°Ρ‚Π΅ΠΌ создайтС Π½Π° Π½Π΅ΠΉ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ тСкстовых Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ поля Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Address Pad. ΠŸΡ€ΠΈΡΠ²ΠΎΠΉΡ‚Π΅ ΠΈΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ IDC_NAME, IDC_ADDRESS, IDC_PHONE ΠΈ IDC_PRIORITY. Около тСкстовых Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² помСститС ΠΊΡ€Π°Ρ‚ΠΊΠΈΠ΅ строки описания β€” Name, e-Mail, Phone ΠΈ Priority. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ измСнСния Π² Ρ„Π°ΠΉΠ»Π΅ рСсурсов. Π”ΠΎΡ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ шаблон Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ прСдставлСн Π½Π° рисункС 5.11.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠ½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π² создании прилоТСния Dater β€” ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ MFC ClassWizard ΠΊ полям шаблона Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ IDD_DATER_FORM ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ поля Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….