CodeZine(コードジン)

特集ページ一覧

64bitに対応した「ODP.NET」を使ってみよう!

64bit環境のメリットを生かしたOracle データベース対応アプリケーション開発

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2011/06/15 14:00

目次

 最後に「64-bit ODP.NET」からOracle Databaseに接続するコードを記述します。フォームに追加した[Button]コントロールの[Click]イベントに以下のコードを追記します。

「64-bit ODP.NET」からOracle Databaseに接続するコード(C#)
// ODP.NETの名前空間を定義
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

namespace ODP64Smpl
{
  public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      // Oracle Databaseへの接続
      // 「data source」は、サーバー名(もしくはIP):ポート番号/サービス名を指定
      OracleConnection conn = 
        new OracleConnection("user id=scott;password=tiger;data source=localhost:1521/orcl11gr2");

      try
      {
        conn.Open();
        conn.Close();
        MessageBox.Show("データベースへ接続しました。");
      }
      catch(Exception ex)
      {
        MessageBox.Show("データベースへの接続に失敗しました。" + ex.Message);
      }   
    }
  }
}
「64-bit ODP.NET」からOracle Databaseに接続するコード(VB)
'// ODP.NETの名前空間を定義
Imports Oracle.DataAccess.Client
Imports Oracle.DataAccess.Types

Public Class Form1

  Private Sub button1_Click(sender As System.Object, e As System.EventArgs) Handles button1.Click
    '// Oracle Databaseへの接続
    '// 「data source」は、サーバー名(もしくはIP):ポート番号/サービス名を指定
    Dim conn As OracleConnection = _
      New OracleConnection("user id=scott;password=tiger;data source=localhost:1521/orcl11gr2")

    Try
      conn.Open()
      conn.Close()

      MessageBox.Show("データベースへ接続しました。")
    Catch ex As Exception
      MessageBox.Show("データベースへの接続に失敗しました。" + ex.Message)
    End Try
  End Sub
End Class

 ここで上記アプリケーションを実行すると[エラー一覧]ウィンドウに以下のような警告メッセージが表示されています。

アプリケーション実行時の警告メッセージ
アプリケーション実行時の警告メッセージ

 警告メッセージは「異なるプロセッサを対象にしています。」と表示されていますが、 原因は「64-bit ODP.NET」を32-bit .NET Framework上で動作させようとしているためにこのメッセージが表示されています。 現在、64bitか32bitどちらで動作しているのかを確認するのは以下のソースコードを[Button]コントロールの[Click]イベントに追加します。

64bitか32bitのどちらで動作しているかを確認するコード(C#)
// 以下の名前空間を追加
using System.Reflection;

namespace ODP64Smpl
{
  public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      // 以下の部分を既存のソースコードに追加
      // .NET Framework 3.5までは以下のコードで判定
      if (IntPtr.Size == 4)
      {
        MessageBox.Show("32ビットで動作中");
      }
      else if (IntPtr.Size == 8)
      {
        MessageBox.Show("64ビットで動作中");
      }

      // .NET Framework 4.0以降は以下のコードで判定
      if (System.Environment.Is64BitProcess)
      {
        MessageBox.Show("64ビットで動作中");
      }
      else
      {
        MessageBox.Show("32ビットで動作中");
      }
    }
  }
}
64bitか32bitのどちらで動作しているかを確認するコード(VB)
'// 以下の名前空間を追加
Imports System.Reflection

Public Class Form1
  Private Sub button1_Click(sender As System.Object, e As System.EventArgs) Handles button1.Click
    '// 以下の部分を既存のソースコードに追加
    '// .NET Framework 3.5までは以下のコードで判定
    If IntPtr.Size = 4 Then
      MessageBox.Show("32ビットで動作中")
    Else
      MessageBox.Show("64ビットで動作中")
    End If

    '// .NET Framework 4.0以降は以下のコードで判定
    If System.Environment.Is64BitProcess Then
      MessageBox.Show("64ビットで動作中")
    Else
      MessageBox.Show("32ビットで動作中")
    End If

  End Sub
End Class

 アプリケーションを実行すると、実行中のアプリケーションが64bitか32bitのどちらで実行されているかがメッセージボックスで表示されます。

 64bitとしてアプリケーションを実行するには、Visual Studioのメニューから[ビルド(B)]‐[構成マネージャー(O)]を選択し[構成マネージャー]ウィンドウを表示します。そして、[アクティブソリューションプラットフォーム(P)]から<新規作成...>を選択します。

構成マネージャーでの設定
構成マネージャーでの設定

 [新しいソリューション プラットフォーム]ウィンドウで[新しいプラットフォームを入力または選択してください(P)]のリストボックスから[x64]を選択します。[設定のコピー元(S)]はデフォルト表示されている[x86]を選択したままにし、[新しいプロジェクトプラットフォームを作成する(C)]にチェックをつけます。

新しいソリューション プラットフォームで[x64]を追加
新しいソリューション プラットフォームで[x64]を追加

 [構成マネージャー]を閉じ、再度アプリケーションを実行してみてください。 今度はメッセージボックスに「64ビットで動作中」と表示されるのが確認できます。

 また、64bitか32bitどちらで稼働しているかを確認するには[Windows タスク マネージャー]の[プロセス]一覧からも確認できます。[vshost.exe]が64bitの場合は、以下のようにイメージ名はアプリケーションの実行モジュール名、説明は[vshost.exe]と表示されます。

プロセス一覧からの確認(64bit)
プロセス一覧からの確認(64bit)

 32bitで稼働している場合は、イメージ名の実行モジュール名隣に[*32]と表示され、説明は[vshost32.exe]と表示されます。

プロセス一覧からの確認(32bit)
プロセス一覧からの確認(32bit)

  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:Oracle Tips

もっと読む

著者プロフィール

  • 日本オラクル 大田(オオタ ヒロシ)

    日本オラクル株式会社 Oracle Directテクニカルサービス部所属。開発者の視点から、Oracle Databaseの機能を最大限に活かすための手法を日々研究しながら、プリセールス活動やオンラインセミナー等による情報発信を行う。現在はWindows Server上でのOracle製品活用を推進...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5