PRB: ADO's Field ATTRIBUTE Property and adFldRowIDID: Q182351
|
ADO's field Attribute property will not return "adFldRowID" when checked against any data sources being accessed through the OLEDB Provider for ODBC.
The OLEDB Provider for ODBC, which is used by default, cannot access this information because it is not available through ODBC.
Use a native OLEDB Provider specific to the data source being used. The data source must also support a field type that maps to OLE DB's definition of a row identifier to be able to return a value of "adFldRowID".
This behavior is by design.
The "adFldRowID" Attribute maps to OLEDB's DBCOLUMNFLAGS_ISROWID flag. A
row that has this flag "contains a persistent row identifier that cannot be
written to and has no meaningful value except to identify the row".
Using the preceding description, no column in SQL Server falls into this
category. Thus, even when using a native OLEDB Provider for SQL Server, the
"adFldRowID" would not be returned through the field's Attribute property.
Private Sub Command2_Click()
Dim Cn As New Connection
Dim rs As New Recordset
Dim SQL As String
Cn.Open "DRIVER={SQL Server};SERVER=<server_name>;UID=;PWD=;"
SQL = "select * from pubs..jobs"
rs.Open SQL, Cn
MsgBox "Name: " & rs.Fields(0).Name & vbCrLf & "Attribs: " & _
rs.Fields(0).Attributes
rs.Close
Cn.Close
End Sub
For more information, refer to the SDK documentation.
Additional query words: kbdse
Keywords : kbADO150 kbADO200
Version : WINDOWS:1.5,2.0
Platform : WINDOWS
Issue type : kbprb
Last Reviewed: February 26, 1999