📄 db980109.gb_
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>资料库: 呼叫 Recordset.Delete 之後,有反悔的机會吗?</TITLE>
<META NAME="Author" CONTENT="KJ Wang">
<META NAME="GENERATOR" CONTENT="Mozilla/3.01Gold (Win95; I) [Netscape]">
</HEAD>
<BODY TEXT="#202020" BGCOLOR="#FFFFFF" LINK="#FF0000" VLINK="#0000FF" ALINK="#FF0000">
<H2 ALIGN=CENTER><A HREF="vbdb.htm">VB5 与资料库程式设计</A></H2>
<CENTER><P><B><FONT SIZE=+1>补充教材</FONT></B></P></CENTER>
<H3 ALIGN=CENTER>
<HR WIDTH="100%">呼叫 Recordset.Delete 之後,有反悔的机會吗?(98/01/09
补充说明)
<HR WIDTH="100%"></H3>
<DIV ALIGN=right><ADDRESS><FONT COLOR="#008000">参阅章节:第17章-第 4 招,p.531。</FONT></ADDRESS></DIV>
<CENTER><TABLE CELLSPACING=0 WIDTH="95%" >
<TR>
<TD>基本上, 呼叫 Recordset.Delete 之後, 资料录會立刻从资料库中除去,
但请参考 p.531 的 BeginTrans 及 CommitTrans, 其中:
<UL>
<TABLE BORDER=1 CELLSPACING=0 >
<TR VALIGN=TOP>
<TD>BeginTrans</TD>
<TD>是将所有更新资料库的动作先写到记忆体中。(这表示被删除的资料录还没有从资料库档案中除去)</TD>
</TR>
<TR>
<TD>CommitTrans</TD>
<TD>真正将记忆体中资料变动的情形写到资料库档案中。</TD>
</TR>
</TABLE>
</UL>
<P>除了以上两个方法之外, 另一个方法 <FONT COLOR="#FF0000">RollBack</FONT>(书中未介绍)
的作用则是「<FONT COLOR="#FF0000">取消记忆体中的资料变动</FONT>」。</P>
<P>
<HR WIDTH="100%"></P>
<P>有了以上几个方法之後, 我们可以利用以下程式决定 Delete 是否真正地删除资料录:</P>
<UL>
<PRE><FONT SIZE=+1><FONT COLOR="#008000">' rs 为一 Recordset 物件
</FONT>DBEngine.<FONT COLOR="#FF0000">BeginTrans
</FONT>rs.<FONT COLOR="#FF0000">Delete </FONT> <FONT COLOR="#008000">' 由於之前呼叫了 Begins, 所以此一 Delete 尚未真正删除资料录
</FONT>If ... Then <FONT COLOR="#008000">' 真正删除资料录的条件成立时
</FONT> DBEngine.<FONT COLOR="#FF0000">CommitTrans</FONT> <FONT COLOR="#008000">' 将变动真正到写到资料库档案中
</FONT>Else
DBEngine.<FONT COLOR="#FF0000">RollBack</FONT> <FONT COLOR="#008000">' 取消所有的变动
</FONT>End If </FONT></PRE>
</UL>
</TD>
</TR>
</TABLE></CENTER>
<P>
<HR WIDTH="100%"></P>
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -