中年システムエンジニアのオモチャ箱

中年システムエンジニアが初体験のブログ活動。技術情報の備忘録以外も、色々と載せていければと思います。

【スポンサーリンク】

 

VB.NET データ プロバイダーを使用しての DB 接続(SQLServer、Oracle共通化)


【スポンサーリンク】


データ プロバイダーを使用して、SQL Server 及び Oracle に接続するための共通処理を紹介したいと思います。

【スポンサーリンク】

Oracle 接続環境の注意点

 Oracle に接続する際は、下記準備が必要となります。

  1. Oracle Data Access Components (ODAC) for Windows のインストール
    使用している Visual Studio のバージョンによりインストーラーが用意されています。
    2018-04-13 現在、Oracle ホームページのこちらからダウンロードすることができます。

    f:id:middle-aged-se:20180412211127j:plain

  2. 開発プロジェクトの参照設定に、Oracle.DataAccess を追加する必要があります。

    f:id:middle-aged-se:20180412211553j:plain



 
 DB接続(SQLServerOracle通化

 

ソースコード

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 ServerOracle の接続を共通化し、開発効率があがればと思います。

 

参考にしてもらい、開発の役に立てれば嬉しいです。

 

次回は、 VB.NET データベースの SELECT 文を実行しよう(SQLServer、Oracle共通化)で、データベース接続後の SELECT 文の実装方法を紹介したいと思います。