资讯库 厂家库 产品库 / 咨询专线:400-6668-369 / 服务时间:8:00-18:00(非节假日)
中国办公家具产业基地,专业助力办公家具单位采购。

Refresh方法实例


 
Refresh方法更新集合中的对象以便反映来自提供者的可用对象和特定于提供者的对象。这里需要说明的是,如果使用Refresh方法从提供者获取参数信息而它返回一个或多个变长数据类型Parameter对象,则ADO可能根据其大小的最大可能值为参数分配内存,这在执行期间将会导致错误。在调用Execute方法之前应显式设置这些参数的Size属性以防止错误发生。在下面的实例中我们说明如何使用Refresh方法刷新已存储过程Command对象的 Parameters集合。
 
Public Sub RefreshX( )
 
Dim cnn1 As ADODB.Connection
 
Dim cmdByRoyalty As ADODB.Command
 
Dim rstByRoyalty As ADODB.Recordset
 
Dim rstAuthors As ADODB.Recordset
 
Dim intRoyalty As Integer
 
Dim strAuthorID As String
 
Dim strCnn As String
 
' 打开连接。
 
Set cnn1 = New ADODB.Connection
 
strCnn = ″ Provider=sqloledb;″ & _
 
″ Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=;″
 
cnn1.Open strCnn
 
' 使用一个参数打开已存储过程的命令对象。
 
Set cmdByRoyalty = New ADODB.Command
 
Set cmdByRoyalty.ActiveConnection = cnn1
 
cmdByRoyalty.CommandText = ″ byroyalty″
 
cmdByRoyalty.CommandType = adCmdStoredProc
 
cmdByRoyalty.Parameters.Refresh
 
' 获取参数值并执行命令,将结果存储到记录集中。
 
intRoyalty = Trim(InputBox(″ Enter royalty:″))
 
cmdByRoyalty.Parameters(1) = intRoyalty
 
Set rstByRoyalty = cmdByRoyalty.Execute( )
 
' 打开Authors表获取作者姓名以用于显示。
 
Set rstAuthors = New ADODB.Recordset
 
rstAuthors.Open ″ authors″,cnn1,,,adCmdTable
 
' 打印记录集中的当前数据,添加Authors表的作者姓名。
 
Debug.Print ″ Authors with ″ & intRoyalty & ″ percent royalty″
 
 
 087
 
Do While Not rstByRoyalty.EOF
 
strAuthorID = rstByRoyalty!au_id
 
Debug.Print ″ ″ & rstByRoyalty!au_id & ″,″;
 
rstAuthors.Filter = ″ au_id = '″ & strAuthorID & ″'″
 
Debug.Print rstAuthors!au_fname & ″″ & _
 
rstAuthors!au_lname
 
rstByRoyalty.MoveNext
 
Loop
 
rstByRoyalty.Close
 
rstAuthors.Close
 
cnn1.Close
 
End Sub
 
 

相关资讯