µ±Ç°Î»ÖãºÊ×Ò³>ÍøÂçѧԺ>³ÌÐò¿ª·¢>Visual Basic½Ì³Ì>ÎÄÕÂÄÚÈÝ
¹ã¸æÎ»³ö×â ¹ã¸æÎ»³ö×â

RDO Ö®Addnew/Update/Delete

[ À´Ô´: | ×÷Õß: | ʱ¼ä:2007-06-26 | ÊÕ²Ø | ÍÆ¼ö ] ¡¾´ó ÖРС¡¿

¹ã¸æÎ»³ö×â

ÏÈǰÌÖÂÛÁËOpenresultSetµÄÖÖÖÖÌØÐÔ£¬ÏÖÔÚÀ´¿´¿´Ê¹ÓÃAddnew/Update/Deleteʱ£¬»áÓÐ
ʲ÷áÌØÐÔ¡£ÒÔ϶¼ÊÇÔÚRead CommittedµÄÇé¿öÖ®ÏÂ×öµÄ

Ò»¡¢SQL Server 6.5 / Informix Dynamic Server Ö® rdUseOdbc
    ÏÈǰ˵¹ý£¬ÕâÖÖ·½Ê½¿ªÆôÕߣ¬Ö»ÓÐrdOpenStaticʽµÄCursorËùÒÔProcess Addnew
µÄ×ÊÁÏProcess B¿´²»¼û£¬·Çµ«Èç´Ë£¬Á¬×Ô¼ºÒ²¿´²»¼û¡£ÇÒ´ËʱÎÞ·¨ÓÃLastModifiedÖ¸
ÏòÐÂÔöµÄ×ÊÁÏ¡£
    UpdateÄØ£¬¾ÍµÃ¿´Ë­ÏÈUpdate£¬ÏÈUpdateÕß»á³É¹¦£¬ááÀ´²ÅÈ¥updateͬһ±ÊµÄProcess
»áʧ°Ü£¬¶øÇÒ¾ÍËãMove 0¶øááÔÙÀ´Edit ...UpdateҲûÓÐЧ£¬³ý·ÇRequeryÖ®ááÔÙÀ´×ö
    DeleteÄØ£¬Èç¹ûProcess Aɾ³ýÁËijһ±Ê£¬Process B»¹ÊÇÄÜMoveµ½ÒÑɾ³ýµÄÄÇÒ»±Ê
ÆäʵÄÇÊÇÖ¸µ½×Ô¼ºClient¶ËµÄÄÇÒ»·ÝCopy£¬µ«Èç¹ûÏëÒª¼ÓÒÔÐ޸쬵±È»»á²úÉúError

¶þ¡¢SQL SERVER 6.5Ö®rdUseServer´îÅärdOpenKeyset
   Addnew áᣬ×Ô¼º¿´µÃ¼ûÐÂÔöÕߣ¬»á³öÏÖÔÚResultsetÖ®×îááÒ»±Ê£¬¾ÍËãÕâÒ»±Ê×ÊÁϲ»
ÂäÔÚResultsetµÄ·¶Î§£¬ËüÒ²»á³öÏÖÔÚCurrent ResultsetÖ®ÖУ¬µ±È»ÆäËûProceessÊÇ¿´
²»¼û£¬¶øÇÒ¿ÉÓÃLastModifiedÖ¸ÏòÐÂÔöµÄ×ÊÁÏ¡£
   Deleteáá×Ô¼ºµ±È»¾Í¿´²»¼ûÁË£¬È»¶øÆäËûµÄProcessÒ²»á·´Ó³ÄÇÒ»±ÊÒÑɾ³ý£¬¾ÍËã
DeleteµÄÄÇÒ»¸öProcess Under Transaction£¬¶øÉ¾³ýááÉÐδCommit/Rollback£¬´Ëʱ
ÆäËûµÄProcessÒ²»á·´Ó³¸Ã±ÊÒÑɾ³ý¶ø¶Á²»µ½£»µ«ÊǵÈDeleteµÄÄǸöProcess Ö´ÐÐRollback
áᣬɾµôµÄÄÇÒ»±ÊÔÚÆäËûProcessÒ²Á¢¼´ÔÙ³öÏÖ¡£²»¹ýÈç¹ûÊÇrdOpenForwardOnlyÇÒ
RowSetsize = 1£¬Ö»ÒªÉÐδ¶Áµ½¸Ã±ÊData£¬ÓпÉÄÜ»áµÈ´ýDeleteµÄÄÇÒ»±ÊCommit/RollBack
Ö®áá²ÅÄܶÁÈ¡³É¹¦¡£½²ËµÓпÉÄÜ£¬¶ø²»ÊÇÒ»¶¨£¬ÕâÊǺÍrdoQuery.SQLµÄÄÚÈÝÓйØ(ÕâÊDZ¾
È˵ļÙÉè)¡£
   ijһ±Ê×ÊÁϱ»UpdateÇÒCommitÖ®áᣬÆäËûµÄProcessÈç¹ûÔÙÈ¥UpdateËü£¬ÄÇÒª¿´¸Ã±Ê×Ê
ÁÏûÓÐÊÂÏȱ»¶ÁÈ¡ÁË£¬ÀýÈç˵ԭ±¾¶Á½øÀ´Ä³¸öÀ¸Î»ÖµÊÇ5£¬¶øÆäËûProcessÔÚÕâһ˲¼ä½«Ö®
¸Ä³É4ÇÒCommitÁË£¬Ä¿Ç°µÄProcessÏë¸Ä³É3ʱ¾Í»áÓÐ´í¡£´ËʱҪMove 0ááÔÙÖØÐÂEditÐÞ¸Ä×Ê
ÁÏÔÙUpdateÒ»´ÎÊÔ¿´¿´ÄÜ·ñ³É¹¦¡£µ±È»£¬Èç¹ûÎÒÃÇMoveµ½ÄDZÊ×ÊÁÏʱ£¬ËüÔç¾Í±»¸Ä³É4ÁË
(ÇÒCommittedÁË)£¬ÄÇ÷áÖ±½ÓUpdate²»»áÓÐÎó¡£

Èý¡¢SQL SERVER 6.5Ö®rdUseServer´îÅärdOpenDynamic

   ÕâÖÖ·½Ê½²»±»½¨ÒéʹÓ㬵«ÈÔÌá³ö±È½Ï¡£
   ProcessÐÂÔöµÄData£¬Èç¹ûÂäÔÚÆäËûProcessµÄResultsetÖ®ÖУ¬ÄÇÒ²»á¼ûµ½ÕâÐÂÔöµÄ
Data£¬È»¶ørdOpenDynamicµÄCursor²»ÄÜÓÃBookmark¡£¶øDelete / Update½Ô¿Éͬʱ·´Ó³
µ½ÆäËûµÄResultset(²»¹ýËüµÄ¶Áȡһ¶¨ÊÇCommitµÄ×ÊÁÏ£¬ºÍKeysetÓÐЩ²»Í¬)

ËÄ¡¢Informix µÄrdUseServerÅäºÏrdOpenKeyset(ËürdOpenStatic/rdOpenDynamicÐÐΪºÍ
    rdOpenKeysetÏàͬ)
  Addnew áᣬ×Ô¼º¿´²»¼ûÐÂÔöÕߣ¬ÕâºÍSQL Server²»Ïàͬ£¬µ±È»ÆäËûProceessÊÇ¿´²»¼û£¬
¶øÇÒûÓа취ÓÃLastModifiedÖ¸ÏòÐÂÔöµÄ×ÊÁÏ¡£ÕâÕæÊÇÒ»¼þºÜÔã¸âµÄÊ¡£ÉõÕߣ¬Èç¹ûÒ»¿ª
ʼÎÒÃǵÄTable ÄÚûÓÐÈκÎData£¬ÄÇ÷áÁ¬AddNew¶¼»áÓÐ´í£¬ÕâÊÇOpenLink ODBC Dreiver
For InformixµÄÒ»¸ö´í£¡

  ¶øDeleteÄØ£¬ºÍSQL SERVERµÄÇé¿öÈÔÓв»Í¬£¬É¾µôµÄÄÇÒ»±ÊÈç¹ûÉÐδCommit£¬ÄÇ÷ᣬ
ÆäËûµÄProcessÒª¶ÁÈ¡¸Ã±Êʱ»áWait£¬Èç¹ûTimeOutÄǾͲúÉúError¡£
 
  ¶øUpdateµÄÌØÐÔºÍSQL ServerÒ²²»Ì«Ïàͬ£¬ÀýÈç˵ԭ±¾¶Á½øÀ´Ä³¸öÀ¸Î»ÖµÊÇ5£¬¶øÆäËû
ProcesssÔÚÕâһ˲¼ä½«Ö®¸Ä³É4£¬²¢ÇÒÒ²CommitÁË£¬¶øÄ¿Ç°µÄProcessÏë¸Ä³É3ʱ£¬¾¹È»Ã»
ÓвúÉúÈκδíÎó»òWarnning£¬¶øUpdate¹ýááµÄData±ä³É4£¬Ò²²»ÊÇÏë¸üÕýµÄ3£¬ÕâÕæµÄÊÇÌ«
ÁîÈ˾ªÆæÁË£¡µ±È»£¬ÎÒÃÇ¿ÉÒÔÔÚ¸üÕý×ÊÁÏǰÏÈMove 0áá²ÅEditÐÞ¸Ä×ÊÁÏÔÙUpdate£¬µ«ÊÇÈç
¹ûÆäËûµÄProcessÔÚÕâMove 0ááµÄһ˲¼ä¸ü¶¯Ô­±¾µÄ×ÊÁϲ¢CommitÁË£¬Äǽá¹ûÈÔÈ»ÊÇ´í£¬¶ø
³ÌÐòÈ´²»»áÖªµÀ£¡ÎÒ²»ÖªµÀÕâÊÇ·ñOpenLink ³öµÄODBC DriverµÄ´í£¬µ«ÊÇÔÚÕâ¸öÏÖ×´ÏÂÈçºÎ
½âÄØ£¿Ö»ºÃÉ趨Cursor StabilityµÄIsolation Level£¬²¢ÅäºÏSet Lock Mode to Wait
ij¸öÃëÊý£¬ÔÚÕâ¸öÀý×ÓÖÐÏÈÏÂUpdateµÄProcess»á½øÈëµÈ´ý£¬ááÀ´²ÅUpdateµÄProcess»á²úÉú
Warnning£¬ÖÁì¶ÊÇʲ÷áÑùµÄWarnningÔò²»Ì«Ò»¶¨£¬ÊÜÕâÁ½¸öProcessÓÐûÓж¼É趨Cursor
StabilityµÄIsolation LevelÓëSet Lock ModeµÄÓ°Ï죬´«»ØµÄWarnning˵ʵÔڵģ¬ÕæÊÇ
ÂúÍ·ÎíË®£¬²»Í¬µÄÉ趨»á´«»Ø²»Í¬½á¹û£¬²»¹ýÖÁÉÙÈóÌÐòÄÜ´«»ØWarnningÁË£¬ÔÚ²úÉúWarnning
µÄͬʱ£¬ÁíÒ»¸öÕýÔÚUpdate¶ø½øÈëWaittingµÄProcessÖ»ÒªÉÐδTimeOut±ã¿ÉÒÔUpdate³É
¹¦ÁË(ÒòΪ´ËʱWarnningµÄProcess»á°ÑShare Lock½âµô)¡£¶øÄÇÒ»¸öÓÐWarnningµÄProcess
ÄØ£¬¾Í¿ÉÒÔʹÓÃMove 0, Edit .... UpdateµÄ³ÌÐòÖØÐÂÔÙÀ´Ò»´Î¡£ÁíÍ⣬Èç¹ûÊÇByteÀ¸Î»µÄ
¸üÐÂ/ÐÂÔö£¬Ê¹ÓÃrdUseServer¶¼²»»á³É¹¦£¬ÒªÊ¹ÓÃrdUseODBC²ÅÄܳɹ¦£¬ÕâÒ²ÊÇOpenLink ³ö
µÄODBC DriverµÄ´íÎó£¡

£¨ÔĶÁ´ÎÊý£º£©

·µ»Ø¶¥²¿
¡¡
¹ã¸æÎ»³ö×â

ÍøÓÑÆÀÂÛ

[ÒÔÏÂÆÀÂÛÎªÍøÓѹ۵㣬²»´ú±í±¾Õ¾¡£Çë×Ô¾õ×ñÊØ»¥ÁªÍøÏà¹ØÕþ²ß·¨¹æ£¬ËùÓÐÁ¬´øÔðÈξùÓÐÆÀÂÛÕß×Ô¸º¡£]
[²»³¬¹ý250×Ö]