此頁沒有內容條目
內容

Append 和 CreateParameter 方法范例

該范例使用 Append 和 CreateParameter 方法執(zhí)行具有輸入?yún)?shù)的存儲過程。

Public Sub AppendX()

   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

   ' 打開連接。

   Set cnn1 = New ADODB.Connection

   strCnn = "Provider=sqloledb;" & _

      "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "

   cnn1.Open strCnn

   cnn1.CursorLocation = adUseClient

   ' 使用一個參數(shù)打開命令對象。

   Set cmdByRoyalty = New ADODB.Command

   cmdByRoyalty.CommandText = "byroyalty"

   cmdByRoyalty.CommandType = adCmdStoredProc

   ' 獲取參數(shù)值并追加參數(shù)。

   intRoyalty = Trim(InputBox("Enter royalty:"))

   Set prmByRoyalty = cmdByRoyalty.CreateParameter("percentage", _

      adInteger, adParamInput)

   cmdByRoyalty.Parameters.Append prmByRoyalty

   prmByRoyalty.Value = intRoyalty

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

   Set cmdByRoyalty.ActiveConnection = cnn1

   Set rstByRoyalty = cmdByRoyalty.Execute

   ' 打開 Authors 表以獲取作者姓名進行顯示。

   Set rstAuthors = New ADODB.Recordset

   rstAuthors.Open "authors", cnn1, , , adCmdTable

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

   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