我正在使用记录集作为我正在获取的某些数据的载体。我得到了重复,我很好奇如果尝试添加重复,如何让记录集抱怨。
所以,本质上我想创建一个关键字段。我找到了 adFldKeyColumn 参数,但没有强制执行,我一定遗漏了一些东西。
Function CreateIndexedRecordSet() As ADODB.Recordset
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Fields.Append "Name", adBSTR, 255
rs.Fields.Append "pkey", adInteger, , adFldKeyColumn
rs.Open
rs.AddNew Array("Name", "pkey"), Array("foo", 1)
rs.AddNew Array("Name", "pkey"), Array("bar", 1) '<--- this should complain
Debug.Print rs.Supports(CursorOptionEnum.adIndex) '<--- sadly prints False, perhaps use a different provider?
Set CreateIndexedRecordSet = rs
End Function
请不要分类答案,我很清楚我可以在获取数据并以这种方式捕获重复项的同时使用字典,这就是我同时要做的。只是必须有一位知道诀窍的 ADO 专家。
更新:我在 RecordSet 对象上找到了一个 Supports 方法,如果我传入,CursorOptionEnum.adIndex
那么它会回复 False。也许使用不同的提供商?