データベース接続を開く¶
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のインスタンスに接続するための基本的な手順を示しています。絶対です:
名前空間
EnterpriseDB.EDBClientをインポートします。EDBConnectionのインスタンスを作成します。Initialize the
EDBConnectionobject by passing a connection string as a parameter to the constructor for theEDBConnectionclass.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
sslmodeto specify an SSL connection control preference.sslmodecan 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>
接続が成功すると、ブラウザに次のように表示されます。
接続が正常に開かれました¶
例-コンソールアプリケーションからデータベース接続を開く¶
次の例では、コンソールベースのアプリケーションを使用して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 ファイルを生成します。実行可能ファイルを呼び出すと、次が表示されます。
正常な接続¶