Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1756822
  • 博文数量: 600
  • 博客积分: 10581
  • 博客等级: 上将
  • 技术积分: 6205
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-06 10:13
文章分类
文章存档

2016年(2)

2015年(9)

2014年(8)

2013年(5)

2012年(8)

2011年(36)

2010年(34)

2009年(451)

2008年(47)

分类:

2009-10-11 11:13:08

我觉得这是一个十分好的功能,在DAO/RDO 的物件下,Database/Table必需真的存在,
如果我们想用一个暂存的Table做事情,那真的要在Disk中做I/O;然而在ADO中,恰
好反相反,它可以在记忆体中建立一个Resultset,而後可以在其上做资料库的动作;
但是用ADO却不像DAO可以真的CreateTable或CreateDatabase(那种真的存在Disk者) 

以本例来说,它也开启了另一个DataBinding的情况,在VB5.0时,DataBinding一定得
配合Data控制项来做,而到了VB6.0呢,它的范围可多了不少,首先DataSource可以设定
的物件主要有

 1. ADODC,这和传统的Data控制项是同等的位置,但现在DataSource不但可以设定给
    DATA控制项(於Design Time),现在也可以设定给ADODC控制项(Design/Run Time皆可)
 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很棒,不过,我用它於
   OLE DB Privder for ODBC之上,常常会执行期错误,而使VB结束掉
 4.自订的Data Aware的物件类别,这又是另一个主题,查一下VB6的help吧。   
   

以下程序需 Textbox * 2 , CommandBox * 2
Private rs As New ADODB.Recordset ' 记录集的变数

Private Sub Command1_Click()
rs.MoveNext
End Sub


Private Sub CreateRecordset()
With rs
  '建立rs的Table结构
  .Fields.Append "ID", adInteger
  .Fields.Append "Item", adBSTR, 255
  .CursorType = adOpenStatic
  .LockType = adLockOptimistic
  .Open '不需要连接物件。
End With
Dim i As Integer
'新增资料到Resultset中
For i = 1 To 100
    rs.AddNew
    rs!id = i
    rs!Item = "thing " & i
    rs.Update
Next i
rs.MoveFirst
End Sub

Private Sub Command2_Click()
rs.MovePrevious
End Sub

Private Sub Form_Load()
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

Private Sub Form_Unload(Cancel As Integer)
rs.Close
End Sub
阅读(477) | 评论(0) | 转发(0) |
0

上一篇:如何读/写 Binary File

下一篇:ADO的建立连结

给主人留下些什么吧!~~