⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vb6error.htm

📁 Active Server Pages 网页制作教程看之前请传到ASP空间。或者本地用iis。或安装pws内有说明
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="Author" content>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<title>VB6 与数据库程序设计 - 错误更正</title>
</head>

<body bgcolor="#FFFFFF" text="#202020" link="#FF0000"
vlink="#000080" alink="#FF0000">

<h2 align="center"><font color="#0000FF">VB6 
数据库程序设计</font></h2> 
 
<p align="center"><font color="#800000" size="5"><b>错误更正</b></font></p> 
 
<hr> 
 
<h3><font color="#800000">更正日期:99/06/07</font></h3> 
 
<hr> 
 
<p><font color="#0000FF">p.169 程序:</font></p> 
 
<blockquote> 
    <p>原书内容:</p> 
</blockquote> 
 
<blockquote> 
    <blockquote> 
        <pre><font color="#0000FF">Private Sub Adodc1_Error(DataErr AS Integer, Response _
As Integer)</font><font color="#FF0000">
</font>    If ErrorNumber = <font color="#0000FF">3662</font> Then
        '处理错误程序码,例如显示错误信息
        <font color="#0000FF">Response = 0</font><font
color="#FF0000"> </font>'请Adodc控件不必再显示任何信息
    End If
End Sub</pre> 
    </blockquote> 
    <p>更正后内容:</p> 
</blockquote> 
 
<blockquote> 
    <blockquote> 
        <pre><font color="#FF0000">Private Sub Adodc1_Error(ByVal ErrorNumber As Long, Description As String,
ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal
HelpContext As Long, fCancelDisplay As Boolean)
</font>    If ErrorNumber = <font color="#FF0000" size="4"><strong>16389</strong></font> Then
        '处理错误程序码,例如显示错误信息
        <font color="#FF0000">fCancelDisplay = True </font>'请Adodc控件不必再显示任何信息
    End If
End Sub</pre> 
    </blockquote> 
</blockquote> 
 
<hr> 
 
<h3><font color="#800000">更正日期:99/05/26</font></h3> 
 
<hr> 
 
<blockquote> 
    <p><font color="#0000FF">p.90 第一段文字:</font></p> 
    <blockquote> 
        <p>原书内容:</p> 
        <blockquote> 
            <p>执行「Recordset.Update」语句将数据记录(也就是所有栏位)数据写<br> 
            入<font color="#0000FF">缓冲区</font>之前。</p> 
        </blockquote> 
        <p>更正后内容:</p> 
        <blockquote> 
            <p>执行「Recordset.Update」语句将数据记录(也就是所有栏位)数据写<br> 
            入<font color="#FF0000">数据库</font>之前。</p> 
        </blockquote> 
    </blockquote> 
    <p><font color="#0000FF">p.120 参考解答:</font></p> 
    <blockquote> 
        <p>原书内容:</p> 
    </blockquote> 
    <blockquote> 
        <blockquote> 
            <p>(1) Where 成交量 &gt;= 3500<br> 
            (2) Where 股票名称 = '旗阵'<br> 
            (3) Where 涨跌 &gt; 3 Or 涨跌 &lt; -3<br> 
            (4) Where 交易日期 &gt; #97/8/30#<br> 
            (5) Where 股票名称 Like &quot;台<font
            color="#0000FF">*</font>&quot;<br>
            (6) Where 股票名称 Like &quot;<font 
            color="#0000FF">*</font>台<font color="#0000FF">*</font>&quot;<br> 
            (7) Where 股票名称 Is Null<br> 
            (8) Where 股票名称 Like &quot;<font 
            color="#0000FF">*</font>泥&quot;<br> 
            (9) Where Len(股票名称) &lt; 3</p> 
        </blockquote> 
    </blockquote> 
    <blockquote> 
        <p>更正后内容:</p> 
    </blockquote> 
    <blockquote> 
        <blockquote> 
            <p>(1) Where 成交量 &gt;= 3500<br> 
            (2) Where 股票名称 = '旗阵'<br> 
            (3) Where 涨跌 &gt; 3 Or 涨跌 &lt; -3<br> 
            (4) Where 交易日期 &gt; #97/8/30#<br> 
            (5) Where 股票名称 Like &quot;台<font 
            color="#FF0000">%</font>&quot;<br> 
            (6) Where 股票名称 Like &quot;<font 
            color="#FF0000">%</font>台<font color="#FF0000">%</font>&quot;<br> 
            (7) Where 股票名称 Is Null<br> 
            (8) Where 股票名称 Like &quot;<font 
            color="#FF0000">%</font>泥&quot;<br> 
            (9) Where Len(股票名称) &lt; 3</p> 
        </blockquote> 
    </blockquote> 
    <blockquote> 
        <p>特别说明:</p> 
    </blockquote> 
    <blockquote> 
        <blockquote> 
            <p>* 是 DAO(Data Access Objects) SQL 
            的万用字符, 而 % 是 ADO (ActiveX Data 
            Objects) SQL 的万用字符, 对于写过 VB5 
            数据库程序的人来说, 往往会顺手写 * 
            为 SQL 的万用字符。<font color="#008000"> (注:VB6 
            可以同时使用 DAO 及 ADO 
            来存取数据库,但由于书本的介绍以 ADO 
            为主,所以应该采用 % 为万用字符)</font></p> 
        </blockquote> 
    </blockquote> 
    <p><font color="#0000FF">p.120 参考解答:</font></p> 
</blockquote> 
 
<blockquote> 
    <blockquote> 
        <p>原书内容:</p> 
    </blockquote> 
</blockquote> 
 
<blockquote> 
    <blockquote> 
        <blockquote> 
            <p>(1) Select *, 涨跌/收盘价*100 As 涨幅 From 
            股票行情表 <br> 
            Order By 涨跌/收盘价*100<br> 
            (2) Select *, (最高价-最低价)/收盘价*100 As 
            震荡幅度 <br> 
            From 股票行情表 Order By (最高价-最低价)/收盘价*100<br> 
            (3) Select *, 收盘价*成交量 As 成交金额 
            From 股票行情表 <br> 
            Order By 收盘价*成交量</p> 
        </blockquote> 
    </blockquote> 
    <blockquote> 
        <p>更正后内容:</p> 
    </blockquote> 
    <blockquote> 
        <blockquote> 
            <p>(1) Select *, 涨跌/收盘价*100 As 涨幅 From 
            股票行情表 <br> 
            Order By 涨跌/收盘价*100 <font color="#FF0000">Desc</font><br> 
            (2) Select *, (最高价-最低价)/收盘价*100 As 
            震荡幅度 <br> 
            From 股票行情表 Order By (最高价-最低价)/收盘价*100 
            <font color="#FF0000">Desc</font><br> 
            (3) Select *, 收盘价*成交量 As 成交金额 
            From 股票行情表 <br> 
            Order By 收盘价*成交量 <font color="#FF0000">Desc</font></p> 
        </blockquote> 
    </blockquote> 
    <p><font color="#0000FF">p.167 最后一行、p.169 
    最后一行、p.170 第一段程序:</font></p> 
    <blockquote> 
        <p>原书内容:<font color="#0000FF"> -2147217887</font><br> 
        更正后内容: <font color="#FF0000">-2147467259</font></p> 
    </blockquote> 
</blockquote> 
 
<hr> 
 
<h3><font color="#800000">更正日期:99/04/23</font></h3> 
 
<hr> 
 
<blockquote> 
    <p><font color="#0000FF">p.47 第一段文字</font></p> 
    <blockquote> 
        <p>原书内容:</p> 
    </blockquote> 
    <blockquote> 
        <blockquote> 
            <pre><font size="4">笔者判定这是 VB 的 bug,经研究之后,找到避开这个 bug 的方法 
-- 在 Delete 方法之后加上 DoEvents 语句,修改后的程序如下:

Adodc1.Recordset.MoveFirst
Adodc1.Recordset.Delete
DoEvents
Adodc1.Recordset.Delete
DoEvents
Adodc1.Recordset.Delete
DoEvents</font></pre> 
        </blockquote> 
    </blockquote> 
    <blockquote> 
        <p>更正后内容:<font color="#FF0000" size="2">(致歉! 
        这不是 VB 的错误,是笔者一时糊涂, 
        弄错了)</font></p> 
    </blockquote> 
    <blockquote> 
        <blockquote> 
            <pre><font size="4">当第一个 Delete 方法被执行之后,目前数据记录即被删除,接着目前
数据记录便不存在,以致再执行第二个 Delete 及 第三个 Delete 都
会产生错误,修正的方法是在删除目前数据记录之后,利用 MoveNext 
方法将目前数据记录设定到下一笔:</font></pre> 
            <pre><font size="4">Adodc1.Recordset.MoveFirst
Adodc1.Recordset.Delete
</font><font color="#0000FF" size="4">Adodc1.Recordset.MoveNext</font><font
size="4">
Adodc1.Recordset.Delete
</font><font color="#0000FF" size="4">Adodc1.Recordset.MoveNext</font><font
size="4">
Adodc1.Recordset.Delete</font></pre> 
        </blockquote> 
        <p>特别说明:<font color="#FF0000">为什么 
        DoEvents 也能够解决连续 Delete 的问题</font></p> 
        <blockquote> 
            <p><font size="3">其实 DoEvents(原来的作用是让程序暂停一下) 
            并不具备将目前数据记录移到<br> 
            下一笔的功用, 当我们暂停程序时,DataGrid 
            会获得 CPU 的使用权(注:<br> 
            虽然 DataGrid 属于程序的一部分, 但对于 
            Windows 来说, 它也是独立的视<br> 
            窗, 所以一样会因事件驱动而被执行), 
            所以就在程序暂停的时候,DataGrid <br> 
            会主动将目前数据记录移到下一笔, 
            这也使得 DoEvents 好像具备就目前数据<br> 
            录移到下一笔的功用,但实际上, 
            将目前数据记录移到下一笔的却是 DataGrid。</font></p> 
            <p><font size="3">由于我们可能在没有使用 
            DataGrid 的情况下(例如直接利用第 8 
            章介绍的 ADO <br> 
            对象), 而使用 Recordset.Delete 
            方法来删除数据记录, 若是此一情况, 
            DoEvents <br> 
            就会充分暴露出它不具备将目前数据记录移到下一笔的功能。</font></p> 
        </blockquote> 
    </blockquote> 
    <p><font color="#0000FF">p.47 参考解答:</font></p> 
    <blockquote> 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -