データベース接続を開く¶
``EDBConnection``オブジェクトは、Advanced Serverのインスタンスと.NETアプリケーション間の通信を処理します。 Advanced Serverデータベースに保存されたデータにアクセスする前に、``EDBConnection``を作成して開く必要があります。
次の例は、Advanced Serverのインスタンスに接続するための基本的な手順を示しています。あなたがする必要があります:
名前空間``EnterpriseDB.EDBClient``をインポートします。
``EDBConnection``のインスタンスを作成します。
接続文字列をパラメーターとして``EDBConnection``クラスのコンストラクターに渡すことで、``EDBConnection``オブジェクトを初期化します。
``EDBConnection``オブジェクトのOpenメソッドを呼び出して、接続を開きます。
接続文字列パラメーター¶
有効な接続文字列では、Advanced Serverインスタンスの場所と認証情報を指定する必要があります。接続を開く前に、接続文字列を指定する必要があります。接続文字列には次が含まれている必要があります。
サーバーの名前またはIPアドレス
Advanced Serverデータベースの名前
Advanced Serverユーザーの名前
そのユーザーに関連付けられたパスワード
次のパラメーターが接続文字列に含まれている場合があります。
CommandTimeout
``CommandTimeout``は、例外をスローする前にコマンドの実行が完了するまで待機する時間の長さ(秒単位)を指定します。デフォルト値は``20``です。
ConnectionLifeTime
``ConnectionLifeTime``を使用して、プール内の未使用の接続を閉じるまで待機する時間の長さ(秒単位)を指定します。デフォルト値は``15``です。
データベース
``Database``パラメーターを使用して、アプリケーションが接続するデータベースの名前を指定します。データベース名が指定されていない場合、データベース名はデフォルトで接続ユーザーの名前になります。
エンコード
``Encoding``パラメーターは廃止されました。パラメータは常に文字列unicodeを返し、設定の試行を静かに無視します。
統合セキュリティ
MaxPoolSize
``MaxPoolSize``は、プールが指定された接続数を超えると、プールされた接続を破棄するよう``EDBConnection``に指示します。デフォルト値は``20``です。
MinPoolSize
``MinPoolSize``は、サーバーとの指定された数の接続を事前に割り当てるよう``EDBConnection``に指示します。デフォルト値は``1``です。
パスワード
クリアテキスト認証を使用する場合は、サーバーとの接続を確立するために使用されるパスワードを指定します。
プール
デフォルトでは、接続プーリングを有効にするために``Pooling``は``true``に設定されます。接続プールを無効にするには、``false``の値を指定します。
ポート
``Port``パラメーターは、アプリケーションが接続するポートを指定します。
プロトコル
使用する特定のプロトコルバージョン(自動ではなく)。 2または3の整数値を指定します。
SearchPath
``SearchPath``パラメーターを使用して、検索パスを名前付きスキーマとパブリックスキーマに変更します。
サーバー
Advanced Serverホストの名前またはIPアドレス。
SSL
デフォルトでは、``SSL``は``false``に設定されています。安全な接続を試みるには``true``の値を指定します。
sslmode
SyncNotification
タイムアウト
``タイムアウト``は、開いている接続を待機する時間の長さ(秒単位)を指定します。デフォルト値は``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>
接続が成功すると、ブラウザに次が表示されます。
接続が正常にオープンしました¶
データベース接続を開く¶
次の例では、コンソールベースのアプリケーションを使用して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``ファイルを生成する必要があります。実行可能ファイルを呼び出すと、次が表示されます。
正常な接続¶