Logo GenDocs.ru

Поиск по сайту:  

Загрузка...

Курс лекции по дисциплине Современные программные средства - файл Программирование с DAO и ADO.doc


Загрузка...
Курс лекции по дисциплине Современные программные средства
скачать (21152.1 kb.)

Доступные файлы (590):

Задание.doc21kb.05.02.2002 00:56скачать
Лекция_1.doc49kb.04.02.2004 09:27скачать
ЗАДАНИЕ.DOC37kb.13.02.2007 12:28скачать
Программирование с DAO и ADO.doc426kb.13.02.2007 17:20скачать
CRE_INFO.GID
CRE_INFO.HLP
Helpscr.doc213kb.11.09.1998 08:50скачать
README.TXT1kb.27.09.1998 08:05скачать
задание СПС лаб4.doc24kb.16.03.2005 12:15скачать
Задание.doc23kb.17.03.2006 16:06скачать
cube.swf
snegovic.swf
bubbles.fla
bubbles_Scene 1.swf
bubbles.swf
Animate-Shape Tween.fla
cube.fla
Dirt Gear.fla
Globe.fla
Sun Town.fla
Theater.fla
Writing Pen.fla
3d_animat.asp
3d_animat.swf
ani_but.asp
ani_but.swf
faq.asp
fla.asp
fonts.asp
f_viewer.swf
mail-list.asp
optimization.asp
player.swf
practic.swf
protect.asp
ruhelp.asp
rut.gif1kb.21.05.2000 22:16скачать
shortcuts.asp
sounds.asp
ssavers.asp
textfield.asp
trigger.asp
trigger.swf
2 Рисование.fla
5 Работа с текстом.fla
flash4_1_D.doc160kb.01.09.2001 06:27скачать
2 Слои.fla
flash4_2_layers.doc143kb.01.09.2001 06:27скачать
Имитация увеличительного стекла.doc32kb.05.04.2001 07:31скачать
3 Символы и Копии.fla
flash4_3_simbol.doc99kb.01.09.2001 06:29скачать
Skywriting.fla
Skywriting.swf
4 Кнопки.fla
5 Звуки.fla
flash4_5_sound.doc106kb.01.09.2001 06:30скачать
8 Анимация.fla
8 Анимация.swf
flash4_6_animation.doc98kb.01.09.2001 06:31скачать
Основы анимации.aviскачать
Macromedia Flash 5 (Лекция 1).doc217kb.19.11.2002 18:47скачать
test.swf
Вставка Flash.doc30kb.28.04.2004 15:17скачать
Вставка Flash-роликов в HTML.doc73kb.28.04.2004 11:10скачать
Использование SWiSH в HTML.doc80kb.28.04.2004 15:28скачать
Как вставить Flash в HTML.doc28kb.28.04.2004 15:40скачать
Код вставки SWF файла Flash MX.doc24kb.28.04.2004 15:54скачать
Am179.gif31kb.05.04.1998 14:42скачать
ANATOMY3.GIF12kb.20.02.1998 18:25скачать
ANATOMY5.GIF7kb.20.02.1998 18:23скачать
ANATOMY7.GIF10kb.20.02.1998 18:26скачать
anieyes.gif50kb.11.10.1998 03:43скачать
Aniheart.gif5kb.05.04.1998 14:46скачать
BAT.GIF13kb.20.02.1998 08:37скачать
BIRD2.GIF4kb.20.02.1998 08:23скачать
BULL1.GIF44kb.20.02.1998 08:25скачать
BULL.GIF15kb.20.02.1998 08:23скачать
BUTTE~56.GIF34kb.20.02.1998 08:18скачать
BUTTE~58.GIF51kb.22.02.1998 02:44скачать
CAT10.GIF25kb.20.02.1998 08:06скачать
CAT13.GIF20kb.20.02.1998 17:02скачать
CAT14.GIF9kb.20.02.1998 07:56скачать
CAT2.GIF28kb.20.02.1998 08:11скачать
CAT8.GIF12kb.20.02.1998 17:03скачать
CAT9.GIF3kb.20.02.1998 17:01скачать
DOG13.GIF5kb.22.02.1998 02:36скачать
DOG1.GIF12kb.20.02.1998 07:53скачать
DOLPHIN.GIF18kb.20.02.1998 16:53скачать
DOLPHINS.GIF18kb.20.02.1998 07:34скачать
DOVE.GIF102kb.20.02.1998 16:59скачать
EAGLES.GIF85kb.22.02.1998 02:45скачать
FISH.GIF31kb.20.02.1998 07:30скачать
FLAM~172.GIF10kb.20.02.1998 07:11скачать
FLYI~176.GIF17kb.20.02.1998 07:12скачать
FROG.GIF8kb.20.02.1998 07:09скачать
LEOPARD.GIF8kb.20.02.1998 06:56скачать
MONKEY2.GIF34kb.20.02.1998 06:59скачать
MOOSE.GIF19kb.20.02.1998 06:55скачать
MOUSE1.GIF27kb.20.02.1998 07:02скачать
MOUSE2.GIF11kb.20.02.1998 06:53скачать
MOUSE3.GIF39kb.20.02.1998 06:55скачать
MOUSE.GIF72kb.20.02.1998 16:53скачать
ORCA.GIF10kb.20.02.1998 06:52скачать
OWL.GIF34kb.20.02.1998 16:42скачать
POLA~232.GIF16kb.20.02.1998 06:52скачать
PTER~234.GIF14kb.20.02.1998 19:19скачать
PUMA.GIF10kb.20.02.1998 06:50скачать
REDWORMS.GIF4kb.20.02.1998 06:51скачать
SEAGULL.GIF5kb.20.02.1998 06:48скачать
SPIDER1.GIF7kb.20.02.1998 06:46скачать
SWAN.GIF31kb.20.02.1998 06:45скачать
TIGER1.GIF10kb.20.02.1998 06:42скачать
TIGER2.GIF39kb.20.02.1998 06:54скачать
TIGER3.GIF12kb.20.02.1998 06:40скачать
TIGER4.GIF6kb.20.02.1998 06:40скачать
TIGER5.GIF9kb.20.02.1998 06:40скачать
TIGER6.GIF22kb.20.02.1998 05:44скачать
TRACKS.GIF3kb.20.02.1998 05:35скачать
T-REX.GIF50kb.20.02.1998 16:42скачать
TURTLE2.GIF12kb.20.02.1998 05:31скачать
WORM.GIF4kb.20.02.1998 05:30скачать
ani-tri.gif2kb.03.11.1998 15:51скачать
A-ANI5.GIF38kb.20.02.1998 06:40скачать
ASTERO~8.GIF49kb.20.02.1998 16:40скачать
EARTH10.GIF24kb.20.02.1998 16:36скачать
EARTH12.GIF8kb.20.02.1998 16:33скачать
EARTH13.GIF36kb.20.02.1998 16:33скачать
EARTH14.GIF52kb.20.02.1998 16:34скачать
EARTH16.GIF15kb.20.02.1998 16:30скачать
EARTH18.GIF87kb.20.02.1998 16:35скачать
EARTH1.GIF10kb.20.02.1998 16:37скачать
EARTH2.GIF113kb.23.02.1998 14:01скачать
EARTH4.GIF21kb.20.02.1998 06:32скачать
EARTH6.GIF55kb.20.02.1998 16:47скачать
EARTH8.GIF18kb.20.02.1998 16:35скачать
EARTH9.GIF7kb.20.02.1998 06:23скачать
EARTHBUT.GIF8kb.20.02.1998 06:07скачать
EARTH.GIF28kb.20.02.1998 06:34скачать
GLDGLOBE.GIF87kb.20.02.1998 16:29скачать
GLOBE.GIF19kb.20.02.1998 06:07скачать
GP_GLO~6.GIF37kb.20.02.1998 06:07скачать
MOON1.GIF40kb.20.02.1998 06:04скачать
MOON2.GIF26kb.20.02.1998 16:25скачать
MOON3.GIF47kb.20.02.1998 06:04скачать
MOON.GIF14kb.20.02.1998 06:05скачать
PLANET1.GIF168kb.22.02.1998 23:17скачать
PLANET3.GIF146kb.20.02.1998 16:26скачать
PLANET.GIF20kb.20.02.1998 16:29скачать
PULSAR.GIF3kb.20.02.1998 05:48скачать
REDGLOBE.GIF68kb.20.02.1998 16:24скачать
SATURN.GIF30kb.20.02.1998 05:52скачать
SHINING.GIF7kb.20.02.1998 05:47скачать
SPIKE.GIF4kb.20.02.1998 05:48скачать
STAR1.GIF53kb.22.02.1998 22:22скачать
STAR2.GIF3kb.20.02.1998 05:48скачать
STAR3.GIF17kb.20.02.1998 05:45скачать
STAR4.GIF3kb.20.02.1998 05:40скачать
STAR5.GIF1kb.20.02.1998 05:39скачать
STAR6.GIF7kb.20.02.1998 05:41скачать
STAR7.GIF3kb.20.02.1998 05:41скачать
STAR8.GIF5kb.20.02.1998 05:39скачать
STAR.GIF2kb.20.02.1998 05:47скачать
STARRY.GIF9kb.20.02.1998 05:39скачать
STARS.GIF11kb.20.02.1998 05:52скачать
TWSTAR.GIF3kb.20.02.1998 05:37скачать
ABALL1AB.GIF9kb.20.02.1998 09:59скачать
ABALL1A.GIF7kb.20.02.1998 09:58скачать
ABALL2A.GIF9kb.20.02.1998 09:57скачать
ABALL3A.GIF9kb.20.02.1998 09:57скачать
ABALL4A.GIF9kb.20.02.1998 10:07скачать
ABALL6A.GIF9kb.20.02.1998 09:56скачать
AG_BALL3.GIF4kb.20.02.1998 09:58скачать
AN_ICONA.GIF6kb.20.02.1998 18:22скачать
BALL1.GIF4kb.20.02.1998 09:54скачать
BALL2.GIF2kb.20.02.1998 09:54скачать
BALL3.GIF4kb.20.02.1998 09:54скачать
BALL.GIF6kb.20.02.1998 09:57скачать
BLINE.GIF3kb.20.02.1998 09:53скачать
BLINK~42.GIF3kb.20.02.1998 09:53скачать
BLINKIE.GIF3kb.20.02.1998 09:53скачать
BLUBOU.GIF1kb.20.02.1998 09:52скачать
BLUEBALL.GIF9kb.20.02.1998 09:53скачать
BLUER~50.GIF11kb.20.02.1998 09:53скачать
BLUERED.GIF2kb.20.02.1998 09:52скачать
BLUES~52.GIF3kb.20.02.1998 09:52скачать
BLUEY~54.GIF10kb.20.02.1998 09:51скачать
BLUPULSE.GIF2kb.20.02.1998 09:51скачать
BNC_ANM.GIF5kb.20.02.1998 09:53скачать
BUBBLER.GIF6kb.20.02.1998 09:48скачать
CONENB.GIF50kb.20.02.1998 09:52скачать
GLOBE.GIF40kb.20.02.1998 18:25скачать
GOLD1.GIF2kb.20.02.1998 09:41скачать
GP_BUT27.GIF10kb.22.02.1998 23:59скачать
GP_BUT29.GIF18kb.20.02.1998 09:44скачать
GP_BUT37.GIF2kb.20.02.1998 09:37скачать
GP_BUT38.GIF1kb.20.02.1998 09:36скачать
GP_BUT39.GIF2kb.20.02.1998 09:39скачать
GP_BUT40.GIF7kb.20.02.1998 09:44скачать
GP_GLO~7.GIF77kb.24.02.1998 00:22скачать
GP_GLO~8.GIF6kb.20.02.1998 09:39скачать
GP_GLO~9.GIF5kb.20.02.1998 09:32скачать
GP_GRN~2.GIF13kb.20.02.1998 09:36скачать
GP_MOON.GIF8kb.20.02.1998 09:31скачать
GP_PIC3.GIF72kb.20.02.1998 09:36скачать
GP_PIC4.GIF119kb.24.02.1998 00:21скачать
G_SPIRAL.GIF9kb.23.02.1998 00:02скачать
PALLA.GIF8kb.20.02.1998 09:30скачать
PERLREDB.GIF2kb.20.02.1998 09:29скачать
PURPIN.GIF2kb.20.02.1998 09:29скачать
ROLLBALL.GIF5kb.20.02.1998 09:29скачать
ROTDONE.GIF25kb.20.02.1998 09:31скачать
SBUTTON.GIF15kb.20.02.1998 09:26скачать
SOC_ANM.GIF14kb.22.02.1998 23:59скачать
SPIK~126.GIF8kb.20.02.1998 09:22скачать
SQUI~128.GIF9kb.20.02.1998 09:29скачать
TCWD_106.GIF7kb.20.02.1998 05:29скачать
TCWD_118.GIF4kb.20.02.1998 05:29скачать
banner_3.gif14kb.22.12.1998 20:36скачать
1P_BAR1.GIF135kb.23.02.1998 20:41скачать
AG_BAR2.GIF3kb.20.02.1998 09:22скачать
ANIMA~22.GIF9kb.20.02.1998 09:21скачать
ANIM-BAR.GIF7kb.20.02.1998 09:20скачать
ANI-TUBE.GIF8kb.20.02.1998 09:19скачать
BAR_ANM.GIF7kb.20.02.1998 09:18скачать
BAR_EL.GIF11kb.20.02.1998 09:18скачать
BARMOVE.GIF28kb.20.02.1998 09:19скачать
BARSTAR.GIF5kb.20.02.1998 09:17скачать
BBOMB.GIF14kb.20.02.1998 09:17скачать
BEEP2.GIF4kb.20.02.1998 09:16скачать
BLOODBAR.GIF5kb.20.02.1998 09:17скачать
BLUEONE.GIF4kb.20.02.1998 09:16скачать
BLUERULE.GIF4kb.20.02.1998 09:16скачать
BLUETWO.GIF2kb.20.02.1998 09:15скачать
BOLT_ANI.GIF18kb.20.02.1998 09:15скачать
BOMBBAR.GIF11kb.20.02.1998 09:14скачать
BR_BAR.GIF12kb.20.02.1998 09:18скачать
BULBOUT.GIF2kb.20.02.1998 09:13скачать
BURST~70.GIF10kb.20.02.1998 09:14скачать
CANON.GIF15kb.20.02.1998 09:14скачать
CAT.GIF10kb.20.02.1998 09:16скачать
COLOR~82.GIF16kb.20.02.1998 09:17скачать
COLORBAR.GIF5kb.20.02.1998 09:13скачать
COLORLIN.GIF8kb.20.02.1998 09:13скачать
CON-BAR3.GIF7kb.20.02.1998 09:10скачать
COP.GIF13kb.20.02.1998 17:16скачать
DANCEBAR.GIF1kb.20.02.1998 09:09скачать
DOG_H~94.GIF64kb.20.02.1998 09:12скачать
DRIP1.GIF4kb.20.02.1998 09:09скачать
DRIP.GIF7kb.20.02.1998 09:09скачать
ELECTRIC.GIF6kb.20.02.1998 09:08скачать
FIREBAR2.GIF12kb.20.02.1998 09:09скачать
FIREBAR.GIF42kb.20.02.1998 09:12скачать
FLOW~110.GIF1kb.20.02.1998 09:07скачать
FUSS.GIF5kb.20.02.1998 09:07скачать
G_BAR_N3.GIF11kb.20.02.1998 09:08скачать
GEOBAR.GIF12kb.20.02.1998 09:09скачать
GP_BAR10.GIF12kb.20.02.1998 08:54скачать
GP_BAR11.GIF10kb.20.02.1998 17:12скачать
GP_BAR12.GIF18kb.20.02.1998 08:52скачать
GP_BAR1.GIF27kb.20.02.1998 09:05скачать
GP_BAR2.GIF45kb.20.02.1998 09:05скачать
GP_BAR3.GIF9kb.20.02.1998 17:16скачать
GP_BAR4.GIF13kb.20.02.1998 09:00скачать
GP_BAR5.GIF20kb.20.02.1998 09:00скачать
GP_BAR6.GIF17kb.20.02.1998 08:59скачать
GP_BAR7.GIF34kb.20.02.1998 17:13скачать
GP_BAR8.GIF62kb.23.02.1998 20:38скачать
GP_BAR9.GIF32kb.20.02.1998 08:59скачать
GP_GLO~5.GIF31kb.20.02.1998 08:55скачать
GREY~150.GIF14kb.20.02.1998 08:53скачать
HR1.GIF8kb.20.02.1998 08:49скачать
HR_S~156.GIF9kb.20.02.1998 08:50скачать
INDI~158.GIF10kb.20.02.1998 08:50скачать
JETRIGHT.GIF14kb.22.02.1998 02:46скачать
KILROY.GIF5kb.20.02.1998 08:48скачать
LASER.GIF6kb.20.02.1998 08:47скачать
LIBUNT.GIF1kb.20.02.1998 08:47скачать
LILRED.GIF3kb.20.02.1998 08:46скачать
LINE04C.GIF29kb.20.02.1998 17:15скачать
LINEDOT.GIF18kb.20.02.1998 08:47скачать
LOLLIPOP.GIF7kb.20.02.1998 17:11скачать
MATC~178.GIF9kb.20.02.1998 08:44скачать
NASCAR.GIF26kb.20.02.1998 17:12скачать
NEWS~182.GIF11kb.20.02.1998 08:41скачать
PROGRESS.GIF5kb.20.02.1998 08:38скачать
RULE02.GIF6kb.20.02.1998 08:38скачать
SABE~190.GIF30kb.20.02.1998 08:40скачать
SLIDBAR.GIF9kb.20.02.1998 08:36скачать
SPARK.GIF5kb.20.02.1998 08:33скачать
STAR~196.GIF14kb.20.02.1998 17:10скачать
WELLMESS.GIF12kb.20.02.1998 05:36скачать
WLCME.GIF8kb.20.02.1998 05:30скачать
YELLCAR.GIF28kb.20.02.1998 05:38скачать
BOOK2.GIF10kb.20.02.1998 18:57скачать
BOOK3.GIF20kb.20.02.1998 18:56скачать
ANIMASCT.GIF12kb.20.02.1998 11:32скачать
ANIRATZ.GIF4kb.20.02.1998 16:05скачать
ANMCALLE.GIF4kb.20.02.1998 11:32скачать
BUGSD~14.GIF68kb.20.02.1998 11:42скачать
CALVIN.GIF6kb.20.02.1998 11:28скачать
DEVIL~28.GIF8kb.20.02.1998 11:23скачать
DEVIL.GIF62kb.20.02.1998 11:30скачать
DRINK~30.GIF33kb.20.02.1998 11:22скачать
FOX.GIF18kb.20.02.1998 11:22скачать
FREAK~38.GIF3kb.20.02.1998 11:17скачать
GENIE.GIF67kb.20.02.1998 11:27скачать
GOLDHERO.GIF11kb.20.02.1998 11:15скачать
HERORUN.GIF57kb.20.02.1998 11:16скачать
OSCAR.GIF12kb.20.02.1998 10:59скачать
PNKPAN.GIF6kb.20.02.1998 10:58скачать
SHARPS.GIF99kb.20.02.1998 10:55скачать
SONIC.GIF5kb.20.02.1998 10:50скачать
SPIDE~54.GIF4kb.20.02.1998 10:50скачать
ST.GIF68kb.20.02.1998 10:56скачать
SUPER~58.GIF14kb.20.02.1998 10:49скачать
SYLVEST.GIF22kb.20.02.1998 10:49скачать
TWEETY.GIF9kb.20.02.1998 10:46скачать
VIKING.GIF38kb.20.02.1998 10:48скачать
WB.GIF16kb.20.02.1998 10:45скачать
WIZARD.GIF8kb.20.02.1998 10:43скачать
WOLF.GIF10kb.20.02.1998 10:43скачать
clownanim48.gif28kb.03.04.1998 17:05скачать
counting_fingers.gif4kb.11.10.1998 03:43скачать
3D.GIF20kb.20.02.1998 11:48скачать
COMETANI.GIF23kb.20.02.1998 11:49скачать
ORBIT.GIF57kb.20.02.1998 11:48скачать
WRING.GIF32kb.20.02.1998 11:37скачать
dancers.gif3kb.18.06.1998 21:05скачать
dansman.gif4kb.19.11.1998 02:53скачать
dtr10x.jpg35kb.18.03.1999 11:04скачать
dtr7.jpg25kb.07.11.1998 17:18скачать
ANI_EYE.GIF4kb.20.02.1998 12:00скачать
ANIMAL94.GIF22kb.20.02.1998 12:00скачать
EYE1.GIF17kb.20.02.1998 11:58скачать
EYE2.GIF41kb.20.02.1998 11:58скачать
EYE3.GIF19kb.20.02.1998 11:58скачать
EYE5.GIF17kb.20.02.1998 11:56скачать
EYE-LOOK.GIF3kb.20.02.1998 11:56скачать
EYE-MOV.GIF71kb.20.02.1998 12:00скачать
EYES2ANI.GIF30kb.20.02.1998 11:53скачать
EYES.GIF3kb.20.02.1998 11:54скачать
GP_PIC5.GIF134kb.20.02.1998 12:04скачать
GRN_E~40.GIF3kb.20.02.1998 11:50скачать
GRNEYES.GIF7kb.20.02.1998 11:49скачать
PEEP.GIF21kb.20.02.1998 13:12скачать
ANGEL.GIF54kb.20.02.1998 12:19скачать
ANKH.GIF8kb.20.02.1998 12:13скачать
DFLYGB.GIF28kb.25.02.1998 05:15скачать
DFLYGS.GIF28kb.25.02.1998 05:15скачать
DFLYSB.GIF19kb.25.02.1998 05:16скачать
DFLYS.GIF43kb.25.02.1998 05:16скачать
DRAGON~1.GIF12kb.20.02.1998 12:12скачать
DRAGON1.GIF41kb.20.02.1998 12:14скачать
DRAGON2.GIF18kb.20.02.1998 12:11скачать
HPS.GIF10kb.20.02.1998 12:10скачать
MONSTER.GIF11kb.20.02.1998 12:07скачать
PEGASUS2.GIF12kb.20.02.1998 12:05скачать
PEGASUS.GIF143kb.23.02.1998 20:26скачать
SORCE~44.GIF14kb.20.02.1998 12:05скачать
SPIRIT.GIF6kb.20.02.1998 12:05скачать
SWORD1.GIF51kb.20.02.1998 12:06скачать
SWORD.GIF23kb.20.02.1998 13:10скачать
SWORDS1.GIF23kb.20.02.1998 12:02скачать
UNUS_~58.GIF102kb.22.02.1998 02:34скачать
WIZARD1.GIF20kb.20.02.1998 13:08скачать
WRAITH.GIF24kb.20.02.1998 12:01скачать
ANI020.GIF22kb.20.02.1998 12:42скачать
BLUFIRE.GIF4kb.20.02.1998 12:42скачать
CANDLE1.GIF8kb.20.02.1998 12:41скачать
CANDLE2.GIF2kb.20.02.1998 12:41скачать
CANDLE3.GIF4kb.20.02.1998 12:40скачать
CANDLE6.GIF22kb.20.02.1998 12:48скачать
CANDLE7.GIF8kb.20.02.1998 12:45скачать
CANDLE.GIF10kb.20.02.1998 12:42скачать
DOOMFIRE.GIF13kb.20.02.1998 12:38скачать
DRKTORCH.GIF15kb.20.02.1998 13:10скачать
EXPLO~34.GIF19kb.20.02.1998 12:37скачать
FIRE001.GIF17kb.20.02.1998 12:35скачать
FIRE1.GIF7kb.20.02.1998 12:34скачать
FIRE2.GIF46kb.20.02.1998 12:36скачать
FIRE3.GIF6kb.20.02.1998 12:34скачать
FIREANM.GIF6kb.20.02.1998 12:33скачать
FIRELINK.GIF100kb.20.02.1998 12:41скачать
FIREW~54.GIF65kb.20.02.1998 13:09скачать
FIREW~56.GIF65kb.20.02.1998 12:33скачать
FIREW~58.GIF69kb.20.02.1998 12:33скачать
FIREWRKS.GIF37kb.20.02.1998 12:32скачать
FLAME1.GIF12kb.20.02.1998 13:07скачать
FLAME2.GIF4kb.20.02.1998 13:06скачать
FLAME3.GIF22kb.20.02.1998 13:07скачать
FLAME.GIF21kb.20.02.1998 12:30скачать
FLAMM~72.GIF7kb.20.02.1998 12:23скачать
FLIKER.GIF40kb.20.02.1998 13:07скачать
NUCLEAR.GIF34kb.20.02.1998 12:22скачать
RTORCH.GIF9kb.20.02.1998 12:19скачать
TORCH1.GIF16kb.20.02.1998 13:07скачать
TORCH.GIF12kb.20.02.1998 12:21скачать
TORCHSM.GIF16kb.20.02.1998 12:20скачать
ANIMDIAB.GIF26kb.20.02.1998 13:06скачать
BCROSS.GIF21kb.20.02.1998 13:06скачать
BLACK~10.GIF15kb.20.02.1998 13:05скачать
BONED~12.GIF23kb.20.02.1998 13:05скачать
BUTCHER.GIF15kb.20.02.1998 13:04скачать
CHESS.GIF23kb.20.02.1998 13:04скачать
DEDDI~20.GIF83kb.20.02.1998 12:49скачать
DIABL~24.GIF67kb.20.02.1998 13:03скачать
DIABL~26.GIF65kb.20.02.1998 13:12скачать
DIABL~28.GIF25kb.20.02.1998 13:02скачать
DIABL~30.GIF69kb.20.02.1998 13:06скачать
DNTIGER1.GIF16kb.20.02.1998 13:00скачать
DOOM2.GIF5kb.20.02.1998 13:00скачать
DRUIDD.GIF67kb.20.02.1998 13:03скачать
EXPLO~42.GIF26kb.20.02.1998 12:59скачать
FIGHTER.GIF8kb.20.02.1998 12:58скачать
GANGS.GIF47kb.25.02.1999 17:37скачать
INCIN~48.GIF21kb.20.02.1998 16:07скачать
INVIS~50.GIF12kb.20.02.1998 12:58скачать
KNIGHT.GIF35kb.20.02.1998 13:05скачать
LAZARUS.GIF21kb.20.02.1998 13:00скачать
LORDS~56.GIF25kb.20.02.1998 12:58скачать
MAGEAT.GIF19kb.20.02.1998 12:53скачать
MAGE.GIF30kb.20.02.1998 12:53скачать
MAGICIAN.GIF50kb.20.02.1998 13:02скачать
PEN.GIF27kb.20.02.1998 12:52скачать
PENTA~68.GIF3kb.20.02.1998 12:51скачать
PENTA~70.GIF11kb.20.02.1998 12:51скачать
QUAKE.GIF13kb.20.02.1998 12:51скачать
RAD.GIF10kb.20.02.1998 12:51скачать
ROGUEBOW.GIF12kb.20.02.1998 12:51скачать
SCORPIO.GIF14kb.20.02.1998 12:51скачать
SKULL~84.GIF5kb.20.02.1998 12:50скачать
SKULL~86.GIF9kb.20.02.1998 12:50скачать
SORCERF.GIF19kb.20.02.1998 12:50скачать
SUB-ZERO.GIF13kb.20.02.1998 12:52скачать
SUCCUBUS.GIF14kb.20.02.1998 12:50скачать
UNRAV~96.GIF9kb.20.02.1998 12:50скачать
UO.GIF13kb.20.02.1998 12:50скачать
WARRIORA.GIF17kb.20.02.1998 12:50скачать
WARRIORB.GIF19kb.20.02.1998 12:49скачать
WARRIOR.GIF19kb.20.02.1998 12:49скачать
HAND1.GIF37kb.20.02.1998 12:46скачать
HAND3.GIF55kb.20.02.1998 12:47скачать
HAND.GIF23kb.20.02.1998 12:46скачать
HANDS.GIF24kb.20.02.1998 12:45скачать
HANDWAVE.GIF17kb.20.02.1998 12:45скачать
HEART2.GIF10kb.20.02.1998 18:55скачать
ABELLL~6.GIF25kb.23.02.1998 04:29скачать
ABELLR~8.GIF24kb.23.02.1998 04:39скачать
XMASLT2.GIF21kb.23.02.1998 02:42скачать
hoparlor.gif10kb.02.04.1998 15:11скачать
hot_mix.gif20kb.09.06.1998 14:04скачать
line13.gif15kb.18.04.1998 02:16скачать
mailmove.gif7kb.18.05.1998 02:36скачать
1P_LVER1.GIF61kb.24.02.1998 19:22скачать
ALARMCL.GIF8kb.24.02.1998 19:20скачать
ANADIM.GIF29kb.24.02.1998 19:21скачать
ART.GIF33kb.24.02.1998 19:19скачать
ASTER.GIF13kb.24.02.1998 19:19скачать
BLOB.GIF5kb.24.02.1998 19:04скачать
BRUSH.GIF30kb.24.02.1998 19:04скачать
C_FAN.GIF13kb.24.02.1998 19:03скачать
CLAP.GIF49kb.24.02.1998 19:03скачать
$.GIF30kb.24.02.1998 19:22скачать
GUNANIM.GIF9kb.24.02.1998 18:51скачать
LLRINGS.GIF31kb.25.02.1998 05:16скачать
LOOKER1.GIF2kb.25.02.1998 05:16скачать
M14.GIF9kb.25.02.1998 05:16скачать
PLAYBOY.GIF9kb.24.02.1998 00:38скачать
RCHAIR.GIF30kb.24.02.1998 00:37скачать
REDRINGS.GIF37kb.24.02.1998 00:36скачать
RFHEA~40.GIF19kb.24.02.1998 00:37скачать
RING_ANM.GIF9kb.24.02.1998 00:36скачать
ROSE01.GIF22kb.24.02.1998 00:35скачать
STARR.GIF138kb.24.02.1998 00:32скачать
MOV11.GIF5kb.03.04.1998 17:10скачать
mp3cd.gif30kb.20.11.1998 05:07скачать
newSmCLR.gif2kb.18.06.1998 21:07скачать
PERL.GIF32kb.02.04.1998 15:20скачать
pulsar1.gif12kb.17.01.1998 21:25скачать
ATOM1.GIF7kb.24.02.1998 21:00скачать
ATOM2.GIF37kb.24.02.1998 21:00скачать
ATOM3.GIF25kb.24.02.1998 21:00скачать
NUC_AN3.GIF12kb.24.02.1998 20:59скачать
SPIKES.GIF15kb.24.02.1998 20:59скачать
DANCIN~8.GIF34kb.24.02.1998 20:54скачать
SKELE~14.GIF7kb.24.02.1998 20:52скачать
SKELE~16.GIF66kb.24.02.1998 20:52скачать
SKELEDAN.GIF22kb.24.02.1998 20:53скачать
SKELETON.GIF70kb.24.02.1998 20:54скачать
SKULL1.GIF40kb.24.02.1998 20:52скачать
SKULL2.GIF31kb.24.02.1998 20:52скачать
SKULL33.GIF4kb.24.02.1998 20:49скачать
SKULL3.GIF13kb.24.02.1998 20:50скачать
SKULL.GIF46kb.24.02.1998 20:51скачать
Smile.gif2kb.03.04.1998 17:10скачать
SMILELY.GIF1kb.03.04.1998 17:10скачать
ABDUCT~6.GIF33kb.24.02.1998 20:50скачать
ALIEN1.GIF14kb.24.02.1998 20:49скачать
ALIEN2.GIF17kb.24.02.1998 20:49скачать
ALIENBAL.GIF33kb.24.02.1998 20:49скачать
AL_IEN.GIF6kb.24.02.1998 20:49скачать
ALIEN.GIF15kb.24.02.1998 20:49скачать
ALION.GIF5kb.24.02.1998 20:47скачать
BORGSHIP.GIF121kb.24.02.1998 20:48скачать
COOL_D1.GIF15kb.24.02.1998 20:47скачать
FLASH.GIF5kb.24.02.1998 20:46скачать
FLYIN~30.GIF6kb.24.02.1998 20:46скачать
GBOWL.GIF22kb.24.02.1998 20:46скачать
KLINGON.GIF33kb.24.02.1998 20:45скачать
LIGHTMAN.GIF126kb.24.02.1998 20:47скачать
MECH10.GIF35kb.24.02.1998 20:40скачать
MECH1.GIF7kb.24.02.1998 20:43скачать
MECH2.GIF54kb.24.02.1998 20:45скачать
MECH3.GIF56kb.24.02.1998 20:43скачать
MECH4.GIF55kb.24.02.1998 20:43скачать
MECH5.GIF37kb.24.02.1998 20:41скачать
MECH6.GIF53kb.24.02.1998 20:42скачать
MECH7.GIF62kb.24.02.1998 20:41скачать
MECH8.GIF60kb.24.02.1998 20:41скачать
MECH9.GIF15kb.24.02.1998 20:39скачать
NXTGEN.GIF53kb.24.02.1998 20:38скачать
R2D2.GIF146kb.24.02.1998 20:39скачать
REDSHIP.GIF95kb.24.02.1998 20:37скачать
SHIPANI.GIF39kb.24.02.1998 20:34скачать
SHIP.GIF96kb.24.02.1998 20:36скачать
SPACE~84.GIF27kb.24.02.1998 20:29скачать
SPACE~90.GIF76kb.24.02.1998 20:31скачать
SPACE~92.GIF46kb.24.02.1998 20:27скачать
SPACE.GIF111kb.24.02.1998 20:34скачать
SPSHIP10.GIF10kb.24.02.1998 20:16скачать
SPSHIP12.GIF44kb.24.02.1998 19:44скачать
SPSHIP1.GIF28kb.24.02.1998 20:24скачать
SPSHIP2.GIF104kb.24.02.1998 20:24скачать
SPSHIP3.GIF18kb.24.02.1998 20:22скачать
SPSHIP4.GIF67kb.24.02.1998 20:22скачать
SPSHIP6.GIF36kb.24.02.1998 20:21скачать
SPSHIP7.GIF36kb.24.02.1998 20:20скачать
SPSHIP8.GIF114kb.24.02.1998 20:21скачать
SPSHIP9.GIF42kb.24.02.1998 20:18скачать
SPSHIP.GIF84kb.24.02.1998 20:26скачать
STARBADG.GIF14kb.24.02.1998 19:43скачать
STARWARS.GIF102kb.24.02.1998 19:42скачать
TIEF~130.GIF74kb.24.02.1998 19:42скачать
TREK.GIF21kb.24.02.1998 19:39скачать
VOYBAR2.GIF17kb.24.02.1998 19:38скачать
WINK~142.GIF19kb.24.02.1998 19:38скачать
XWINGS.GIF25kb.24.02.1998 19:38скачать
Spicker.gif6kb.03.11.1998 16:03скачать
thatsall200.gif21kb.13.12.1998 12:43скачать
CAMERA1.GIF108kb.25.02.1998 05:13скачать
XFILES.GIF25kb.25.02.1998 05:09скачать
under5.gif6kb.13.04.1998 00:28скачать
LIGHT~14.GIF37kb.25.02.1998 05:13скачать
LIGHT~18.GIF42kb.25.02.1998 05:13скачать
TWISTER2.GIF13kb.25.02.1998 05:09скачать
задание СПС лаб6.doc27kb.20.04.2005 11:14скачать
1. РАЗРАБОТКА СПРАВОЧНЫХ HTML-СИСТЕМ.DOC103kb.24.02.2001 09:44скачать
2. ОБЗОР СИСТЕМЫ HTML HELP.DOC95kb.24.02.2001 07:47скачать
3. Работа с HTML Work Shop.doc225kb.28.03.2005 11:56скачать
4. ИНФОРМАЦИОННЫЕ МАТЕРИАЛЫ HTML И ФАЙЛ ПРОЕКТА.DOC54kb.23.02.2001 11:07скачать
5. MICROSOFT HTML HELP.DOC263kb.24.02.2001 10:04скачать
Как организовать вызов дополнительного окна на гиперссылку.doc30kb.23.03.2005 22:33скачать
Добавление закладки ПОИСК в HTML-HELP.doc56kb.23.03.2005 23:01скачать
Создание Pop-Up окна в HTML-HELP файлах.doc53kb.21.03.2005 23:51скачать
Встраивание сценариев в HTML.doc27kb.28.03.2005 20:46скачать
Прочие элементы.doc26kb.27.03.2005 20:23скачать
Словарь по HTML для начинающих.doc43kb.28.03.2005 15:06скачать
Таблица цветов RGB и HTML.doc232kb.28.03.2005 15:15скачать
1. Добавление Flash к Html-Help.doc43kb.27.03.2005 18:59скачать
2. Подключение Flash к html.doc41kb.26.03.2005 10:27скачать
3. Атрибуты тэгов OBJECT и EMBED.doc76kb.26.03.2005 01:00скачать
Hh_C++.pdf77kb.12.02.2001 06:56скачать
Hh_VB.pdf60kb.12.02.2001 06:56скачать
1. ИСПОЛЬЗОВАНИЕ HTML HELP В ПРИЛОЖЕНИЯХ НА VISUAL BASIC.DOC123kb.24.05.2005 19:31скачать
2. Добавление HTML Help в приложение VB 6.0.doc28kb.02.04.2010 11:57скачать
3. Как вызывать help из приложения С++.doc48kb.06.03.2005 10:05скачать
4. Использование HTML Help в проекте MFC.doc29kb.17.03.2005 14:52скачать
Теги HTML.doc1691kb.31.03.2006 14:36скачать
01. Все, что нужно знать о программировании в Macromedia Flash.doc178kb.04.05.2005 14:38скачать
02. СПРАВОЧНИК по программированию во FLASH.doc407kb.04.05.2005 14:37скачать
03. ОБЪЕКТНО ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ в ACTION SCRIPT.doc605kb.03.05.2005 17:24скачать
04. Программирование клиентских приложений с использованием Macromedia Flash.doc133kb.28.03.2005 19:09скачать
05. ЯЗЫК ACTION SCRIPT.doc2998kb.20.04.2005 10:27скачать
06. ActionScript - во Flash.doc104kb.30.03.2005 11:08скачать
07. Отладка во Flash 5.doc124kb.01.03.2004 11:23скачать
08. Обнаружение ошибок в именах переменных Actionscript.doc26kb.26.11.2003 10:45скачать
09. Создание элементов сайтов с использованием Flash.doc133kb.28.03.2005 19:20скачать
10. Программное создание часов во Flash.doc76kb.28.03.2005 19:24скачать
11. Программирование во Flash.doc54kb.01.03.2004 10:54скачать
12. Стандарты Actionscript.doc218kb.26.03.2005 01:07скачать

Программирование с DAO и ADO.doc

1   2   3
Реклама MarketGid:
Загрузка...

Перемещение по набору записей

При работе с записями в наборе важным является понятие текущая запись Обращаясь к полям записи, мы всегда имеем дело только с текущей записью. Нельзя получить значения полей произвольной записи набора, сначала нужно сделать требуемую запись текущей, то есть переместиться на эту запись. Работа с записями в моделях DAO и ADO выполняется аналогично.

Для перемещения по набору записей используются методы, перечисленные ниже.

  • MoveFirst — переход к первой записи в наборе. Используется при всех типах курсора. При использовании статического курсора с последовательным до­ступом вызывает повторное выполнение команды, которая возвратила Recordset.

  • MoveNext — переход к следующей записи. Используется при всех типах кур­сора.

  • MovePrevious — переход к предыдущей записи. При использовании статического курсора с последовательным доступом вызывает генерацию ошибки времени исполнения.

  • MoveLast — переход к последней записи. При использовании статического курсора с последовательным доступом вызывает генерацию ошибки времени исполнения.

  • Move — позволяет переместиться на заданное число записей вперед или на­зад. При использовании статического курсора с последовательным доступом отрицательное значение аргумента вызывает генерацию ошибки времени ис­полнения.

  • При перемещении по набору записей важно контролировать указатель, чтобы не переместить его за границы набора. Для этого используются два свойства:

  • BOF — это свойство принимает значение True, как только указатель текущей записи оказывается перед первой записью набора;

  • EOF — принимает значение True, как только указатель текущей записи оказы­вается после последней записи набора или в наборе нет ни одной записи.

В листинге 5.31 показано, как организовать цикл для набора записей, созданных на базе таблицы Издательства. Записи полученного объекта Recordset использу­ются для заполнения источника строк для поля со списком, в форме.


Листинг 5.31. Организация цикла по набору записей (DАО — вариант 1)

^ Dim dbCur As Database, rs As DAO.Recordset

Set dbCur = CurrentDb

Set rs = dbCur.OpenRecordset("SELECT Код, Название FROM "_

& "Издательства ORDER BY Название", dbOpenSnapshot)

^ While Not rs.EOF

cmbEdition.RowSource = cmbEdition.RowSource & гз!Код _

& ";" & rs!Название & ";"

rs.MoveNext

Wend

rs.Close


Второй вариант организации цикла связан с использованием свойства RecordCount.

Для набора записей типа Таблица это свойство возвращает общее количество записей в наборе. Поэтому можно организовать цикл For...Next для перебора всех записей. Однако для других типов объекта Recordset с этим свойством нужно обращаться осторожно. Обычно его используют, чтобы определить, содержит ли набор хоть какие-то записи (когда набор пуст, значение свойства RecordCount равно 0). Но если вы только что создали набор записей статического или динамическо­го типа, значение этого свойства будет равно единице. Это происходит потому, что не все записи сразу считываются из источника, однако предполагается, что набор содержит хотя бы одну запись. Чтобы узнать общее число записей в набо­ре статического или динамического типа, нужно перейти в конец набора с по­мощью метода MoveLast. При этом будут прочитаны все записи, а свойство Record-Count объекта Recordset будет содержать нужное значение. После этого нужно снова вернуться к первой записи. Пример такого цикла приведен в листинге 5.32.


Листинг 5.32. Организация цикла по набору записей (DАО — вариант 2)

Dim rs As Recordset, db As Database, i As Integer

Set db = CurrentDB

Set rs = db.OpenRecordset("Города", acOpenDynaset)

If rs.RecordCount <> 0 then

rs.MoveLast

rs.MoveFirst

For i = 1 to rs.RecordCount

'КОД Обработки записи



rs.MoveNext

Next i

End If


Однако переход в конец набора имеет смысл использовать, только если объект Recordset содержат небольшое число записей. В противном случае этот процесс может продлиться достаточно долго.

Кроме того, при работе в многопользовательской среде удаление и добавление записей не отражается на значении свойства RecordCount объекта Recordset дина­мического типа. Чтобы оно возвращало точное значение, нужно выполнять по­вторный запрос с помощью метода Requery.

Иногда требуется определить позицию текущей записи в наборе. Для этого ис­пользуются свойства AbsolutePosition и PercentPosition.

Свойство AbsolutePosition возвращает абсолютную позицию текущей записи. Оно может принимать значение от 1 до RecordCount.

Свойство PercentPosition возвращает относительную позицию текущей записи в про­центах от числа записей, задаваемых значением свойства RecordCount. Поскольку число записей, которое отражается в свойстве RecordCount, не всегда совпадает с общим числом записей в наборе, свойство не всегда указывает верное число.

Кроме того, можно использовать свойство AbsolutePosition, чтобы переместиться на конкретную запись в наборе.


^ Поиск записей

Методы поиска нужной записи в наборе зависят от типа набора записей. Для объектов Recordset типа Таблица используется метод Seek, для динамических и ста­тических наборов — группа методов Find. В объекте Recordset типа статического набора с последовательным доступом поиск не поддерживается совсем (по край­ней мере, для объекта DAO).

При использовании любого метода требуется указать критерий поиска нужной записи, однако метод Seek обеспечивает более высокую производительность, поскольку он использует индексы таблицы, на основе которой создан объект Recordset. Однако область применения этого метода ограничена:

  • в модели DAO его можно использовать только с объектами Recordset типа Таблица;

  • чтобы применить метод Seek в модели ADO, нужно создать объект Recordset со значением аргумента <параметры> равным adCmdTableDirect.

В том и в другом случае, если искомая запись найдена, она становится текущей. Если поиск не был успешным, в модели DAO текущая запись не определена, а в модели ADO указатель текущей записи помещается либо перед первой запи­сью набора, либо после последней.

Теперь перейдем к рассмотрению методов поиска.

Циклы перебора записей в модели ADO организуются точно так же, по-другому создается только объект Recordset.


^ Применение методов Find

В объектной модели DAO определены четыре метода, относящиеся к группе Find:

  • FindFirst — ищется первая запись, удовлетворяющая заданным условиям;

  • FindLast — ищется последняя запись, удовлетворяющая заданным условиям;

  • Find Next — ищется следующая запись, удовлетворяющая заданным условиям;

  • FindPrevious — ищется предыдущая запись, удовлетворяющая заданным усло­виям.

Каждый из этих методов имеет всего один аргумент. Этот аргумент и задает усло­вия поиска. Он представляет собой выражение, которое строится по правилам создания предложения WHERE в инструкции SQL.

Результат поиска отражается в значении свойства NoMatch объекта Recordset. При успешном завершении поиска свойство NoMatch имеет значение False, в против­ном случае — True. Поэтому после выполнения поиска нужно анализировать зна­чение этого свойства.

Каждый из четырех методов Find начинает поиск с разных точек и в разных на­правлениях:

  • метод Find First ищет с начала набора к концу;

  • метод FindLast от конца к началу;

  • метод FindNext от текущей записи к концу;

  • метод FindPrevious от текущей позиции к началу.

В листинге 5.33 показана функция поиска книг заданного автора в каталоге. Для этого мы будем использовать запрос КнигиАвтора, который был создан и хранит­ся в базе данных Библиотека.mdb. Коды книг, удовлетворяющих критерию поиска, сохраняются в массиве IdList, который может использоваться для дальней­шей обработки. Код автора, который указывается в качестве критерия поиска, определяется выбором из списка в поле Автор диалогового окна Поиск.


Листинг 5.33. Функция FindBook (DAO)

'на уровне модуля объявляем динамический массив

^ Private idListQ As Integer

Function FindBook ()

Dim db As Database, rs As Recordset, i As Integer

Set db = CurrentDb

'создаем набор записей на основе запроса "КнигиАвтора" 'если набор записей пуст, выходим из функции

^ Set rs = db.Openrecordset("Книгиавтора", dbOpenSnapshot)

If rs.RecordCount = 0 Then

MsgBox "Книги отсутствуют"

Exit Function

End If

'ищем первую запись по заданному критерию

rs.FindFirst "КодАвтора = " & Forms!Поиск!Автор

'если не нашли, то выходим из функции

^ If rs.NoMatch Then

MsgBox "Книги отсутствуют"

Exit Function

Else

'устанавливаем размер массива и добавляем в него код автора

ReDim Preserve idList(i)

idList(i) = rs.КодАвтора

^ Do Until rs.EOF

rs.FindNext "КодАвтора = " & Forms!Поиск!Автор

If rs.NoMatch = False Then

i = i + 1

ReDim Preserve idList(i)

idList(i) = rs.КодАвтора

End If

rs.MoveNext

Loop

End If

rs.Close db.Close

End Function


В отличие от этого, в объектной модели ADO существует только один метод Find, который начинает поиск всегда с текущей записи. Два аргумента метода позво­ляют определить начало и направление поиска:

  • SearchDirection определяет направление поиска;

  • SkipRows позволяет указать смещение начала поиска относительно текущей записи (по умолчанию 0).

Кроме того, в аргументе Criteria, который определяет условия поиска, можно указать только одно условие, например: Orderld = 5. Если требуются более слож­ные условия поиска, нужно использовать свойство Filter объекта Recordset И, на­конец, если не найдена запись, удовлетворяющая указанному условию, устанавли­вается значение True одного из свойств, BOF или EOF, в зависимости от заданного направления поиска. Эти свойства и нужно проверять после выполнения поиска.

ВНИМАНИЕ Задавая критерии поиска, будьте внимательны при употреблении разных типов дан-ных: строковые переменные заключайте в одинарные кавычки, в датах используйте стандартный формат Access, то есть #11/25/01#.


В листинге 5.34 приведен пример той же функции, но написанный в терминах модели ADO.


Листинг 5.34. Функция FindBook (ADO)

Private idListO As Integer

Function FindVacancy ()

Dim cnn As ADODB.Connection, rs As ADODB.Recordset

Dim i As Integer, stCriteria As String

StCriteria = "КодАвтора = " & Forms!Поиск!Автор

Set cnn = CurrentProject.Connection

Set rst = New ADODB.Recordset

'создаем набор записей на основе запроса "КнигиАвтора"

'если набор записей пуст, выходим из функции

With rst

'Открываем таблицу

.Open Source:= "КнигиАвтора", ActiveConnection:= cnn,_

CursorType:=adOpenStatic,LockType:=adReadOnly

If .RecordCount = 0 Then

MsgBox "Книги отсутствуют"

Exit Function

End If

'ищем первую запись по заданному критерию

.Find Criteria:=strCriteria,_

SearchDirection:= adSearchForward

'если не нашли, то выходим из функции

If .EOF Then

MsgBox "Вакансии отсутствуют"

^ Exit Function

Else

ReDim Preserve idList(i)

idList(i) = .КодАвтора

Do While Not .EOF

'начинаем поиск со следующей записи

.Find CM teri a: =strCri teri a, SkipRecords:=1

If Not .EOF Then i = i + 1

^ ReDim Preserve idList (i)

idList(i) = .Код

End If

Loop

закрываем объект Recordset

.Close

End With

cnn.Close

Set rs = Nothing

Set cnn = Nothing

End Function


Применение метода Seek

Метод Seek, как уже говорилось, используется для объектов Recordset таблично­го типа. Он выполняет поиск нужной записи с использованием индексов. Поэто­му перед выполнением поиска следует указать индекс, который нужно исполь­зовать (текущий индекс). Синтаксис метода для объектной модели DАО:

<тaблицa>.Seek <сравнение>, <ключ!>, <ключ2>...<ключ!3>.

Аргумент <сравнение> представляет собой один из операторов сравнения: равно (=), больше (>), не меньше (>=), меньше (<), не больше (<=). Аргументы <ключ1>, <ключ2>...<ключ3> — это значения, которые нужно найти. Количество аргументов определяется количеством полей в индексе. Их порядок должен совпадать с порядком, в котором расположены соответствующие поля в индексе.

Еще раз напомним, что этот метод можно применять только к локальным табли­цам. Кроме того, он позволяет найти только первую запись, удовлетворяющую заданному критерию, даже если таких записей в наборе несколько. Поэтому его обычно используют для быстрого поиска записи по ключу.

В листинге 5.35 представлена процедура, которая ищет автора в таблице Авторы по его коду. Поэтому нужно установить соединение с базой данных Библио­тека, mdb, что мы и делаем в примере.


Листинг 5.35. Процедура поиска автора (DАО)

^ Private Authorld As Long

Private Sub SeekEmployee()

Dim db As Database, rs As Recordset

' открываем базу данных

Set db = OpenDatabase("C: \Библиотека.mdb")

Set rs = db.OperrRecqrdset("Авторы", dbOpenTable)

rs.Index = "PrimaryKey"

rs.Seek "=", Authorld

If rs.NoMatch Then

MsgBox "Искомый автор не найден"

Exit Sub

Else

‘ код обработки данных об авторе



End If

rs.close

db.close

End Sub


В модели ADO метод Seek тоже имеет ограниченное применение — он может применяться только к объекту Recordset, который был создан путем прямого до­ступа к таблице. Это означает следующее. Обычно объект Recordset создается путем выполнения запроса на выборку, и даже если в качестве параметра Source передается имя таблицы, все равно создается и передается провайдеру OLE DB на выполнение запрос, выбирающий все данные из таблицы. Чтобы это обойти нужно в качестве значения параметра Options метода Open объекта Recordset пе­редать константу adCmdTableDirect1. Кроме того, метод Seek не может применять­ся, если свойство CursorLocation объекта Recordset имеет значение adUseClient, тс есть используется клиентский курсор.

Синтаксис метода Seek в модели ADO имеет следующий вид: <recordset>.Seek <KeyValues>, <SeekOption>.

Первый аргумент, <KeyValues>, представляет собой массив значений полей индекса а второй, <SeekOption>, — тип сравнения, причем в данном случае тип сравнения определяется константой. Перечень возможных констант приведен в табл. 5.4


Таблица 5.4. Значения аргумента SeekOption метода Seek

Константа

Описание

adSeekAfterEQ

Ищется ключ, равный KeyValues, или первый ключ, больший не*>

adSeekAfter

Ищется первый ключ, больший заданного KeyValues

adSeekBeforeEQ

Ищется ключ, равный KeyValues, или первый ключ, меньший него

adSeekBefore

Ищется первый ключ, меньший заданного KeyValues

adSeekFirstEQ

Ищется первый ключ, равный KeyValues

adSeekLastEQ

Ищется последний ключ, равный KeyValues


Это позволяют не все провайдеры, но провайдеры Microsoft Jet OLE DB.4.0 и SQL Server позволяют

Как и в модели ОАО, перед вызовом метода Seek нужно указать, какой индекс будет использоваться при поиске. Это должно быть имя объекта из семейства Indexes таблицы, в которой ведется поиск. При желании использовать при поис­ке первичный ключ нужно указать его имя. Это имя по умолчанию PrimaryKey, если вы его не изменили при создании таблицы. Аргумент <KeyValues> может содержать одно или несколько значений. Если выбранный индекс состоит из одного поля, передается одно значение. Если индекс состоит из нескольких по­лей, можно организовать массив, который будет содержать значения для каждо­го поля в индексе.

Если в результате поиска запись найдена, она становится текущей в объекте Recordset, если нет, то значение свойства EOF будет равным True.

В листинге 5.36 приводится пример поиска автора в таблице Авторы с помощью метода Seek.

Листинг 5.36. Процедура поиска автора (ADO)

Private Authorld As Long, strTable As String

Private Sub SeekAuthorO

Dim cnn As ADODB.Connection Dim rs As ADODB.Recordset

' открываем соединение с базой данных

Set cnn = New ADODB.Connection

With cnn

.Provider = "Microsoft.Jet.OLEDB.4.0"

.Open "С:\Библиотека.mdb"

End With

Set rs = New ADODB.Recordset

strTable = "Авторы"

With rs

' указываем индекс, который должен использоваться при поиске

^ .Index = "PrimaryKey";

' открываем таблицу, используя объект Recordset с прямым доступом к таблице .Open Source:= strTable, ActiveConnection:=cnn, _

CursorType:=adOpenKeyset, _

^ LockType:=adLockOptimistic, _

Options:=adCmdTableDi rect

выполняем поиск сотрудника

.Seek KeyValues:=EmployeeId, SeekOption:=adSeekFirstEQ

‘ если не нашли, выдаем сообщение об ошибке

If .EOF Then

MsgBox "Искомый автор не найден"

Exit Sub

End If

обрабатываем найденную запись ' код обработки

закрываем объект Recordset

^ .Close

End With

‘ закрываем соединение и освобождаем объектные переменные

cnn.Close

Set rst = Nothing

Set cnn = Nothing

End Sub

Добавление новой записи

Рассмотрим пример добавления новой записи, используя объекты DAO, а потом опишем, чем отличается выполнение этого метода в объектной модели ADO.

Итак, чтобы добавить новую запись в объект Recordset, нужно:

1. Выполнить метод AddNew, чтобы создать новую пустую запись и сделать ее текущей.

2. Присвоить нужные значения всем (или, по крайней мере, обязательным) по­лям этой записи.

3. Выполнить метод Update, чтобы сохранить внесенные изменения. При этом указатель текущей записи снова перемещается на ту запись, на которой он был установлен до применения метода AddNew.

В листинге 5.37 приводится пример добавления записи в таблицу Авторы. Чтобы добавление записи выполнялось корректно, должны быть присвоены значения, по крайней мере, всем обязательным полям таблицы. Значения полей берутся из элементов управления формы. 1


Листинг 5.37. Добавление записи в таблицу (DАО)

'добавление новой записи в таблицу "Авторы"

^ Set rs = dbCur.OpenRecordset("Авторы", dbOpenDynaset)

rs.AddNew

rs!КодАвтора = txtCode

rs!ФИО = txtName

rs!ГодРождения = intYear

rs.Update

rs.Close


При выполнении аналогичных изменений в объекте Recordset ADO инструкция, вызывающая метод Update, может быть опущена. Разница в поведении объектов Recordset DAO и ADO в данном случае состоит в том, что в модели ОАО при переходе от измененной записи к другой записи набора все изменения теряются, если перед этим не был вызван метод Update. В модели ADO все изменения ав­томатически сохраняются в базе при переходе к новой записи и без применения этого метода. Если нужно перейти к новой записи, не сохраняя сделанные в за­писи изменения, следует воспользоваться методом CancelUpdate.


^ Изменение существующей записи

Изменение текущей записи в модели DАО выполняется следующим образов:

1. Вызывается метод Edit, который переводит запись в состояние изменения.

2. Вносятся изменения в поля записи.

3. Вызывается метод Update для сохранения изменений.

Например, изменить программно значение поля в одной из записей таблицы Авторы можно с помощью следующей процедуры (листинг 5.38).

Листинг 5.38. Изменение записи в наборе (DАО)

Sub EditAuthor()

Dim rs As Recordset

Set rs = CurrentDb.OpenRecordset("Авторы")

rs.MoveFirst

Do Until rs.EOF

If rs!КодАвтора = 11 Then

rs.Edit

rs!ГодРождения = "1908"

rs.Update

End If

rs.MoveNext

Loop

End Sub


В объектной модели DAO использование методов Edit и Update обязательно. Если пропустить метод Edit, будет возникать ошибка времени исполнения. Если про­пустить метод Update, изменения не сохраняются.

В объектной модели ADO оба метода могут быть опущены. Можно просто изме­нить значения полей в текущей записи.


^ Удаление записи

Для удаления записи в наборе нужно сделать эту запись текущей и затем вы­звать метод Delete. Например, чтобы удалить записи, которые мы изменили в пре­дыдущем примере, нужно организовать следующий цикл:

^ Do Until rs.EOF

If rs!КодПодразделения = 11 Then

rs.Delete

End If

rs.MoveNext

Loop


В объектной модели ADO этот цикл будет выглядеть точно так же. При выполнении метода Delete запись без предупреждения удаляется из табли­цы, однако автоматического перехода к новой записи не происходит. Чтобы пе­рейти к следующей записи, нужно выполнить метод MoveNext.


^ Объекты Record и Stream для Access 2002

Эти два объекта новой модели ADO обеспечивают доступ к источникам данных которые не являются базами данных. Чаще всего это файлы файловой системь или сообщения электронной почты.

Объект Record может представлять каталог или файл файловой системы, папк) или сообщение электронной почты, а также строку объекта Recordset. Тип объек та Record определяется свойством RecordType.

Объект Record может быть использован, например, в качестве альтернативного способа представления иерархической организации данных. В этом случае Record представляет собой корень поддерева на любом уровне иерархии или лист дере­ва, то есть последний уровень иерархии. В первом случае он имеет подчиненные узлы, которые, в свою очередь, могут быть представлены объектами Record, во втором — ему может подчиняться объект Stream.

Для создания объекта Record используется метод Open, имеющий следующий синтаксис:

Open [<Source>], [<ActiveConnection>], [<Mode>], [<CreateOptions>], [<0ptions>], [<UserName>], [<Password>].

Аргумент <Source> содержит либо URL, указывающий на файл или каталог, либо ссылку на открытый объект Recordset.

<ActiveConnection> может быть объектом Connection, абсолютным адресом URL или существующим объектом Record.

Если аргумент <Source> является адресом URL, этот адрес может быть либо аб­солютным, либо относительным. Если <Source> является относительным адресом, базовый адрес для него должен определяться аргументом <ActiveConnection>. Например:


^ Dim en As New ADODB.Connection

Dim rec As New Record

'используем абсолютный адрес в Source

rec.Open http: //MyServer/MyPatjh/

'используем относительный адрес, а базовый адрес указываем

'в ActiveConnection

rec.Open "myFolder", "URL=http://MyServer/MyPath/"

'используем уже существующий объект Connection

en.Open "URL=http://MyServer/MyPath/"

rec.Open "mydoc.doc", en


Если значением аргумента является Recordset, то объект Record будет представ­лять текущую строку объекта Recordset.

Аргумент <Mode> указывает режим доступа к объекту Record (только чтение, чте­ние и запись, только запись и т. д.).

Аргумент <CreateOptions> определяет, будет ли открываться существующий файл (каталог) или будет создаваться новый. Если Record представляет строку объек­та Recordset, этот аргумент не должен использоваться.

Последние аргументы - <0ptions>, <UserName>,<Password> — определяют несколько дополнительных параметров, идентификатор и пароль пользователя соответственно. Объект Record имеет методы, которые позволяют копировать, перемещать на другое место или удалять,представляемые им объекты: файлы или каталоги. Это методы CopyRecord, MoveRecord и DeleteRecord соответственно. Еще один метод -GetChild - позволяет получить все подчиненные объекты, если Record представ^ ляет промежуточный узел в дереве. Этот метод возвращает объект Recordset, стро­ки которого представляют файлы и подкаталоги. Синтаксис этого метода следу­ющий:

Set <recordset> = <record>.GetChildren.

У объекта Record есть семейство Fields, содержащее те же объекты Field, что и Re­cordset, строку которого представляет объект Record. Кроме того, в этом семей­стве могут быть поля, добавляемые провайдером данных. Они являются допол­нительными характеристиками объекта. Семейство Fields имеет метод Append, с помощью которого можно добавлять поля в семейство. Вы можете добавлять и удалять добавленные вами поля, но не имеете возможности удалить поля, ко­торые существовали в Recordset или добавлены провайдером.

Если объект Record открыт из источника, указанного URL, то семейство Fields содержит только поля, создаваемые провайдером. Обычно это поля, описываю­щие создаваемый объект, например абсолютный URL, из которого объект создан, характеристики документа, если это документ. Одно из полей может представ­лять собой ссылку на объект Stream, связанный с данным объектом Record.

Stream представляет собой набор двоичных или текстовых данных. Как и другие объекты, его можно создать с помощью метода Open. Метод Open позволяет со­здать три типа объектов Stream:

  • объект ассоциирован с уже открытым объектом Record и представляет собой содержимое файла, на который ссылается объект Record;

  • объект не ассоциирован с объектом Record, и при его открытии указывается URL файла, содержащего нужные данные;

  • объект вообще не имеет источника, создается пустым и заполняется программно.

  • Объект Stream имеет следующие свойства:

  • Туре — определяет тип данных объекта: текстовый, двоичный;

  • State — определяет текущее состояние объекта: открыт, закрыт;

  • Mode — указывает режим доступа. По умолчанию объект Stream наследует значение этого свойства от объекта Record, с которым он связан, или (если он не связан с объектом Record) имеет значение adReadOnly (только для чтения);

  • Size — определяет число байт в объекте (если объект Stream не связан с источ­ником данных, после его открытия Size=0);

  • Position — указывает текущую позицию в массиве данных. Позиция всегда указывается в байтах;

  • LineSeparator — определяет символ, который является разделителем строк в текстовых данных (по умолчанию CRLF);

  • EOS — имеет значение True, когда текущая позиция указывает в конец массива данных.

Читать содержимое объекта Stream можно с помощью методов Read (читает за­данное количество байт) и ReadText (читает заданное количество символов). Чте­ние выполняется начиная с текущей позиции. При чтении текстовых данных можно использовать метод SkipLirie, который позволяет пропустить строку тек­ста (разделитель строки определяется свойством LineSeparator). Аналогичные методы (Write и WriteText) используются для записи данных в объ­ект Stream. Данные пишутся начиная с текущей позиции, и после того, как они запишутся, текущая позиция перемещается и устанавливается после последнего записанного символа. Если нужно записывать данные в конец массива, устано­вите перед этим текущую позицию в конец массива с помощью метода SetEOS.

Метод СоруТо позволяет скопировать нужное количество байт из одного объекта Stream в другой.

Два метода — LoadFromFile и WriteToFHe — позволяют заполнить открытый объект Stream данными из заданного файла и сохранить содержимое объекта Stream в файл соответственно. Если перед загрузкой данных из файла объект Stream содержал какие-то данные, они будут затерты. Аналогично при записи данных в существу­ющий файл все его содержимое будет заменено новыми данными. После вызова того и другого метода текущая позиция устанавливается в начало массива дан­ных объекта Stream (Position=0).
1   2   3



Скачать файл (21152.1 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации
Рейтинг@Mail.ru