📄 ba14.htm
字号:
可见,灵活应用对象变量还可以帮助程序判断控制的状态,这种技巧在程序调试中可以节省很多时间和力气。<br>
<br>
当对象变量使用完后,可用以下语句释放对象变量所占的内存空间。<br>
<br>
Set 对象变量 = Nothing<br>
在对象变量的声明中还可以使用New关键字,通过它可以在内存中产生一个与原始窗体或控制完全相同的拷贝,这种特性在对窗体或控制的大规模内存调度时极为有意义(前提是内存足够)。这种相同的拷贝还足以完成数据的缓冲以及一些特技效果的实现。如在窗口对象变量的拷贝中预先改变窗口的界面设计,再用一个简单的赋值语句,再加上一个清屏命令即可实现窗口的突变。使用得当还可以实现一定的动画效果。由此可见,对象变量在大内存调度中也是很有意义的,它能节省一大批变量的声明和定义。<br>
<br>
对于同一对象的多个拷贝,可以用Is操作符组成的比较表达式来进行判断。这种方式尤其适用于对同一对象进行调用和操作又要防止冲突的情况,在程序中可以防止改变其中一个变量的属性会导致另一个变量的属性发生变化。<br>
例如<br>
Dim Aform As New Form1<br>
Dim Bform As Form<br>
Sub Compare( )<br>
If Aform Is Bform Then<br>
Msg1$ = “两者属于同一窗体!”<br>
Else<br>
Msg1$ = “两者不属于同一窗体!”<br>
End If<br>
MsgBox Msg1$<br>
End Sub<br>
<br>
<b>三、对象变量在数据库编程中的应用</b><br>
<br>
运用数据存取对象变量(Data Access Object Variable)的方法是VB专业版数据库编程中最重要的三种方法之一。相比使用数据控制项和绑定控制项和直接调用ODBC
2.0 API接口函数两种方法而言,它可以极大地提高数据库应用程序的灵活性和精巧性。除了一些需求有限的数据库应用可以用基本的数据控件和绑定控制项法解决以外,其它的VB数据库应用程序大都能用数据存取对象法来完成。<br>
<br>
利用它可以在程序中存取ODBC 2.0的管理函数;可以在执行期间动态地建立表、字段、及索引;同步更新几张表;在执行期间“显示”数据库的基本结构;可以控制多种记录类型:Dynaset、Snapshot及Table记录集合对象;可以存取存储过程和查询动作;可以存取数据库集合对象,如TableDefs、Fields、Indexes以及QueryDefs;具有真正的事物处理能力。<br>
<br>
首先,只有VB的专业版才支持使用数据存取对象变量的编程方法。即只有使用专业版才能获得数据存取对象变量。<br>
<br>
数据存取对象最大的扩展是它提供了一个一致的数据库编程接口。即以抽象方式表示的数据库的内部结构和操作,这种抽象可以将许多复杂问题(包括静态操作和动态操作)封装起来。显然,VB的数据存取对象在ODBC
2.0数据库接口之上又提供了一个简明一致的附加层次。<br>
<br>
在VB的数据存取对象里,所有的数据库均可以看作是一个由结构良好、一致的对象所组成的大包。程序员可以使用对象的属性及方法对这些对象进行检验、操作、创建及删除。<br>
<br>
VB专业版中的数据存取对象可以分为两类,一类用于数据库结构的维护和管理,其中表示数据库结构时可以使用下面的对象:DataBase、TableDef、Field、Index,以及三个集合(Collection):TableDefs、Fields和Indexes。另一类数据存取对象则用于数据的存取。<br>
<br>
每一个对象集合都是由若干个对象组成的,这些数据对象的集合可以完全看作是一个数组,并按数组的方法来调用。<br>
<br>
一旦数据库对象建立后,就可以用它对数据库的结构进行修改和数据处理。<br>
<br>
数据库对象变量之间的关系具体如图1所示。其中可见DataBase是最基本也是最重要的变量。<br>
<br>
以下是打开一个数据库后,并取得其内各个表单(Table)的具体信息的程序实例。<br>
Sub PrintTableInfo ( )<br>
Dim I,J As Integer,Fname As String<br>
Dim Db1 As DataBase,Td1 As TableDefs<br>
Dim Fld1 As Fields<br>
Dim FieldNum As Integer<br>
’CMD1是一个打开文件对话框的控制名<br>
CMD1.Filter = “ 数据库文件(*.MDB)|*.MDB|所有文件|*.* ” <br>
CMD1.DialogTitle = “ 调入数据库文件 ”<br>
CMD1.FilterIndex = 1<br>
CMD1.Action = 1<br>
Fname$ = CMD1.Filename<br>
Set Db1 = OpenDataBase( Fname$ ) ’打开一个数据库文件<br>
Set Td1 = Db1.TableDefs<br>
’读取并在窗体内打印所有表单的名字,每个表单内的字段数以及字段名和类型<br>
For I = 0 To Db1.TableDefs.Count - 1<br>
Print Td1(I).Name<br>
Set Fld1 = Td1( I ).Fields<br>
FieldNum% = Fld1.Count<br>
Print “当前表单共有”;Str$( FieldNum );“个字段”<br>
For J=0 To Fld1.Count - 1<br>
Print “字段名:”,Fld1( J ).Name<br>
Print “类型:”,Fld1( J ).Type<br>
Next J<br>
Next I<br>
End Sub<br>
<br>
从以上可以清晰地看到各数据库对象变量的层次关系。可见对较复杂和有更多要求的数据库应用程序来说,使用数据存取对象变量是最好的一种方法。<br>
<br>
以上程序均在486 DX4/100机上调试通过。<br>
<br>
<b>四、结束语<br>
</b><br>
对象变量是VB提供的一类很特殊但极有用的变量,利用它可极大地提高编程的效率和灵活性。特别是数据存取对象变量在VB的数据库编程中具有不可替代的作用。因而熟悉对象变量的应用技巧对挖掘VB的编程潜力和提升VB的编程功力是绝对有帮助的。
<br>
<br>
转载自popcool开发专区<b>(文/焦纯 杨国胜 王健琪)</b></font> </p>
</div>
</td>
</tr>
</center>
<tr>
<td width="100%" class="unnamed1">
<p align=right><a href="ba13.htm">(上一页)</a>---<a href="ba15.htm">(下一页)</a></p>
</td>
</tr>
<tr>
<td width="100%" class="unnamed1">
</div>
</td>
</tr>
<!--msnavigation--></tbody>
</table>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -