ActiveConnection、CommandText、CommandTimeout、CommandType、Size 和 Direction 屬性范例

此頁(yè)沒(méi)有內(nèi)容條目
內(nèi)容

ActiveConnection、CommandText、CommandTimeout、CommandType、Size 和 Direction 屬性范例

該范例使用 ActiveConnection、CommandText、CommandTimeout、CommandType、SizeDirection 屬性執(zhí)行存儲(chǔ)過(guò)程。

Public Sub ActiveConnectionX()

   Dim cnn1 As ADODB.Connection

   Dim cmdByRoyalty As ADODB.Command

   Dim prmByRoyalty As ADODB.Parameter

   Dim rstByRoyalty As ADODB.Recordset

   Dim rstAuthors As ADODB.Recordset

   Dim intRoyalty As Integer

   Dim strAuthorID As String

   Dim strCnn As String

   ' 定義存儲(chǔ)過(guò)程的命令對(duì)象。

   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.CommandTimeout = 15

   ' 定義存儲(chǔ)過(guò)程的輸入?yún)?shù)。

   intRoyalty = Trim(InputBox( _

      "Enter royalty:"))

   Set prmByRoyalty = New ADODB.Parameter

   prmByRoyalty.Type = adInteger

   prmByRoyalty.Size = 3

   prmByRoyalty.Direction = adParamInput

   prmByRoyalty.Value = intRoyalty

   cmdByRoyalty.Parameters.Append prmByRoyalty

   ' 通過(guò)執(zhí)行該命令創(chuàng)建記錄集。

   Set rstByRoyalty = cmdByRoyalty.Execute()

   ' 打開作者表以便顯示作者姓名。

   Set rstAuthors = New ADODB.Recordset

   rstAuthors.Open "authors", strCnn, , , adCmdTable

   ' 打印記錄集中的當(dāng)前數(shù)據(jù),從作者表中添加作者姓名。

   Debug.Print "Authors with " & intRoyalty & _

      " percent royalty"

   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