Кто-нибудь когда-нибудь испытывал проблемы с библиотекой ADOX, оставляя открытыми дескрипторы файлов?
У меня странная проблема с преобразованием VB6 -> VB.Net.Существует функция, которая использует ADOX для просмотра таблиц в данной базе данных и сбрасывает начальные значения любых столбцов в указанных таблицах со свойством автоматического приращения, установленным в значение true.
Я отследил проблему довызов "col.Properties (" Автоинкремент "). Значение".Если эта строка кода закомментирована, то дескриптор файла корректно завершается, когда я закрываю соединения ADO и ADOX в конце функции.Если я оставлю эту строку, дескриптор остается открытым, несмотря на закрывающие вызовы и принудительную сборку мусора.
Вот как я закрываю объекты:
System.Runtime.InteropServices.Marshal.ReleaseComObject(adoConn)
Dim connection As ADODB.Connection = cat.ActiveConnection
If Not connection Is Nothing Then
connection.Close()
End If
cat.ActiveConnection = Nothing
cat = Nothing
adoConn - это соединение ADO, иcat является объектом ADOX.Catalog.col (ранее) - это объект ADOX.Column, используемый с объектом каталога.
Первоначально я пытался преобразовать этот алгоритм в ADO.Net, и с помощью объекта DataSet я подошел близко, но не смог выяснитьКак определить, был ли столбец таблицы установлен на автоприращение.Это с базами данных Access 2000 между прочим.