tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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)

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。