Item 屬性範例 (VB)
此範例示範 Item 屬性如何存取集合的成員。 此範例會使用參數化命令開啟 Pubs 資料庫的 Authors 資料表。
對資料庫發出的命令中的參數,是依據索引和名稱從 Command 物件的 Parameters 集合中存取的。 然後會依據索引和名稱,從該物件的 Fields 集合存取所傳回 Recordset 的欄位。
'BeginItemVB
'To integrate this code
'replace the data source and initial catalog values
'in the connection string
Public Sub Main()
On Error GoTo ErrorHandler
Dim Cnxn As ADODB.Connection
Dim rstAuthors As ADODB.Recordset
Dim cmd As ADODB.Command
Dim prm As ADODB.Parameter
Dim fld As ADODB.Field
Dim strCnxn As String
Dim ix As Integer
Dim limit As Long
Dim Column(0 To 8) As Variant
Set Cnxn = New ADODB.Connection
Set rstAuthors = New ADODB.Recordset
Set cmd = New ADODB.Command
'Set the array with the Authors table field (column) names
Column(0) = "au_id"
Column(1) = "au_lname"
Column(2) = "au_fname"
Column(3) = "phone"
Column(4) = "address"
Column(5) = "city"
Column(6) = "state"
Column(7) = "zip"
Column(8) = "contract"
cmd.CommandText = "SELECT * FROM Authors WHERE state = ?"
Set prm = cmd.CreateParameter("ItemXparm", adChar, adParamInput, 2, "CA")
cmd.Parameters.Append prm
' set connection
strCnxn = "Provider='sqloledb';Data Source='MySqlServer';" & _
"Initial Catalog='Pubs';Integrated Security='SSPI';"
Cnxn.Open strCnxn
cmd.ActiveConnection = Cnxn
' open recordset
rstAuthors.Open cmd, , adOpenStatic, adLockReadOnly
'Connection and CommandType are omitted because
'a Command object is provided
Debug.Print "The Parameters collection accessed by index..."
Set prm = cmd.Parameters.Item(0)
Debug.Print "Parameter name = '"; prm.Name; "', value = '"; prm.Value; "'"
Debug.Print
Debug.Print "The Parameters collection accessed by name..."
Set prm = cmd.Parameters.Item("ItemXparm")
Debug.Print "Parameter name = '"; prm.Name; "', value = '"; prm.Value; "'"
Debug.Print
Debug.Print "The Fields collection accessed by index..."
rstAuthors.MoveFirst
limit = rstAuthors.Fields.Count - 1
For ix = 0 To limit
Set fld = rstAuthors.Fields.Item(ix)
Debug.Print "Field "; ix; ": Name = '"; fld.Name; _
"', Value = '"; fld.Value; "'"
Next ix
Debug.Print
Debug.Print "The Fields collection accessed by name..."
rstAuthors.MoveFirst
For ix = 0 To 8
Set fld = rstAuthors.Fields.Item(Column(ix))
Debug.Print "Field name = '"; fld.Name; "', Value = '"; fld.Value; "'"
Next ix
' clean up
rstAuthors.Close
Cnxn.Close
Set rstAuthors = Nothing
Set Cnxn = Nothing
Exit Sub
ErrorHandler:
' clean up
If Not rstAuthors Is Nothing Then
If rstAuthors.State = adStateOpen Then rstAuthors.Close
End If
Set rstAuthors = Nothing
If Not Cnxn Is Nothing Then
If Cnxn.State = adStateOpen Then Cnxn.Close
End If
Set Cnxn = Nothing
Set cmd = Nothing
If Err <> 0 Then
MsgBox Err.Source & "-->" & Err.Description, , "Error"
End If
End Sub
'EndItemVB
另請參閱
Command 物件 (ADO)
Fields 集合 (ADO)
Item 屬性 (ADO)
Parameters 集合 (ADO)
Recordset 物件 (ADO)