2008年4月23日水曜日

[vb2005] -- MDBのテーブルから主キー情報を取得する。

    
Dim OleDbCn As New OleDbConnection() '○ OLEDBのクラスインスタンス
Dim SchemaTbl As DataTable ' 取得情報保持用データテーブル
    ' 接続先DB
Dim strDtSrc As String
strDtSrc = "PROVIDER=Microsoft.jet.OLEDB.4.0;" & _
"DATA SOURCE=./XXX.mdb;"
    ' 対象テーブル
Dim strTblName As String
strTblName = "TBL_SAKURA"
    Try
OleDbCn.ConnectionString = strDtSrc
OleDbCn.Open()
        SchemaTbl = OleDbCn.GetOleDbSchemaTbl( & _
OleDbSchemaGuid.Primary_Keys, _
New Object() { Nothing, Nothing, strTblName } )
        ' ItemArray は配列で全ての値を取得する。ので、
' この配列分 For文をループさせている
For i As Integer = 0 To SchemaTbl.Rows(0).ItemArray.Length - 1
' 全ての配列の値を、出力
Debug.WriteLine( SchemaTbl.Rows(0).Item(i).ToString() )
Next i
        ' 主キーが存在すれば、行を取得する ( Rows.Count は "1" 以上 ) 
If SchemaTbl.Rows.Count > 0 Then
'----Debug---------------------
Debug.WriteLine( "主キーを発見。" )
Debug.WriteLine( "項目名:" & SchemaTbl.Rows(0).Item(3).ToString() )
'------------------------------
Else
'----Debug---------------------
Debug.WriteLine( "主キーは見つかりません。" )
'------------------------------
End If

Catch ex As Exception
MessageBox.Show(ex.Message, "エラー:SchemaCheck")
Finally
'○ DB閉鎖
If OleDbCn.State = ConnectionState.Open Then
OleDbCn.Close()
End If
End Try

整理は後程。ひとまずメモる。

0 件のコメント: