'参照名:Oracle.DataAccess
'種類:.NET
'バージョン:2.112.2.0
'ローカルにコピーする:True
'パス:C:\WINDOWS\assembly\GAC_64\Oracle.DataAccess\2.112.2.0__89b483f429c47342\Oracle.DataAccess.dll
'Imports Oracle.DataAccess.Client
'Imports Oracle.DataAccess.Types
'Express Editionをx86でビルドする方法
'1.vbprojファイルをエディタで開く。
'2.最初の<PropertyGroup>セクションをさがしその下に次の行を追加する。
' <PlatformTarget>x86</PlatformTarget>
''' <summary>
''' Oracle
''' </summary>
''' <remarks>
''' 参照設定
''' Oracle.DataAccess
''' .NET
''' 10.2.0.100
''' True
''' C:\oraclexe\app\oracle\product\10.2.0\server\bin\Oracle.DataAccess.dll
'''
''' 32bit 環境用のDLLを使ったアプリは、x86 でビルド しておかないと動作しない。
''' Microsoft Visual Studio Express Editionでは、コンパイルの詳細設定での選択ができない。
''' x86でビルドするには
''' プロジェクト ファイルを開き
''' 最初の <PropertyGroup>・・・</PropertyGroup> セクションを探す。
''' そのタグのあとに次の行を追加する。"<PlatformTarget>x86</PlatformTarget>"
''' </remarks>
''' <summary>
''' 接続情報、SQLを基にデータテーブルを返す
''' </summary>
''' <param name="wp_ConnectInfo">接続情報</param>
''' <param name="wp_Sql">SQL</param>
''' <returns>データテーブル</returns>
''' <remarks></remarks>
Public Function pf_dt(wp_ConnectInfo As clsConnectInfo, ByVal wp_Sql As String) As dt
Dim ret As New dt()
Dim dt As New DataTable()
Dim cn As New Oracle.DataAccess.Client.OracleConnection(mf_ConnectString(wp_ConnectInfo))
cn.Open()
Dim cmd As New Oracle.DataAccess.Client.OracleCommand(wp_Sql, cn)
Dim ds As New DataSet
Dim da As New Oracle.DataAccess.Client.OracleDataAdapter(cmd)
da.Fill(ds, "data")
dt = ds.Tables(0)
For i As Integer = 0 To dt.Rows.Count - 1
Dim cells As New clsCells
For j As Integer = 0 To dt.Columns.Count - 1
Dim w As String = ""
Select Case dt.Columns(j).DataType.Name
Case "String"
w = dt.Rows(i).Item(j).ToString
Case "Single"
w = pf_ObjectToDouble(dt.Rows(i).Item(j)).ToString
Case "Decimal"
w = pf_ObjectToDouble(dt.Rows(i).Item(j)).ToString
Case "DateTime"
If IsDate(dt.Rows(i).Item(j)) Then
w = pf_ObjectToDate(dt.Rows(i).Item(j)).ToString("yyyy/MM/dd HH:mm:ss")
End If
Case Else
'MsgBox(dt.Columns(j).DataType.Name, MsgBoxStyle.SystemModal)
Debug.Print(dt.Columns(j).DataType.Name)
w = dt.Rows(i).Item(j).ToString
End Select
cells.Cells.Add(w)
Next
ret.Rows.Add(cells)
Next
Return ret
End Function
''' <summary>
''' 接続情報を基に接続文字列を返す
''' </summary>
''' <param name="wp_ConnectInfo">接続情報</param>
''' <returns>接続文字列</returns>
''' <remarks></remarks>
Private Function mf_ConnectString(wp_ConnectInfo As clsConnectInfo) As String
Dim ret = "user id=x;password=x;data source=xe"
'TODO 2017.10.26 NMHIS M.Nakagawa 以下1行削除
'ret = String.Format("user id={0};password={1};data source={2}", wp_ConnectInfo.c0UserId, wp_ConnectInfo.c1Password, wp_ConnectInfo.c2DataSource)
'TODO 2017.10.26 NMHIS M.Nakagawa 以下1行追加
ret = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=x-PC)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XE)));User Id=x;Password=x;"
Return ret
End Function
最終更新:2017年10月26日 20:59