- PR -

スキーマ情報の取得について

1
投稿者投稿内容
VB初心者
常連さん
会議室デビュー日: 2008/09/29
投稿数: 20
投稿日時: 2008-09-29 15:40
はじめて投稿致します。
当方.NET、Oracle共に初心者です。

VB2005+Oracle10g+ODP.NETによるアプリケーションを開発しております。
開発工数を短縮する為、業者より提供されたサンプルソース(VB2005+
Access2003+OLE)をOracle接続用にカスタマイズしております。

テーブルスキーマ情報を取得する部分のカスタマイズで、OleDbConnectionクラスの
GetOleDbSchemaTableメソッドをサンプルで使用しており、これに準ずるODP.NET上の
メソッドを調べていたところ、OracleDataReaderクラスのGetSchemaTable()メソッド
が当てはまるかと思ったのですが、調べているうちに、どうも返ってくる値が違う
らしく、上手く動かないとの情報があり、行き詰ってしまいました。

以下にサンプルソースを記載しますので、アドバイスを頂ければ幸いです。
では、よろしくお願いします。

【サンプルソース】
Public Sub UpdateTableName()
Dim i As Integer
Dim schemaTable As DataTable

schemaTable = cnt.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, "TABLE"})

If tableNames Is Nothing Then
tableNames = New String() {""}
End If

SyncLock tableNames
ReDim tableNames(schemaTable.Rows.Count)
For i = 0 To schemaTable.Rows.Count - 1
tableNames(i) = CStr(schemaTable.Rows(i).ItemArray(2))
Next
End SyncLock
End Sub

Public Function SearchTable(ByRef tablename As String) As Boolean
SearchTable = False

SyncLock tableNames
For Each name As String In tableNames
If name = tablename Then
SearchTable = True
Exit For
End If
Next
End SyncLock

End Function
1

スキルアップ/キャリアアップ(JOB@IT)