データ プロバイダーを使用して、SQL Server 及び Oracle に接続するための共通処理を紹介したいと思います。
Oracle 接続環境の注意点
Oracle に接続する際は、下記準備が必要となります。
- Oracle Data Access Components (ODAC) for Windows のインストール
使用している Visual Studio のバージョンによりインストーラーが用意されています。
2018-04-13 現在、Oracle ホームページのこちらからダウンロードすることができます。
- 開発プロジェクトの参照設定に、Oracle.DataAccess を追加する必要があります。
DB接続(SQLServer、Oracle共通化)
Dim prov As DbProviderFactory = Nothing
Dim con As DbConnection = Nothing
Dim cmd As DbCommand = Nothing
'False:Oracle接続、True:SQLServer接続
Dim isDbSQLServer As Boolean = False
Dim strProvider As String
Dim strConnection As String
'DbProviderFactoryオブジェクトの生成
If isDbSQLServer Then
'SQLServer接続の場合
strProvider = "System.Data.SqlClient"
strConnection = String.Format("Server={0};Database={1};User ID={2};Password={3};", _
"192.168.1.1", _
"sqlDB", _
"userid", _
"userpw")
Else
'Oracle接続の場合
strProvider = "Oracle.DataAccess.Client"
strConnection = String.Format("Data Source={0};User Id={1};Password={2};", _
"oraDB", _
"userid", _
"userpw")
End If
prov = DbProviderFactories.GetFactory(strProvider)
'DbConnectionオブジェクトの生成、及び、オープン
con = prov.CreateConnection()
con.ConnectionString = strConnection
con.Open()
'DBCommandオブジェクトの生成、及び、コネクションの設定
cmd = prov.CreateCommand()
cmd.Connection = con
上記ソースプログラムの isDbSQLServer 変数に「False」を設定すると SQL Server に接続し、「True」を設定すると Oracle に接続できるような作りとなっています。
- SQL Server の接続文字列の設定
Server:DB サーバー名、または、IP アドレス
Database:接続先の DB 名
User ID:DB 接続するユーザー ID
Password:DB 接続するパスワード - Oracle の接続文字列の設定
Data Source:tnsname.ora に設定してあるデータソース名
User ID:DB 接続するユーザー ID
Password:DB 接続するパスワード
簡易的なソースプログラムとなりますので、エラー処理などは記載していません。
このソースプログラムを元にしてクラス化することにより、SQL Server と Oracle の接続を共通化し、開発効率があがればと思います。
参考にしてもらい、開発の役に立てれば嬉しいです。
Visual Basicの絵本 Windowsプログラミングわかる9つの扉
SQLの絵本 第2版 データベースが好きになる新しい9つの扉
次回は、 VB.NET データベースの SELECT 文を実行しよう(SQLServer、Oracle共通化)で、データベース接続後の SELECT 文の実装方法を紹介したいと思います。