タイトル : Re^4: MS-ACCESSのクエリ名やリンクテーブル名の取得は? 投稿日 : 2007/11/14(Wed) 16:40 投稿者 : 魔界の仮面弁士
> 下記のようにするのですね。 ADO や ADOX や DAO などの ActiveX コンポーネントを使う場合は、使用後に 「Marshal.ReleaseComObjec」メソッドによって、『解放』処理が必要だそうです。 http://support.microsoft.com/kb/321415/ja 特に .Fields 等へのアクセスは、階層化されている分、解放が面倒になりがちですので、 個人的には Recordset を直接読み取るのではなく、DataAdapter を使って、いったん、 ADO.NET のクラスである DataSet (あるいは DataTable) に変換される事をお薦めします。 Dim tbl As New DataTable() Dim rs As ADODB.Recordset = cn.OpenSchema(ADODB.SchemaEnum.adSchemaColumns) #If VBC_VER >= 8.0 Then Using d As New OleDb.OleDbDataAdapter() d.Fill(tbl, rs) End Using #Else Dim d As New OleDb.OleDbDataAdapter() d.Fill(tbl, rs) d.Dispose() #End If rs.Close() Runtime.InteropServices.Marshal.ReleaseComObject(rs) cn.Close() Runtime.InteropServices.Marshal.ReleaseComObject(cn) dataGrid1.SetDataBinding(tbl, Nothing) |