📄 db971228.gb_
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>资料库: 如何锁定一笔资料录(record) 或是一个资料表(Table)?</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><IMG SRC="../../g/more.jpg" HEIGHT=19 WIDTH=79></P></CENTER>
<H3 ALIGN=CENTER>
<HR WIDTH="100%">如何锁定一笔资料录(record) 或是一个资料表(Table)?(12/31/97
补充说明)
<HR WIDTH="100%"></H3>
<DIV ALIGN=right><ADDRESS><FONT COLOR="#008000">参阅章节:13-1 节,p.410。</FONT></ADDRESS></DIV>
<CENTER><TABLE CELLSPACING=0 WIDTH="95%" >
<TR>
<TD>本书在 p.410 曾经介绍「如何将资料库开启成<FONT COLOR="#FF0000">独占的</FONT>资料库」,
但是否可以锁定某一笔资料录(<FONT COLOR="#008000">因为写入资料时, 要防止另一个程式也写入资料而出现资料不一致的现象</FONT>),
或锁定某一个资料表(<FONT COLOR="#008000">大量更新资料时, 乾脆禁止其他程式使用此一资料表</FONT>)?
<P>
<HR WIDTH="100%"></P>
<P><FONT COLOR="#FF0000">一、锁定资料录:</FONT></P>
<UL>
<P>这个问题, VB 资料库已经帮我们设想到了, 当某一个程式呼叫了 <FONT COLOR="#FF0000">Edit</FONT>
方法之後(表示要写入资料), 在这个程还没有呼叫<FONT COLOR="#FF0000"> Update</FONT>(确定更新资料)
或呼叫 <FONT COLOR="#FF0000">CancelUpdate</FONT>(取消更新资料) 之前,资料录是一直锁定的,所以在程式的撰写上,
我们并不需要特别锁定某一资料录。</P>
<P><B><FONT COLOR="#FF0000"><FONT SIZE=+1>补充说明(12/31)</FONT></FONT></B>:在
mdb 的内部资料结构上, 储存资料是以 Page 为单位,因此「锁定资料录」真正的作法是<FONT COLOR="#FF0000">锁定
Page</FONT>, 目前 mdb 一个 Page 的预设值是 2K(可能含有一到多笔资料录),
这表示<FONT COLOR="#0000FF">如果在被锁定的 2K 资料中含有 5 笔资料录, 那麼呼叫
Edit 之後, 就同时有 5 笔资料录被锁定</FONT>,这也表示我们只应该在即将写入资料时,
才呼叫 Edit, 不要在呼叫 Edit 之後, 又执行一大堆与资料写入不相关的动作。</P>
</UL>
<P><FONT COLOR="#FF0000">二、锁定资料表:</FONT></P>
<UL>
<P>想要锁定资料表, 可在 OpenRecordset 开启资料表时, 增加一个参数, 如下:</P>
<UL>
<P>Set rs = db.OpenRecordset( "资料表名称", dbOpenDynaset, <FONT COLOR="#FF0000">dbDenyWrite</FONT>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -