データベース接続を開く

``EDBConnection``オブジェクトは、Advanced Serverのインスタンスと.NETアプリケーション間の通信を処理します。 Advanced Serverデータベースに保存されたデータにアクセスする前に、``EDBConnection``を作成して開く必要があります。

次の例は、Advanced Serverのインスタンスに接続するための基本的な手順を示しています。あなたがする必要があります:

  1. 名前空間``EnterpriseDB.EDBClient``をインポートします。

  2. ``EDBConnection``のインスタンスを作成します。

  3. 接続文字列をパラメーターとして``EDBConnection``クラスのコンストラクターに渡すことで、``EDBConnection``オブジェクトを初期化します。

  4. ``EDBConnection``オブジェクトのOpenメソッドを呼び出して、接続を開きます。

接続文字列パラメーター

有効な接続文字列では、Advanced Serverインスタンスの場所と認証情報を指定する必要があります。接続を開く前に、接続文字列を指定する必要があります。接続文字列には次が含まれている必要があります。

  • サーバーの名前またはIPアドレス

  • Advanced Serverデータベースの名前

  • Advanced Serverユーザーの名前

  • そのユーザーに関連付けられたパスワード

次のパラメーターが接続文字列に含まれている場合があります。

CommandTimeout

``CommandTimeout``は、例外をスローする前にコマンドの実行が完了するまで待機する時間の長さ(秒単位)を指定します。デフォルト値は``20``です。

ConnectionLifeTime

``ConnectionLifeTime``を使用して、プール内の未使用の接続を閉じるまで待機する時間の長さ(秒単位)を指定します。デフォルト値は``15``です。

データベース

``Database``パラメーターを使用して、アプリケーションが接続するデータベースの名前を指定します。データベース名が指定されていない場合、データベース名はデフォルトで接続ユーザーの名前になります。

エンコード

``Encoding``パラメーターは廃止されました。パラメータは常に文字列unicodeを返し、設定の試行を静かに無視します。

統合セキュリティ

デフォルトでは、``統合セキュリティ``は``false``に設定されており、Windows統合セキュリティは無効になっています。 Windows統合セキュリティを使用するには、``true``の値を指定します。

MaxPoolSize

``MaxPoolSize``は、プールが指定された接続数を超えると、プールされた接続を破棄するよう``EDBConnection``に指示します。デフォルト値は``20``です。

MinPoolSize

``MinPoolSize``は、サーバーとの指定された数の接続を事前に割り当てるよう``EDBConnection``に指示します。デフォルト値は``1``です。

パスワード

クリアテキスト認証を使用する場合は、サーバーとの接続を確立するために使用されるパスワードを指定します。

プール

デフォルトでは、接続プーリングを有効にするために``Pooling``は``true``に設定されます。接続プールを無効にするには、``false``の値を指定します。

ポート

``Port``パラメーターは、アプリケーションが接続するポートを指定します。

プロトコル

使用する特定のプロトコルバージョン(自動ではなく)。 2または3の整数値を指定します。

SearchPath

``SearchPath``パラメーターを使用して、検索パスを名前付きスキーマとパブリックスキーマに変更します。

サーバー

Advanced Serverホストの名前またはIPアドレス。

SSL

デフォルトでは、``SSL``は``false``に設定されています。安全な接続を試みるには``true``の値を指定します。

sslmode

``sslmode``を使用して、SSL接続制御設定を指定します。``sslmode``は次のいずれかです:

prefer-可能であればSSLを使用します。

require-SSL接続を確立できない場合に例外をスローします。

allow-SSLなしで接続します。このパラメーターはサポートされていません。

disable-SSL接続を試みません。これがデフォルトの動作です。

SyncNotification

``SyncNotification``パラメーターを使用して、``EDBDataprovider``が同期通知を使用するように指定します。デフォルト値は``false``です。

タイムアウト

``タイムアウト``は、開いている接続を待機する時間の長さ(秒単位)を指定します。デフォルト値は``15``です。

ユーザーID

``User Id``パラメーターは、接続に使用されるユーザー名を指定します。

データベース接続を開く

次の例は、Advanced Serverのインスタンスへの接続を開き、接続を閉じる方法を示しています。接続は``DB_CONN_STRING``構成パラメーターで指定された資格情報を使用して確立されます(:ref: `章-.Netコネクターの使用を参照) <using_the_net_connector> `接続情報の概要については、:ref:`セクション-接続文字列パラメーターも参照してください。 <connection_string_parameters> `接続パラメータ用)。

<% @ Page Language="C#" %>
<% @Import Namespace="EnterpriseDB.EDBClient" %>
<% @Import Namespace="System.Configuration" %>

<script language="C#" runat="server">

private void Page_Load(object sender, System.EventArgs e)
{
  string strConnectionString = ConfigurationSettings.AppSettings
    ["DB_CONN_STRING"];

  EDBConnection conn = new EDBConnection(strConnectionString);

  try
  {
    conn.Open();
    Response.Write("Connection opened successfully");
  }

  catch(EDBException exp)
  {
    exp.ToString();
  }

  finally
  {
    conn.Close();
  }
}

</script>

接続が成功すると、ブラウザに次が表示されます。

Connection Opened Successfully

接続が正常にオープンしました

データベース接続を開く

次の例では、コンソールベースのアプリケーションを使用してAdvanced Serverデータベースとの接続を開きます。

コンソールアプリケーションのコードを書く前に、データベースへの接続文字列を保存する``app.config``ファイルを作成します。構成ファイルを使用すると、情報が変更された場合に接続文字列を更新するのに便利です。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
      <appSettings>
              <add key="DB_CONN_STRING" value = "Server=127.0.0.1;Port=5444;
              User Id=enterprisedb;Password=enterprisedb;Database=edb"/>
      </appSettings>
</configuration>

選択したテキストエディターを使用して、次のコードサンプルをファイルに入力します。

using System;
using System.Data;
using EnterpriseDB.EDBClient;
using System.Configuration;

namespace EnterpriseDB
{

      class EDB
      {

        static void Main(string[] args)
        {
         string strConnectionString = ConfigurationSettings.AppSettings
            ["DB_CONN_STRING"];

           EDBConnection conn = new EDBConnection(strConnectionString);

            try
            {
                conn.Open();
                Console.WriteLine("Connection Opened Successfully");
            }

            catch(Exception exp)
            {
                throw new Exception(exp.ToString());
            }

            finally
            {
              conn.Close();
            }
         }
      }
}

ファイルを``EDBConnection-Sample.cs``として保存し、次のコマンドでコンパイルします:

csc /r:EDBDataProvider.dll /out:Console.exe EDBConnection-Sample.cs

サンプルをコンパイルすると``Console.exe``ファイルが生成されます。``Console.exe``と入力してサンプルコードを実行できます。実行されると、コンソールは次のことを確認する必要があります。

接続が正常に開かれました

データベース接続を開く

次の例は、.NET WinFormアプリケーションを使用してデータベース接続を開く方法を示しています。この例を使用するには、次のコードを``WinForm-Example.cs``としてライブラリファイルを含むディレクトリに保存します。

using System;
using System.Windows.Forms;
using System.Drawing;
using EnterpriseDB.EDBClient;

namespace EDBTestClient
{

      class Win_Conn
      {
              static void Main(string[] args)
              {
                      Form frmMain = new Form();
                      Button btnConn = new Button();
                      btnConn.Location = new System.Drawing.Point(104, 64);
                      btnConn.Name = "btnConn";
                      btnConn.Text = "Open Connection";
                      btnConn.Click += new System.EventHandler(btnConn_Click);

                      frmMain.Controls.Add(btnConn);
                      frmMain.Text = "EnterpriseDB";

                      Application.Run(frmMain);
              }

              private static void btnConn_Click(object sender, System.EventArgs e)
              {
                      EDBConnection conn = null;
                      try
                      {
                              string connectionString = "Server=10.90.1.29;port=5444;
                              username=edb;password=edb;database=edb";
                              conn = new EDBConnection(connectionString);
                              conn.Open();
                              MessageBox.Show("Connection Open");
                      }
                      catch(EDBException exp)
                      {
                              MessageBox.Show(exp.ToString());
                      }
                      finally
                      {
                              conn.Close();
                      }
              }
      }
}

次のコマンドでファイルをコンパイルする前に、接続するデータベースを指すようにデータベース接続文字列を変更する必要があることに注意してください。

csc /r:EDBDataProvider.dll /out:WinForm.exe WinForm-Example.cs

このコマンドは、実行可能ファイルがコンパイルされた同じフォルダー内に``WinForm.exe``ファイルを生成する必要があります。実行可能ファイルを呼び出すと、次が表示されます。

Dialog

正常な接続