▼ これは、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
|
【VB.NET : データベースの最新記事】
- VB.net : ListView に DB から読み込んだデータをセットする
- VB.net : 一時 PL/SQL で Data Pump Exportユーティリティと同じデータをエクスポートして処理結果を取得する
- VB.net : 一時PL/SQL 内の変数をプログラムでやり取りする
- VB.net : PL/SQL の OUT パラメータから実行結果を取得する
- VB.net : ODBC + MySQL で CSV をインポート( クラス化サンプル )
- VB.net : CSVによるインポート用ファイルの作成( つまりエクスポート )
- VB.net : insert 構文によるインポート用ファイルの作成( つまりエクスポート )
- VB.net 2008 : System.Data.Odbc データ取得(SELECT)処理( MySQL 5.1 )
- VB.net 2008 : System.Data.Odbc 更新処理( MySQL 5.1 )
- VB.net 2008 : System.Data.Odbc 接続テスト( MySQL 5.1 )
- VB.net : Oracle の行を返さない SQL の実行