📄 book_text9.htm
字号:
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">用</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">AddNew()</SPAN><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">会改变记录集的当前记录。只有将当前记录定位在新记录上,才能填写它的数据。所以我们使用</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">MoveLast</SPAN><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">函数使刚刚添加的记录成为当前记录,然后调用<SPAN
lang=EN-US>Edit函数对新记录进行编辑。<O:P> </O:P></SPAN></SPAN></P>
<P class=MsoNormal
style="WORD-BREAK: break-all; mso-line-height-alt: 1.3pt; mso-layout-grid-align: none; punctuation-wrap: simple"><SPAN
lang=EN-US
style="FONT-SIZE: 12pt; BACKGROUND: #d9d9d9; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-shading: white; mso-pattern: gray-15 black">m_Recordset_>MoveLast();<O:P>
</O:P></SPAN></P>
<P class=MsoNormal
style="WORD-BREAK: break-all; mso-line-height-alt: 1.3pt; mso-layout-grid-align: none; punctuation-wrap: simple"><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-shading: white; mso-pattern: gray-15 black">m_Recordset_>Edit();<O:P>
</O:P></SPAN></P>
<P class=MsoNormal
style="WORD-BREAK: break-all; mso-line-height-alt: 1.3pt; mso-layout-grid-align: none; punctuation-wrap: simple"><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">依次给新记录的字段进行赋值:<SPAN
lang=EN-US><O:P> </O:P></SPAN></SPAN></P>
<P class=MsoNormal
style="WORD-BREAK: break-all; mso-line-height-alt: 1.3pt; mso-layout-grid-align: none; punctuation-wrap: simple"><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-shading: white; mso-pattern: gray-15 black">COleVariant<SPAN
style="mso-tab-count: 2">
</SPAN>var1(m_Name , VT_BSTRT);<O:P> </O:P></SPAN></P>
<P class=MsoNormal
style="WORD-BREAK: break-all; mso-line-height-alt: 1.3pt; mso-layout-grid-align: none; punctuation-wrap: simple"><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-shading: white; mso-pattern: gray-15 black">m_Recordset_>SetFieldValue(_T("studentName")
, var1);<O:P> </O:P></SPAN></P>
<P class=MsoNormal
style="WORD-BREAK: break-all; mso-line-height-alt: 1.3pt; mso-layout-grid-align: none; punctuation-wrap: simple"><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-shading: white; mso-pattern: gray-15 black">COleVariant<SPAN
style="mso-tab-count: 2">
</SPAN>var2(m_ID , VT_BSTRT);<O:P> </O:P></SPAN></P>
<P class=MsoNormal
style="WORD-BREAK: break-all; mso-line-height-alt: 1.3pt; mso-layout-grid-align: none; punctuation-wrap: simple"><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-shading: white; mso-pattern: gray-15 black">m_Recordset_>SetFieldValue(_T("studentID")
, var2);<O:P> </O:P></SPAN></P>
<P class=MsoNormal
style="WORD-BREAK: break-all; mso-line-height-alt: 1.3pt; mso-layout-grid-align: none; punctuation-wrap: simple"><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-shading: white; mso-pattern: gray-15 black">COleVariant<SPAN
style="mso-tab-count: 2">
</SPAN>var3(m_Class , VT_BSTRT);<O:P> </O:P></SPAN></P>
<P class=MsoNormal
style="WORD-BREAK: break-all; mso-line-height-alt: 1.3pt; mso-layout-grid-align: none; punctuation-wrap: simple"><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-shading: white; mso-pattern: gray-15 black">m_Recordset_>SetFieldValue(_T("studentClass")
, var3);<O:P> </O:P></SPAN></P>
<P class=MsoNormal
style="WORD-BREAK: break-all; mso-line-height-alt: 1.3pt; mso-layout-grid-align: none; punctuation-wrap: simple"><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-shading: white; mso-pattern: gray-15 black">COleVariant<SPAN
style="mso-tab-count: 2">
</SPAN>var4(m_SID , VT_BSTRT);<O:P> </O:P></SPAN></P>
<P class=MsoNormal
style="WORD-BREAK: break-all; mso-line-height-alt: 1.3pt; mso-layout-grid-align: none; punctuation-wrap: simple"><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-shading: white; mso-pattern: gray-15 black">m_Recordset_>SetFieldValue(_T("studentSID")
, var4);<O:P> </O:P></SPAN></P>
<P class=MsoNormal
style="WORD-BREAK: break-all; TEXT-INDENT: 21.25pt; mso-line-height-alt: 1.3pt; mso-layout-grid-align: none; punctuation-wrap: simple"><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">COleVariant
</SPAN><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">这个类封装了<SPAN
lang=EN-US>WIN32提供的</SPAN></SPAN><SPAN lang=EN-US
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">VARIANT</SPAN><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">这个结构以及对它的操作。这个类当中可以存储多种类型的数据。需要注意的是这种包容能力是通过</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">C</SPAN><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">语言当中的</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">UNION</SPAN><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">提供的,就是说一个</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">COleVariant
</SPAN><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">对象只能保存一种类型的数据。我们先把字段的值装入</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">OLE</SPAN><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">变体对象,再使用这个变体对象对记录中的字段进行赋值。</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">VT_BSTRT</SPAN><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">参数的作用是在生成</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">OLE</SPAN><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">变体对象的时候指示将要封入的数据的类型为字符串。当对所有的字段都结束赋值后,调用</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">Update
</SPAN><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">函数来保存刚才的修改。<SPAN
lang=EN-US><O:P> </O:P></SPAN></SPAN></P>
<P class=MsoNormal
style="WORD-BREAK: break-all; mso-line-height-alt: 1.3pt; mso-layout-grid-align: none; punctuation-wrap: simple"><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; BACKGROUND: #d9d9d9; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-shading: white; mso-pattern: gray-15 black">m_Recordset_>Update();<SPAN
style="mso-tab-count: 1"> </SPAN><O:P></O:P></SPAN></P>
<P class=MsoNormal
style="WORD-BREAK: break-all; TEXT-INDENT: 21.25pt; mso-line-height-alt: 1.3pt; mso-layout-grid-align: none; punctuation-wrap: simple"><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">注意,在调用</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">Update</SPAN><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">函数之前</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">,</SPAN><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">如果进行了改变当前记录的操作</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">,</SPAN><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">那么前面进行的所有的赋值工作都将丢失,而且不会给出任何的警告。</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt"><O:P>
</O:P></SPAN></P>
<P class=MsoNormal
style="WORD-BREAK: break-all; TEXT-INDENT: 21.25pt; mso-line-height-alt: 1.3pt; mso-layout-grid-align: none; punctuation-wrap: simple"><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">这段代码从记录集中取出一个记录的值</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">,</SPAN><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">这里同</SPAN><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">样要用到</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">OLE</SPAN><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">变体对象。记录集的</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">GetFieldValue</SPAN><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">将返回一个变体对象,我们首先取得这个变体对象,然后从中取出需要的值。</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt"><O:P>
</O:P></SPAN></P>
<P class=MsoNormal
style="WORD-BREAK: break-all; TEXT-INDENT: 21.25pt; mso-line-height-alt: 1.3pt; mso-layout-grid-align: none; punctuation-wrap: simple"><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">这里</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">V_BSTRT</SPAN><SPAN
style="FONT-SIZE: 10.5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -