以本例来说,它也开启了另一个DataBinding的情况,在VB5.0时,DataBinding一定得配合Data控制项来做,而到了VB6.0呢,它的范围可多了不少,首先DataSource可以设定的物件主要有 1. ADODC,这和传统的Data控制项是同等的位置,但现在DataSource不但可以设定给DATA控制项(於Design Time),现在也可以设定给ADODC控制项(Design/Run Time皆可) 以下程式 Textbox * 2 , CommandBox * 2 Private Sub Command1_Click() Private Sub Command2_Click() Private Sub Form_Load() Private Sub Form_Unload(Cancel As Integer)
在DAO/RDO 的物件下,Database/Table必真的存在,如果我们想用一个暂存的Table做事情,那真的要在Disk中做I/O;然而在ADO中,恰好反相反,它可以在记忆体中建立一个Resultset,
而後可以在其上做资料库的动作;但是用ADO却不像DAO可以真的CreateTable或CreateDatabase(那种真的存在Disk者)。
我们Data Process的程式不常会有Table Sorting的动作吗?以前是一件痛苦的事,我们也可以用忆体的RecordSet来做,这是一个不错的选择。
2. ADO Resultset,这就是本例的做法,而且不仅在这种记忆体Resultset可用,就算真的Binding的Resultset是指向Remote端的实№资料也可以Work,而且,我们在Control项(如TextBox)上面的资料变更,也会反映给Remote端,当然了,要有权限Update才不会有错。这个功能实在很帅!如此一来就不用ADODC也可做到DataBinding
3.Data Environment:这个工具实在很强,它是图形化的一个介面,设定好之後,在程式中便可以把DataSource指定成Data Environment物件,而一个Data Environment可以有多个Command物件於其上(我想Data Environment物件本身有ado Connection物件的包装),所以设定DataMember 将指定使用哪一个Command 物件。而DataFiled就很明显了,详细的做法我不在这里说明,这Data Environment很棒。
4.自订的Data Aware的物件类别,这又是另一个主题,查一下VB6的help吧。
Private rs As New ADODB.Recordset 资料录集的变数
rs.MoveNext
End Sub
Private Sub CreateRecordset()
With rs
建立rs的Table结构
.Fields.Append "ID", adInteger
.Fields.Append "Item", adVarChar, 255
.CursorType = adOpenStatic
.LockType = adLockOptimistic
.Open 不 要连接物件。
End With
Dim i As Integer
新增资料到Resultset中 rs.AddNew
rs!id = i
rs!Item = "thing " & i
rs.Update
Next i
rs.MoveFirst
rs.Sort = "Item" 如果想要对Recordset做Sorting还可以用Sort来做
End Sub
rs.MovePrevious
End Sub
Command1.Caption = "MoveNext"
Command2.Caption = "MovePrevious"
Call CreateRecordset
定义Text1 为DataBinding,资料来源是rs, 显示栏位是id
Set Text1.DataSource = rs
Text1.DataField = "id"
定义Text1 为DataBinding,资料来源是rs, 显示栏位是Item
Set Text2.DataSource = rs
Text2.DataField = "Item"
End Sub
rs.Close
End Sub
文章来源于领测软件测试网 https://www.ltesting.net/
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073