データベース接続を開く

An EDBConnection object is responsible for handling the communication between an instance of Advanced Server and a .NET application. Before you can access data stored in an Advanced Server database, you must create and open an EDBConnection.

次の例は、AdvancedServerのインスタンスに接続するための基本的な手順を示しています。絶対です:

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

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

  3. Initialize the EDBConnection object by passing a connection string as a parameter to the constructor for the EDBConnection class.

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

接続文字列パラメータ

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

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

  • AdvancedServerデータベースの名前

  • AdvancedServerユーザーの名前

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

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

CommandTimeout

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

ConnectionLifeTime

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

Database

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

Encoding

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

Integrated Security

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

Load Role Based Tables

ロールに基づいてテーブルOIDをロードするには Load Role Based Tables を使用します。この変更は、テーブルタイプOIDの読み込みにのみ影響し、複合タイプには影響しません。デフォルト値は false です。このパラメータを true に設定すると、新しい機能がトリガーされます。

MaxPoolSize

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

MinPoolSize

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

Password

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

Pooling

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

Port

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

Protocol

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

SearchPath

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

Server

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

SSL

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

sslmode

Use sslmode to specify an SSL connection control preference. sslmode can be:

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

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

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

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

SyncNotification

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

Timeout

Timeout は、開いている接続を待つ時間の長さ(秒単位)を指定します。デフォルト値は 15 です。

User Id

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

例-ASP.NETを使用してデータベース接続を開く

The following example demonstrates how to open a connection to an instance of Advanced Server and then close the connection. The connection is established using the credentials specified in the DB_CONN_STRING configuration parameter (see Using the .Net Connector for an introduction to connection information and also see Connection String Parameters for connection 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

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

例-コンソールアプリケーションからデータベース接続を開く

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

コンソールアプリケーションのコードを書く前に、データベースへの接続文字列を格納する 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

Compiling the sample should generate a Console.exe file; you can execute the sample code by entering Console.exe. When executed, the console should verify that the:

Connection Opened Successfully

例-Windowsフォームアプリケーションからデータベース接続を開く

次の例は、.NETWinFormアプリケーションを使用してデータベース接続を開く方法を示しています。例を使用するには、次のコードをライブラリファイルを含むディレクトリに 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

正常な接続