VFP ·R¥ÎªÌªÀ°Ï ­º­¶ VFP ·R¥ÎªÌªÀ°Ï
¥»°Q½×°Ï¬° Visual Foxpro ·R¥ÎªÌ¸gÅç¥æ¬yªº¦a¤è, ½Ð¦h¦h§Q¥Î"·j´M"ªº¥\¯à, ¥ý¬d¬Ý¬Ý¦³µL«e¨Ò¥i´`, ¦pªGÁÙ¦³¤£À´ªº¦Aµo°Ý. ³¡¥÷¥DÃD¦³ªþ¥[ÀÉ®×, ¶·¥ýµù¥U¦¨¬°ªÀ°Ï©~¥Á¤~¥i¥H¤U¸ü.
 
 ±`¨£°ÝÃD±`¨£°ÝÃD   ·j´M·j´M   ·|­û¦Cªí·|­û¦Cªí   ·|­û¸s²Õ·|­û¸s²Õ   ·|­ûµù¥U·|­ûµù¥U 
 ­Ó¤H¸ê®Æ­Ó¤H¸ê®Æ   µn¤JÀˬd±zªº¨p¤H°T®§µn¤JÀˬd±zªº¨p¤H°T®§   µn¤Jµn¤J

¦h¥Î¤á©M¸ê®Æ½w¦sªº°ÝÃD

 
µoªí·s¥DÃD   ¦^ÂÐ¥DÃD    VFP ·R¥ÎªÌªÀ°Ï ­º­¶ -> VFP °Q½×°Ï
¤W¤@½g¥DÃD :: ¤U¤@½g¥DÃD  
µoªí¤H ¤º®e
Ruey



µù¥U®É¶¡: 2003-03-12
¤å³¹: 1698
¨Ó¦Û: tunglo

²Ä 1 ¼Ó

µoªíµoªí©ó: ¬P´Á¤T ¤K¤ë 13, 2003 11:12 am    ¤å³¹¥DÃD: ¦h¥Î¤á©M¸ê®Æ½w¦sªº°ÝÃD ¤Þ¨¥¦^ÂÐ

Visual FoxPro ¤¤ªº¦h¥Î¤á©M¸ê®Æ½w¦sªº°ÝÃD

§@ªÌ¡GDoug Hennig
ĶªÌ¡GRMH

--¥»¤å¥X¦Û¡m¤Ñ°ó½×¾Â¡n¡C­Y±ýÂà¸ü·q½Ðª`©ú

·§­z
¦b FoxPro 2.x ¤¤, ¶}µoªÌ½s¿è°O¿ý®É, ¥ý¥Î scatter memvar, µM«á½s¿è°O¾ÐÅéÅܼÆ, ³Ì«á¥Î gather memvar ±N°O¾ÐÅéÅܼƪº­È¼g¦^¨ì°O¿ý. ³oºØ¶¡±µ½s¿èÄæ¦ìªº§@¥Î¬O¥Î½w¦s¨Ó«OÅ@°O¿ý. ¦b Visual FoxPro ¤¤, ¸ê®Æ½w¦s¬O¤º¸mªº, ¦]¦¹¥i¥Hª½±µ½s¿èÄæ¦ì. ¥»¤å±N°Q½×¸ê®Æ½w¦s¦p¦ó¤u§@¨Ã±´¯Á¿ï¾Ü¨Ï¥Î½w¦s¾÷¨îªºµ¦²¤©M¦p¦ó³B²z¦h¥Î¤á½Ä¬ð.

²¤¶
¦pªG§A¨Ï¥Î¹L Visual FoxPro&, §A¥i¯à¤w¸g¾Ç·|¤Fªº²Ä¤@¥ó¨Æ¬O§A¥i¥H«ö­ì¨Óªº¤èªk¨Ó°µ§A·Q°µªº¨Æ, Visual FoxPro 爲§A°µ¬Û¦Pªº¨Æ±¡´£¨Ñ¤F¸û¦nªº¤èªk. ¦p¦ó½s¿èªí³æ¤¤ªº°O¿ý¬O³o¼Ëªº¤@­Ó§¹¬üªº¨Ò¤l.

¥H¤U¬O§Ú©Ò²ßºDªº¦Ñªº¦b¸ê®Æµn¿ý¿Ã¹õ¤¤½s¿è°O¿ýªº¤èªk:

¿Ã¹õ¤W¥Î»Pªí¤¤ªºÄæ¦ì¦P¦Wªº°O¾ÐÅéÅܼƪº get ª«¥ó (¨Ò¦p, M.CUST_ID ©M M.NAME).

·í¥Î¤á©w¦ì¨ìªí¤¤ªº¯S©w°O¿ý®É (¨Ò¦p, ¥Î "¤U¤@­Ó" «ö¶s), ¥Î scatter memvar ¨ÓŪ¨ú°O¿ý¨ì°O¾ÐÅéÅܼƨà show gets ¨Ó¨ê·sÅã¥Ü¦b¿Ã¹õ¤Wªº­È. ¥Î¤á¤£¯à½s¿èÅÜ¼Æ (¥¦­Ì¬O disabled ©Î¦³¤@­Ó­È爲 .F. ªº when ¤l¥y) ¦]爲¥Î¤á·í«e¬O³B©ó "¬d¬Ý" ¼Ò¦¡.

·í¯é¿ï¾Ü "½s¿è" «ö¶s®É, ¸ÕµÛÂê©w°O¿ý; ¦pªGÂê©w¥¢±Ñ«hÅã¥Ü¤@±ø¾A·íªº¸ê°T. Àˬd¬Û¹ï©ó¦U°O¾ÐÅéÅܼƪºÄæ¦ì­È¡X¦pªG¥¦­Ì¤£¤Ç°t, ¥²©w¬O¥t¤@­Ó¥Î¤á¦b§Ú­ÌÅã¥Ü¸Ó°O¿ý«á½s¿è¨Ã«O¦s¤F¸Ó°O¿ý. ¦b¦¹±¡ªp¤U, Åã¥Ü¤@±ø¾A·íªº¸ê°T¨Ã¥Î scatter memvar ©M¦A¦¸¨Ï¥Î show gets, ³o¼Ë¥Î¤á¥i¥H¬Ý¨ì°O¿ýªº·í«e¤º®e.
¦pªGÄæ¦ì©M°O¾ÐÅéÅܼƤǰt, enable get ª«¥ó©ÎÅý¥¦­Ìªº when ¤l¥yªº­È爲 .T. ³o¼Ë¥Î¤á¥i¥H½s¿èÅܼÆ.

·í¥Î¤á¿ï¾Ü "«O¦s" «ö¶s®É, °µ¤@¨ÇÅçÃÒ¨Ó½T«O¿é¤Jªº©Ò¦³¤º®e³£²Å¦X§Ú­Ìªº³W«h, µM«á gather memvar ¨Ó±q°O¾ÐÅéÅܼƧó·s°O¿ý¨Ã¸ÑÂê°O¿ý. Disable get ª«¥ó©Î¨Ï¥¦­Ìªº when ¤l¥yªº­È爲 .F. ³o¼Ë¥Î¤á¦A¶i¤J "¬d¬Ý" ¼Ò¦¡.

ª`·N¦b¸Ó¤è®×¤¤, §Ú­Ì¨Ã¨S¦³ª½±µ°w¹ï°O¿ý¶i¦æª½±µ read. ¬Û¤Ï, §Ú­Ì¤¹³\¥Î¤á½s¿è°O¾ÐÅéÅܼƨåu¦b¤@¤Á¥¿½Tªº±¡ªp¤U±N°O¾ÐÅéÅܼƼg¦^¨ìÄæ¦ì. ¨Ï¥Î¸Ó¤èªkªº²z¥Ñ¬O«OÅ@ªí; ¦b³q¹L©Ò¦³³W«h«e§Ú­Ì¤£¤¹³\¥ô¦ó¸ê®Æ«O¦s¨ìªí¤¤. ¤]½Ðª`·N¦b¥Î¤á½s¿è°O¾ÐÅéÅܼƮɰO¿ý¬O³QÂê©wªº. ³oÁקK¥t¤@­Ó¥Î¤á¦b¦P¤@®É¶¡½s¿è¬Û¦Pªº°O¿ý. ¦ý¬O, ³o¥ôµM¦s¦bµÛ "¥~¥X¤ÈÀ\" °ÝÃD¡X¦pªG¥Î¤á¶}©l½s¿è, µM«á¥~¥X¤ÈÀ\, °O¿ý¥ôµM¬O³QÂê¦íªº, «h¨ä¥L¥Î¤á¦b¦¹´Á¶¡¤£¯à½s¿è¸Ó°O¿ý.

·íµM, ³o¤£¬O°ß¤@½s¿è°O¿ýªº¿ìªk. §A¥i¥H¥Î¦b«O¦s°O¿ý«e¹ï¥¦¥[Âê¨Ó¥N´À¶}©l½s¿è®É¹ï¥¦¥[Âê. ³o¼Ë°µ¨Ï°O¿ý³QÂꪺ®É¶¡³Ì¤p¤Æ¤F, ¤¹³\¨ä¥L¥Î¤á³X°Ý¥¦. ³o¼Ë°µ¤]¦³¥¦ªº¯ÊÂI, ÁöµM: ¦pªG¥Î¤á½s¿èÅܼƨóæÀ» "«O¦s", ¦pªG¦³¨ä¥L¥Î¤á¦¹®É¤]¦b½s¿è¸Ó°O¿ý·|µo¥Í¤°麽¨Æ±¡©O? ¬O½Æ»\¥L­Ìªº­×§ï¶Ü? ¬O¨¾¤î«O¦s°O¿ý¶Ü? ³o¬O§A¥²¶·³v­Ó³B²zªº°ò¥»³]­p°ÝÃD.

³o¤@¤Áªº§V¤O³£¬O爲¤F«OÅ@¸ê®Æ. ¦pªG§A¥¿¦b¼g¤@­Ó¥Ã»·¥u¬O§A¨Ï¥ÎªºÀ³¥Îµ{¦¡, §A¥i¯à·|¨Ï¥¦§ó爲²³æ¡X¥u»Ýª½±µ read °O¿ý¤¤ªºÄæ¦ì. ³o¨Ï±o¿Ã¹õªº¦æ°Ê¹³¬O¤@­Ó»PÂsÄý¿Ã¹õµ¥¦Pªºªí³æ, ¦]爲§A¿é¤Jªº¨C¤@¼ËªF¦èª½±µ¶i¤J¨ì°O¿ý¤¤. ¦ý¬O, ¦]爲§Ú­Ì¤£¯à½T«H¨º¨Ç³Â·Ðªº¥Î¤áª¾¹D­þ¨ÇªF¦è¥i¥H¿é¤J¦Ó­þ¨ÇªF¦è¤£¯à¿é¤J, §Ú­Ì¤£±o¤£¦b¥Î¤á©Mªí¤§¶¡¥Í¦¨¤@­Ó "¨¾¤õÀð" ¨Ó«OÅ@¸ê®Æ. ¦b FoxPro 2.x ¤¤³Ð«Ø³oºØ "¨¾¤õÀð" »Ý­n¤j¶qªº¥N½X.

Visual FoxPro ´£¨Ñªº¤º¸m "¨¾¤õÀð" ¾÷¨îµ¹¤©§Ú­Ì¨â­Ó³Ì¨Îªº¥@¬É: ª½±µ read °O¿ý¨Ã¥u¦b¸ê®Æ³q¹L©Ò¦³´ú¸Õ«á¤~¤¹³\¼g¨ì¤å¥ó. ³o­Ó¾÷¨î´N¬O½w¦s.

½w¦s
¥Î°O¾ÐÅéÅܼƨӫO¦s°O¿ýªº¤º®e¥i¥H¦Ò¼{爲¹³¬O³Ð«Ø¤@­Ó¸ê®Æ½w¦s. ¸ê®Æ¥Î scatter memvar §âªí¤¤ªº°O¿ý¶Ç°e¨ì "½w¦s" ¨Ã¥Î gather memvar §â¸ê®Æ±q½w¦s¼g¨ìªí¤¤.

Visual FoxPro ¤£¶È¥i¥H¦Û°Ê¶i¦æ³oºØÃþ«¬ªº³æ°O¿ý½w¦s (ºÙ爲°O¿ý©Î¦æ½w¦s), ¥¦Á٤䴩¥t¤@ºØÃþ«¬ªº³X°Ý¦h­Ó°O¿ýªº½w¦s (ºÙ爲ªí½w¦s).

°O¿ý½w¦s³q±`¦b·í§A·Q¨C¦¸³X°Ý©Î§ó·s³æ­Ó°O¿ý®É¨Ï¥Î. ³o¤W­±´y­zªº¸ê®Æµn¿ý¾÷¨î¬O¬Û¦Pªº: ¥Î¤á¥i¥H¦bªí³æ¤WÅã¥Ü©Î½s¿è³æ­Ó°O¿ý. ªí½w¦s¦b¤@¦¸§ó·s¦h­Ó°O¿ý®É¿ï¥Î. ¸Ó±¡ªpªº¤@­Ó³q±`¥Ü¨Ò¬Oµo²¼ªºÀY-²Ó¿Ã¹õ. ¹ïµo²¼ªº²Ó¸`ªí¨Ï¥Îªí½w¦s, §A¥i¥H¤¹³\¥Î¤á«ö¥L­Ìªº§Æ±æ½s¿è²Ó¸`¦æ, ¨Ã¥i¥H¤@¦¸«O¦s©Î¨ú®ø©Ò¦³ªº²Ó¸`°O¿ý.

°£¨âºØ½w¦s¾÷¨î¥~, ÁÙ¦³¨âºØÂê¾÷¨î. §Ú¦b«e­±´y­zªº "¦Ñ" ªº¤èªk¥i¥H»{爲¬O«O¦u¦¡Âê¤è®×¡X°O¿ý¦b¥Î¤á¿ï¾Ü "½s¿è" ®É¥[Âê. ¨Ã«O«ùÂê©wª¬ºAª½¨ì¥L­Ì¿ï¾Ü "«O¦s" ©Î "¨ú®ø". ³o¥i¥H½T«O¦b·í«e¥Î¤á½s¿è°O¿ý®É¨S¦³§Oªº¥Î¤á­×§ï·í«e°O¿ý, ¨ú¨M©ó§AªºÀ³¥Î, ³o¥i¯à¬O¤]¥i¯à¤£¬O¤@ºØ¦n¤èªk. ¥t¤@ºØ¤èªk¬O§Ú¥ý«e´y­zªº¶}©ñ¦¡Âê¾÷¨î¡X°O¿ý¥u¦b¼g¤J®Éµu®É¶¡ªºÂê©w, ¤@¦ý¼g¤J¥ß§Y¸ÑÂê. ³o³Ì¤j¤Æ¤F°O¿ýªº¥i¥Î©Ê (´N¤]¬O衆©Ò©Pª¾ªº¥­¦æ§@·~) ¦ý·N¨ýµÛ§Ú­Ì¤£±o¤£³B²z¨â­Ó¥Î¤á¦P®É½s¿è°O¿ý®Éªº¸ê®Æ½Ä¬ð. ¥¿§Ú§Ú­Ì±N«Ü§Ö¬Ý¨ìªº¨º¼Ë, ³o¦b Visual FoxPro ¤¤¬O«Ü®e©ö³B²zªº, ¦]¦¹¶}©ñ¦¡½w¦s±N¥i¯à¬O³\¦hÀ³¥Îµ{¦¡¿ï¥Îªº¾÷¨î.

¦]爲°O¿ý¥i¥H¦Û°Ê¦a½w¦s, ¦]¦¹¤£¦A»Ý­n¨Ï¥Î "¤â°Ê½w¦s" ¾÷¨î. ´«¥y¸Ü»¡, ²{¦b§Ú­Ì¥i¥Hª½±µ read °O¿ý¤¤ªºÄæ¦ì¦Ó¤£¥Î¾á¤ßÃö©óºûÅ@¦UÄæ¦ìªº°O¾ÐÅéÅܼƪº°ÝÃD¤F. ­n«O¦s­×§ï, §Ú­Ì²³æ¦a§i¶D Visual FoxPro ±N½w¦s¼g¤Jªí¤¤, ¨Ã¥B­n¨ú®ø­×§ï, «h§i¶D¥¦»¡¤£. §Ú­Ì±N«Ü§Ö¬Ý¨ì¦p¦ó³o¼Ë°µ.

Visual FoxPro ¾a¦b¥´¶}ªíªº¦P®É³Ð«Ø¤@­Ó "´å¼Ð" ¨Ó¹ê²{½w¦s. ´å¼Ð¥Î©ó©w¸qªíªºÄÝ©Ê. ¦b¨Ï¥Î¥»¦aªíªº±¡ªp¤U, ´å¼Ðªº°ß¤@ÄݩʬO½w¦s¦p¦ó°õ¦æ; µø¹Ï©M»·ºÝªí¦³µÛ¶W¥X¥»¤å°Q½×½d³ò¥~ªºÃB¥~ªºÄÝ©Ê. ³o¨ÇÄݩʥΠcursorsetprop() ¨ç¼Æ³]¸m¨Ã¥Î cursorgetprop() ¨ÓŪ¨ú. §Ú­Ì±N«Ü§Ö¬Ý¨ì¦p¦ó¨Ï¥Î³o¨Ç¨ç¼Æ.

ªí½w¦s¦³¤@­ÓÃö©ó²K¥[ªº°O¿ýªº¦³½ìªº¹ê²{: ·í°O¿ý³Q²K¥[¨ì½w¦s¤¤®É, ¥¦­Ì³Q«ü©w¤@­Ó­tªº°O¿ý¸¹. ¹ï©ó²Ä¤@­Ó²K¥[ªº°O¿ý recno() ªð¦^ -1, ²Ä¤G­Ó²K¥[ªº°O¿ý爲 -2, µ¥µ¥. §A¥i¥H¥Î¤@­Ó±a­t¸¹ªº go ©R¥O¨Ó©w¦ì¨ì·s²K¥[¨ì½w¦s¤¤ªº¾A·íªº°O¿ý. ³o·N¨ýµÛ³B²z°O¿ý¸¹ªº±`¦¡¡X¹ï©óÀˬd between(lnRecno, 1, reccount()) ¨Ó½T«O lnRecno ¬O¤@­Ó¥i¥Îªº°O¿ý¸¹, §A²{¦b¤£±o¤£¥Î between(lnRecno, 1, reccount()) or lnRecno < 0 ¨Ó¥N´À¥¦.

¨Ï¥Î½w¦s
½w¦s¦bÀq»{±¡ªp¤U¬OÃö³¬ªº, ³o¼Ë Visual FoxPro ªº¦æ爲´N¶H FoxPro 2.x ¤¤§â§ó·s¼g¤Jªí¤¤¤@¼Ë. ­n¨Ï¥Î½w¦s, §A¥²¶·©ú½Tªº¥´¶}¥¦. ¦Û¥Ñªí©M©M¸ê®Æ®w¤¤ªºªí³£¥i¨Ï¥Î½w¦s. ½w¦s­n¨D§A set multilocks on ¦]爲¦bÀq»{±¡ªp¤U¥¦¬O off ªº; ¦pªG§A§Ñ°O¤F³o¼Ë°µ, ±N·|±o¨ì¤@±ø¿ù»~¸ê°T. §A¥i¥H©ñ¤J¤@±ø multilocks = on ¨ì§Aªº CONFIG.FPW ©Î¦b¤u¨ã¥\¯àªí¤¤ªº¿ï¶µ¹ï¸Ü¤è¶ô¥t¶i¦æ³]¸m¨Ã«O¦s¥¦爲¹w³]­È.

½w¦s¥Î cursorsetprop('Buffering', <n>, <Alias>) ¨Ó±±¨î. ¦pªG§A¬O爲·í«eªí³]¸m½w¦s, «h§A¤£¥²«ü©w <Alias>. ¨ú¨M©ó§A·Q¨Ï¥Îªº½w¦s©MÂê°O¿ýªº¤èªk, <n> ¬O¥H¤U¤@­Ó­È:

½w¦s/Âê¤èªk <n>
µL½w¦s 1
°O¿ý, «O¦u¦¡ 2
°O¿ý, ¶}©ñ¦¡ 3
ªí, «O¦u¦¡ 4
ªí, ¶}©ñ¦¡ 5

¨Ò¦p, ­n啓¥Î¶}©ñ¦¡°O¿ý½w¦s, ¥Î cursorsetprop('Buffering', 3). ­nÀˬdªí·í«e¨Ï¥Îªº½w¦s¤è¦¡, ¥Î cursorgetprop('Buffering').
­n¦bªí³æ¤¤啓¥Î½w¦s, §A¥i¥H¦bªí³æªº LOAD ¨Æ¥ó¤¤爲¨C¤@­Óªí«ü©w cursorsetprop(), ¦ý­º¿ïªº¤èªk³]¸mªí³æªº BufferMode ÄÝ©Ê爲 «O¦u¦¡ ©Î ¶}©ñ¦¡ (Àq»{爲 "µL"). ³o¼Ëªí³æ±N¦Û°Ê¹ïªí®æ¨Ï¥Îªºªí¨Ï¥Îªí½w¦s¦Ó¹ï¨ä¥L©Ò¦³ªí¨Ï¥Î¦æ½w¦s. ¦pªG§Aªºªí³æ¨Ï¥Î¤F¸ê®ÆÀô¹Ò, §A¥i¥H¹ï¯S©wªºªí«ö»Ý­n³]¸m¥¦ªº BufferModeOverride ¨Ó½Æ»\ªí³æªº BufferMode.

·í¥Î¤á­×§ï¤F½w¦s°O¿ý¤¤ªº¸ê®Æ®É (¥¦­Ì¬O¥¿³B²z½s¿è¤¤ªº°O¿ý), §A¥²¶·¤£¶È³X°Ý¥L­Ì¦bÄæ¦ì¤¤¿é¤Jªº­È, ¤]­n³X°Ý¦UÄæ¦ìªº¶ñ¥R­È©M¥¦ªº·í«e­È (ºÏ¤ù¤Wªº¹ê»Ú­È). VFP ¤¤·s²K¥[ªº¨â­Ó¨ç¼Æ oldval() ©M curval(), ¥Î©ó³oºØ³B²z. ¥H¤U¬O§A¦p¦óÀò¨ú¾A·íªº­È:

­nÀò¨ú: ¥Î:
¥Î¤á¿é¤J­È (½w¦s¤¤ªº­È) <fieldname> ©Î <alias.fieldname>
¥Î¤á­×§ï«eªº­È oldval('<fieldname>')
°O¿ý¤¤ªº·í«e­È curval('<fieldname>')

curval() ©M oldval() ¥u¥i¥Î©ó¶}©ñ¦¡½w¦s.

§A¥i¯à¹ï爲¤°麽 curval() ªð¦^ªº­È·|»P oldval() ªð¦^ªº­È¤£¦P·P¨ì©_©Ç. ¦b³æ­Ó¥Î¤á¹B¦æµ{¦¡®ÉÅãµM¤£·|µo¥Í³oºØ±¡ªp±¡ªp. ¦ý¬O, ¦b¨Ï¥Î¶}©ñ¦¡Âꪺºô¸ôÀô¹Ò¤¤, ¦b¥Î¤á¶}©l½s¿è°O¿ý«á¦³¥i¯à, ¥t¤@­Ó¥Î¤á½s¿è¬Û¦Pªº°O¿ý¨Ã«O¦s¤F¥L­Ìªº­×§ï. ¥H¤U¬O¥Ü¨Ò:

Fbilo ©w¦ì¨ì CONTACTS.DBF ªíªº²Ä¤G±ø°O¿ý¨Ã³æÀ» "½s¿è" «ö¶s:

Äæ¦ì ­È oldval() curval()
LAST_NAME Jones Jones Jones
FIRST_NAME Bill Bill Bill

Fbilo ­×§ï first name ªº­È爲 Sam ¦ýÁÙ¨S¦³«O¦s°O¿ý:

Äæ¦ì ­È oldval() curval()
LAST_NAME Jones Jones Jones
FIRST_NAME Sam Bill Bill

RMH ¦b¥t¤@¥x¹q¸£¤W©w¦ì¨ì CONTACTS.DBF ªíªº²Ä¤G±ø°O¿ý, ³æÀ» "½s¿è" «ö¶s, ­×§ï first name Äæ¦ìªº­È爲 Eric, ¨Ã«O¦s. ¦b Bugs ªº¾÷¾¹¤W:

Äæ¦ì ­È oldval() curval()
LAST_NAME Jones Jones Jones
FIRST_NAME Sam Bill Eric

ª`·N FIRST_NAME, oldval('FIRST_NAME') ©M curval('FIRST_NAME') ³£ªð¦^¤F¤£¦Pªº­È. ³X°Ý°O¿ý¤¤¦UÄæ¦ìªº­ì­È, ½w¦sªº­È©M·í«e­È, §A¥i¥H:

¤ñ¸û½w¦sªº­È©M·½­È¨ÓÀˬd¥Î¤á­×§ï¤F­þ¨ÇÄæ¦ì; ¨Ã ¤ñ¸û­ì­È©M·í«e­È¨ÓÀˬd¬O§_ºô¸ô¤¤ªº¨ä¥L¥Î¤á¦b¶}©l½s¿è«á­×§ï¤F¬Û¦Pªº°O¿ý.

¦pªG§A¤£Ãö¤ß­ì­È©M·í«e­È¦Ó¥u·QÀˬd¬O§_¤@­ÓÄæ¦ì³Q¨ä¥L¥Î¤á­×§ï¤F, ¥i¥H¥Î getfldstate(). ³o­Ó·s¨ç¼Æªð¦^¤@­Ó¼Æ­È«¬ªº­È¨Ó«ü©ú¬O§_·í«e°O¿ý¤¤ªº¬Y¨ÇªF¦è³Q­×§ï¤F. getfldstate() ½Õ¥Î¤èªk¦p¤U:

getfldstate(<FieldName> | <FieldNumber> [, <Alias> | <WorkArea>])

¨Ãªð¦^¥H¤U¤@­Ó­È:

­È »¡©ú
1 ¥¼§ïÅÜ
2 Äæ¦ì¤w³Q­×§ï°O¿ýªº§R°£ª¬ºA³Q§ïÅÜ
3 °O¿ý³Q²K¥[¦ý¥¼­×§ï¥B§R°£ª¬ºA¥¼§ïÅÜ.
4 °O¿ý³Q²K¥[Äæ¦ì¤w­×§ï©Î§R°£ª¬ºA¤w§ïÅÜ.

§ïÅܧR°£ª¬ºA·N«ä¬O§R°£©Î recall ¤F°O¿ý. ª`·N§R°£«á¥ß§Y recall °O¿ý±N³y¦¨ªð¦^ 2 ©Î 4, ÁöµM³o¼Ë¹ï°O¿ý¨Ã¨S¦³¹ê»Úªº¼vÅT.

¦pªG§A¨S¦³«ü©w§O¦W©Î¤u§@°Ï, getfldstate() ¦b·í«eªí¤W¾Þ§@. «ü©w <FieldNumber> 爲 0 ¨Óªð¦^·í«e°O¿ýªº²K¥[©Î§R°£ª¬ºA. ¦pªG§A«ü©w <FieldNumber> ªº­È爲 -1, ¨ç¼Æ±Nªð¦^¤@­Ó¦r¦ê, ¦êªº²Ä¤@­Ó¼Æ¦ì¥Nªíªíªºª¬ºA©M¦UÄæ¦ì¤@­Ó¼Æ¦ìªºÄæ¦ìª¬ºA.

¦b¥ý«e´£¤Îªº¥Ü¨Ò¤¤, ¦b RMH ½s¿è¤F²Ä¤G±ø°O¿ý, getfldstate(-1) ±Nªð¦^ "112". ²Ä¤@­Ó 1 »¡©ú°O¿ý¨S¦³²K¥[©Î§R°£, ²Ä¤G­Ó 1 »¡©ú²Ä¤@­ÓÄæ¦ì¨S¦³³Q­×§ï, ²Ä¤T­Ó 2 »¡©ú²Ä¤G­ÓÄæ¦ì³Q­×§ï¤F.

±N½w¦s¸ê®Æ¼g¤J°O¿ý
Ä~Äò¥ý«eªº¥Ü¨Ò, ²{¦b RMH ³æÀ» "«O¦s" «ö¶s. §Ú­Ì¦p¦ó§i¶D Visual FoxPro ±N½w¦s¤¤ªº¸ê®Æ¼g¨ì°O¿ý¤¤? ¦b¨Ï¥Î°O¿ý½w¦s®É, ªí¦b§A²¾°Ê°O¿ý«ü¼Ð©Îµo§G¤@±ø·sªº tableupdate() ©R¥O®É§ó·s. ¦b¨Ï¥Îªí½w¦s®É, ²¾°Ê°O¿ý«ü¼Ð¤£·|§ó·sªí (¥Ñ©ó¾ã­Óªíªº½w¦sªº«ü¼Ð¬O«ü¦V¦h­Ó°O¿ý), ¦]¦¹³q±`ªº¤èªk¬Oµo§G¤@±ø tableupdate(). §Y¨Ï¬O¨Ï¥Î°O¿ý½w¦s, ³Ì¦nÁÙ¬O¨Ï¥Î tableupdate(), ¦]爲³o¼Ë°µ¨Ï§A¦³§ó¦hªº±±¨î.

¦pªG½w¦s³Q¦¨¥\¦a¼g¨ì¤F°O¿ý¤¤ tableupdate() ªð¦^ .T.. ¦pªG°O¿ý½w¦s¨S¦³­×§ï (¥Î¤á¨S¦³½s¿è¥ô¦óÄæ¦ì, ²K¥[°O¿ý, ©Î§ïÅÜ°O¿ýªº§R°£ª¬ºA), tableupdate() ªð¦^ .T. ¦ý¹ê»Ú¤W¤°麽¤]¨S¦³°µ.

tableupdate() ¨Ï¥Î¤Ö¶q¥i¿ï°Ñ¼Æ:

tableupdate(<AllRows>, <Forced>, <Alias> | <Workarea>)

²Ä¤@­Ó°Ñ¼Æ«ü©ú­n§ó·s¤°麽°O¿ý: .F. §i¶D¥¦¥u§ó·s·í«e°O¿ý, .T. ·N«ä¬O§ó·s©Ò¦³°O¿ý (¶È¦b¨Ï¥Îªí½w¦s®É¦³®Ä). ¦pªG²Ä¤G­Ó°Ñ¼Æ¬O .T., ©Ò¦³¨ä¥L¥Î¤á¹ï°O¿ýªº­×§ï±N³Q·í«e¥Î¤áªº­×§ï­È½Æ»\. °£«D«ü©w¤F²Ä¤T­Ó°Ñ¼Æ, tableupdate() ±N§ó·s·í«e¤u§@°Ï¤¤ªºªí.

¦p¦ó¨ú®ø¥Î¤á¹ï°O¿ýªº­×§ï? ¨Ï¥Î°O¾ÐÅéÅܼƪº¤èªk®É, §A¥u»Ý¦A¦¸ scatter memvar ¨Ó«ì´_°O¾ÐÅéÅܼƨ쥦­Ì¦bºÏ¤ù¤Wªº­ì©l­È. ¦b¨Ï¥Î½w¦s®É, ¨Ï¥Î tablerevert() ¨ç¼Æ¨Ó§¹¦¨¬Û¦Pªº¤u§@.
³B²z¿ù»~
Ä~Äò«e­±ªº "Fbilo ©M RMH" ¥Ü¨Ò, Fbilo ³æÀ» "«O¦s" «ö¶s®É°õ¦æªº¥N½X¨Ï¥Î tableupdate() ¨ç¼Æ¨Ó¸Õ¹Ï¼g½w¦s¨ì°O¿ý. °O¦í RMH ¦b Fbilo ½s¿è¸Ó°O¿ý®É¤]½s¿è¤F¸Ó°O¿ý¨Ã«O¦s¥Lªº­×§ï. ·í Fbilo ³æÀ» "«O¦s" ®É, tableupdate() ±Nªð¦^ .F., ·N«ä¬O¥¦¤£¯à¼g½w¦s. 爲¤°麽·|³o¼Ë?

Visual FoxPro ¦b¥H¤U±ø¥ó¤U¤£·|¼g½w¦s¨ì°O¿ý:

ƒÜ ƒÜ ·í¸Ó¥Î¤á½s¿è¸Ó°O¿ý®É, ¥t¤@­Ó¥Î¤á­×§ï¨Ã«O¦s¤F¸Ó°O¿ý (´N¶Hµo¥Í¸Ó¨Ò¤¤ªº±¡ªp). Visual FoxPro ¦Û°Ê¤ñ¸û¨C¤@­ÓÄæ¦ìªº oldval() ©M curval(). ¦pªG¥¦Àˬd¨ì¥ô¦ó¤£¦P, «hµo¥Í¤F¸ê®Æ½Ä¬ð.
ƒÜ ƒÜ ¥Î¤á¿é¤J¤F­«´_ªº¥DÃöÁä©Î­Ô¿ïÃöÁä¦r­È.
ƒÜ ƒÜ ¹H¥Ç¤FÄæ¦ì©Îªí³W«h, ©Î¤£¤ä´© null ªºÄæ¦ìªº­È爲 null.
ƒÜ ƒÜ IJµo¾¹¥¢±Ñ.
ƒÜ ƒÜ ¥t¤@­Ó¥Î¤áÂê¦í¤F°O¿ý. ³o¥i¥H¥Î rlock() ¤â°Ê¦aÂê°O¿ý©M¦b©Ò¦³ªí³æ©M³X°Ý¥¦ªºµ{¦¡¤¤¹ïªí¨Ï¥Î¬Û¦Pªº½w¦sÂê¾÷¨î¨Ó³Ì¤p¤Æ.
ƒÜ ƒÜ ¥t¤@­Ó¥Î¤á§R°£¤F°O¿ý.

·í tableupdate() ¥¢±Ñ®É§A¥²¶·¨M©w«ç麽°µ. ¥t¥~, ¦pªG§Aªºµ{¦¡¤¹³\¥Î¤á¦b½s¿è¤@­Ó°O¿ý®É³æÀ» "¤U¤@±ø" ©Î "¤W¤@±ø" «ö¶s, ¦Ó¦b³o¨Ç«ö¶sªº¥N½X¤¤¤S¨S¦³¨Ï¥Î tableupdate(), §A¥²¶·³B²z¸Õ¹Ï¦Û°Ê¦sÀɮɱNµo¥Íªº¿ù»~. ³B²z¥H¤W¨âºØ±¡ªp¤¤ªº¿ù»~ªº¦X¾Aªº¦a¤è¬O¦b¿ù»~®·®»±`¦¡¤¤.

¿ù»~³B²z¤w¦b Visual FoxPro ¤¤±o¨ì§ï¶i. ­ì¨Óªº¿ìªk¬O¥Î on error ©R¥O¨Ó«ü©w¤@­Ó¿ù»~µo¥Í®É­n°õ¦æªºµ{¦¡¨Ó³]¸m¿ù»~³´¨À (§A¤´¥i¥Î©ó isual FoxPro ¤¤). ¸Ó¿ù»~±`¦¡±N¨å«¬¦a¬d¬Ý error() ©M message() ¥HÀˬdµo¥Í¤F¤°麽°ÝÃD, ¨Ã±Ä¨ú¾A·íªº±¹¬I.

Visual FoxPro ²{¦b´£¨Ñ¤F¤@ºØ¦Û°Ê¿ù»~³B²z¾÷¨î: Error ¤èªk. ¦pªG¤@­Óªí³æ©Îª«¥óªº Error ¤èªk¦s¦b, «h¿ù»~µo¥Í®É¥¦±N¦Û°Ê°õ¦æ¦Ó¤£¥²¤â°Ê¦a³]¸m³´¨À. aerror() ¬O¤@­Ó·sªºÀ°§U«ü¥X¿ù»~­ì¦]ªº¨ç¼Æ. §A¶Ç»¼µ¹¥¦¤@­Ó°}¦C¦WºÙ¥¦·|¥Î¥H¤U¤¸¯À³Ð«Ø©Î§ó·s°}¦C:

_________________
#############################
§Ö¼Ö¶ý«}¨t¦C©¯ºÖ¦v°t,³Ü¤Q¥þÂû´ö~­ì¨Ó©¯ºÖ¨º»ò²³æ!!

¾Ç·|VFP¨Ï¥ÎªÌªÀ°Ïªº·j´M,Code¤~·|§ó¦³½ì~
#############################
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
±q¤§«eªº¤å³¹¶}©lÅã¥Ü:   
µoªí·s¥DÃD   ¦^ÂÐ¥DÃD    VFP ·R¥ÎªÌªÀ°Ï ­º­¶ -> VFP °Q½×°Ï ©Ò¦³ªº®É¶¡§¡¬° ¥x¥_®É¶¡ (GMT + 8 ¤p®É)
²Ä1­¶(¦@1­¶)

 
«e©¹:  
±z µLªk ¦b³o­Óª©­±µoªí¤å³¹
±z µLªk ¦b³o­Óª©­±¦^ÂФ峹
±z µLªk ¦b³o­Óª©­±½s¿è¤å³¹
±z µLªk ¦b³o­Óª©­±§R°£¤å³¹
±z µLªk ¦b³o­Óª©­±¶i¦æ§ë²¼
±z µLªk ¦b³o­Óª©­±ªþ¥[ÀÉ®×
±z µLªk ¦b³o­Óª©­±¤U¸üÀÉ®×


Powered by phpBB © 2001, 2005 phpBB Group
¥¿Å餤¤å»y¨t¥Ñ phpbb-tw ºûÅ@»s§@