Enumの選択リストが出なくて困っています。
OracleADOクラス内で、System.Data.OracleClientに
Enum定義されているOracleTypeを使用した構造体を
定義しています。しかし、このままではOracleADO.dllを
参照しても、OracleTypeの参照リストが表示されません。
OracleADO内で再定義すれば表示されると思いますが、
再定義はしたくない。
【OracleADO.dllイメージ】
Imports System.Data.OracleClient
Public Class OracleADO
Public Structure Param
Dim s_Param As String 'パラメータ変数
Dim s_Otype As OracleType 'Oracleデータ型
Dim o_Value As Object '設定値
End Structure
Public Function Adapter(ByVal SqlCmd As String, Optional ByVal SqlParam() As Param = Nothing) As System.Data.DataTable
〜 (省略) 〜
end Function
end Class
【OracleADO.dll使用側イメージ】
Public Class OracleAccsess
Public WithEvents xDB As New DBclass.OracleADO
Sub adpter_Bind()
Dim sSql As String
Dim Param() As Spk.DB.ADO.Oracle.Param
sSql = ""
sSql &= "select * from TEST_dd "
sSql &= "where DATA2 = @B_DATA2"
ReDim Param(0)
Param(0).s_Param = "B_DATA2"
para(0).s_Otype = ( ここで選択リストが表示されない )
Param(0).o_Value = 211
xDB.Adapter(sSql, Param)
End Sub
End Class
使用する側でも、System.Data.OracleClientを参照すれば、
解消するのでしょうが、それもしたくありません。
ほぼ同等の内容が下記にあるのですが、私には意味が分かりません。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=46185&forum=7&0
以上、宜しくお願いします。
(補足情報)
VB.NET2005環境にて開発しています。
利用側としては、
> para(0).s_Otype = 0
などと記述すると、s_Otype に対するエラー修正案が出ますので、
[Shift]+[Alt]+[F10]もしくは、そこに表示される『!』アイコンを
クリックする事で、自動的に System.Data.OracleClient.DLL が
参照設定に追加されるようになっています。それで運用回避できないでしょうか。
> OracleADO内で再定義すれば表示されると思いますが、
> 再定義はしたくない。
> 使用する側でも、System.Data.OracleClientを参照すれば、
> 解消するのでしょうが、それもしたくありません。
恐らく、それらいずれかの作業が必要になると思いますよ。
自作DLLだけでなく、標準のライブラリでさえ同じ状況になっているわけですし。
--------------------
たとえば、System.Windows.Forms.Form クラスには、
AccessibilityObject プロパティがありますよね。
このプロパティは、AccessibleObject クラスを返すものなのですが、
AccessibleObject は、Accessibility.DLL で定義されており、かつ、
初期状態では Accessibility.DLL が参照設定に含れていません。
(ちなみに Form クラスは System.Windows.Forms.DLL で定義されている)
そのため、Accessibility.DLL を参照設定に加えない場合には、
Me.AccessibilityObject.
まで打っても、AccessibleObject のメンバ一覧は表示されませんし、
Dim obj As AccessibleObject = Me.AccessibilityObject
と記述することもできません。残念ながらそういう仕様になっています。
> s_Otype に対するエラー修正案が出ますので、
> そこに表示される『!』アイコンをクリックする事で、
> 自動的にSystem.Data.OracleClient.DLL が
> 参照設定に追加されるようになっています。
これで運用回避する事にします。
ありがとうございました。