▼ これは、ODBC ドライバを列挙するスクリプトですこの仕様は元々 ADO のものです。Framework のドキュメントからはとても解りづらくなっていますが、古いドキュメントで容易に確認できます。 SchemaEnum C# のコードはこちら VB.net から C# へのオンライン変換ツールを久しぶりに使ってみましたが、後から手作業で変更したのは、ControlChars.CrLf を "\r\n" にしただけでした。
Imports System.Data
Imports System.Data.Odbc
Module Module1
Sub Main()
' 新しい OdbcConnectionStringBuilder オブジェクトを作成
Dim builder As New OdbcConnectionStringBuilder()
' ドライバ文字列をセット ( 波型括弧{} は必要ありません )
' 文字列を正確に取得するには、レジストリ : HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI
builder.Driver = "MySQL ODBC 5.3 Unicode Driver"
' 接続用のパラメータを追加
builder.Add("SERVER", "localhost")
builder.Add("DATABASE", "lightbox")
builder.Add("UID", "root")
builder.Add("PWD", "password")
' 内容を確認
Console.WriteLine(builder.ConnectionString)
' 新しい OdbcConnection オブジェクトを作成
Dim myCon As New OdbcConnection()
' 接続文字列を設定
myCon.ConnectionString = builder.ConnectionString
' 接続を開く
Try
myCon.Open()
Catch ex As OdbcException
Console.WriteLine("接続エラーです")
' Console.WriteLine( ex.Message )
Call ErrorAction( ex )
Exit Sub
End Try
' データベースのテーブル一覧のメタデータを取得
' TABLE_CATALOG
' TABLE_SCHEMA
' TABLE_NAME
' TABLE_TYPE
Dim dataTable As DataTable = myCon.GetSchema(OdbcMetaDataCollectionNames.Tables)
' 一覧表示
Dim row As DataRow
For Each row In dataTable.Rows
Dim column As DataColumn = dataTable.Columns.item("TABLE_NAME")
Console.WriteLine( row.item(column) )
Next
' データベースの列名一覧のメタデータを取得
' TABLE_CATALOG
' TABLE_SCHEMA
' TABLE_NAME
' COLUMN_NAME
' 配列で、対象データを絞る
Dim restrictionValues As String() = {Nothing,Nothing,"社員マスタ"}
' 社員マスタの列のメタデータ
dataTable = myCon.GetSchema(OdbcMetaDataCollectionNames.Columns,restrictionValues)
' 列名の一覧を表示
For Each row In dataTable.Rows
Dim column As DataColumn = dataTable.Columns.item("COLUMN_NAME")
Console.WriteLine(row.item(column))
Next
' 接続を閉じる
myCon.Close()
' OdbcConnection オブジェクトに使用されているすべてのリソースを解放
myCon.Dispose()
' 処理終了
Console.WriteLine("処理が終了しました")
' 一時停止
Console.Write("Enterキーを押して下さい : ")
Console.ReadLine()
End Sub
' **********************
' エラー処理
' **********************
Sub ErrorAction( ex As OdbcException )
Dim CrLf As String = ControlChars.CrLf
Dim errorMessages As String = ""
Dim i As Integer
For i = 0 To ex.Errors.Count - 1
errorMessages &= _
"Index #" & i.ToString() & CrLf _
& "Message: " & ex.Errors(i).Message & CrLf _
& "NativeError: " & ex.Errors(i).NativeError.ToString() & CrLf _
& "Source: " & ex.Errors(i).Source & CrLf _
& "SQL: " & ex.Errors(i).SQLState & CrLf
Next i
Console.WriteLine(errorMessages)
End Sub
End Module
関連する記事 ODBC ドライバの列挙 / VBScript WMIのレジストリアクセスで、レジストリエントリの一覧を取得する VBScript クラス
タグ:ODBC





以下のようなプライベートクラスを使うのがミソです
※ ListView 側は、デザイナから列を作成しておいて下さい。
※ エキスパートモードで表示しています
アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります


