1 はじめに
以下の説明では、 用語は、言語キーワード、ユーザー指定の値、リテラルなどの任意の単語または単語のグループを指します。用語の正確な意味は、それが使用される文脈によって異なります。
• イタリック体のフォント は、通常は初めて定義する文章の中に新しい用語を導入します。
• Fixed-width (mono-spaced) font は、 SQL コマンド、例で使用されている特定のテーブル名および列名、プログラミング言語のキーワード など、文字通りに指定する必要がある用語に使用され ます 。例えば、 SELECT * FROM emp;
•
•
•
•
2 要件の概要
3.1 .NETクラス階層EDBConnection クラスには、高度なサーバーへの接続を表します。 EDBConnection オブジェクトが含まれている ConnectionString Advanced Serverのデータベースに接続する方法.NETクライアントに指示します。EDBCommand オブジェクトは、クライアントは、Advanced Serverに対して実行されるSQLコマンドが含まれています。 EDBCommand オブジェクト を実行する前 に、それを EDBConnection オブジェクトに リンクする必要があり ます。EDBDataReader オブジェクトは、Advanced Serverの結果セットを読むための方法を提供します。 EDBDataReader オブジェクトを 使用して、 EDBDataReader 1行ずつ順方向に進む ことができます 。EDBDataAdapter オブジェクトは、Advanced Serverのデータベースに結果セットをリンクします。 Advanced Serverデータベースに格納されているデータを更新 するには、値を変更して EDBDataAdapter クラスを 使用し ます。
4.1 .NETコネクタのインストールNextをクリックして続けます。StackBuilder Plusを使用して、既存のAdvanced Serverインストールにコネクタを追加または更新できます。 StackBuilder Plusを開くには、Windows AppsメニューからStackBuilder Plusを選択します(図2.5を参照)。StackBuilder Plusが開いたら、画面上の指示に従います。ツリーコントロールの[ Database Driversノードから[ EnterpriseDB .Net Connector ]オプションを選択します(図2.6を参照)。
4.2 .NETコネクタの設定
• ライブラリファイルの参照すべてのコンポーネントに適用可能な一般構成情報。
• .NET Framework 4.0。 .NET Framework 4.0で使用するための設定手順
• .NET Framework 4.5。 .NET Framework 4.5で使用するための設定手順
• .NET Framework 4.5.1。 .NET Framework 4.5.1で使用するための設定手順
• .NET Standard 2.0 .NET Standard 2.0で使用するための設定手順
• エンティティフレームワーク5/6。 Entity Frameworkで使用するための設定手順
• EnterpriseDB VSIX EnterpriseDB VSIXで使用するための設定手順
4.2.1 ライブラリファイルの参照
1。
4.2.2 .NET Frameworkのセットアップ
4.2.2.1 NET Framework 4.0ライブラリファイルの参照については、 4.2.1 項を参照してください 。
4.2.2.2 .NET Framework 4.5注:プロジェクトに以下の依存関係も追加する必要があります。ライブラリファイルの参照については、 4.2.1 項を参照してください 。
4.2.2.3 .NET Framework 4.5.1注:プロジェクトに以下の依存関係も追加する必要があります。ライブラリファイルの参照については、 4.2.1 項を参照してください 。
4.2.2.4 .NET標準2.0Note:プロジェクトに以下の依存関係も追加する必要があります。Note: If your target framework is .Net Core 2.0, then include the following file in your project:ライブラリファイルについては、 4.2.1 項を参照してください 。
4.2.3 エンティティフレームワーク5/6ライブラリファイルの参照については、 4.2.1 項を参照してください 。プロジェクトの app.configファイルで、EntityFramework / providerタグの下にプロバイダサービス用の次のエントリを追加します。
EDBデータデザイナ拡張プロバイダ ( EnterpriseDB VSIX )は、Advanced ServerデータベースへのアクセスをVisual Studioに統合し、Visual Studioの統合機能を提供するコンポーネントです。EnterpriseDB.vsix
SSDLToPgSQL.tt
手順1:次の場所にあるEnterpriseDB.vsixインストーラを使用して、EnterpriseDB VSIXを目的のバージョンのVisual Studioにインストールします。グローバルアセンブリキャッシュ(GAC)にEnterpriseDB.EDBClientを配置する必要はなくなりました 。ステップ2: Visual Studioを再起動して、 Tools > Extensions and Updates ]メニューからEnterpriseDB機能拡張がインストールされていることを確認しTools > Extensions and Updates 。手順3:次の場所からVisual Studio Developersコマンドラインを使用して、 gacutilユーティリティを使用してグローバルアセンブリキャッシュ(GAC)にSystem.ValueTuple.dllアセンブリを追加します。ステップ4:サーバーエクスプローラから、 Data Connections右クリックし、 Add Connectionクリックして、 Enterprisedb Postgres Databaseデータソースが利用可能であることを確認します。
ステップ1:追加EntityFramework5.EnterpriseDB.EDBClient.dll持つグローバルアセンブリキャッシュ(GAC)にアセンブリをgacutil Visual Studioの開発者コマンドラインを使用してユーティリティ。注:属性と値のペアの場合、二重引用符で囲まれた文字列に余分な空白文字を含めることはできませんが、単一行で設定する必要があります。このセクションに示す例は、わかりやすくするために複数の行に分割することができますが、実際には次のように1行に構成する必要があります。64ビットWindowsの場合、 machine.configファイルは次の場所にあります。32ビットWindowsの場合、 machine.configファイルは次の場所にあります。注: EDMXファイルのプロパティでこのテンプレートSSDLToPgSQL.ttを選択してください。ステップ4:プロジェクト参照にEnterpriseDB.EDBClient.dllファイルとEntityFramework6.EnterpriseDB.EDBClient.dllファイルを追加します。ライブラリファイルの参照については、 4.2.1項を参照してください。ステップ5:プロジェクトのapp.configファイルで、EntityFramework / providerタグの下にプロバイダサービスの次のエントリを追加します。
サンプルコードと同じディレクトリに 次の web.config ファイルを 作成して保存して web.config 。例では 、この設定ファイルの DB_CONN_STRING キー を使用 して、Advanced Serverホストから接続文字列を返します。ASP.NET WebアプリケーションのAdvanced Server接続文字列は、 web.configファイルに格納されています。あなたはASP.NETを使用しないアプリケーションを作成する場合は、(のようなアプリケーション構成ファイルに接続情報を提供するapp 。 config )。
5.1 データベース接続を開くEDBConnectionオブジェクトは、Advanced Serverのインスタンスと.NETアプリケーション間の通信を処理する責任があります。 Advanced Serverデータベースに格納されているデータにアクセスする前に、 EDBConnection作成して開く必要があります。
2。 EDBConnection インスタンスを作成します 。
4。
5.1.1 接続文字列パラメータCommandTimeoutは、例外がスローされるまでにコマンドの実行が終了するのを待つ時間(秒単位)を指定します。デフォルト値は20です。Databaseパラメーターを使用して、アプリケーションの接続先となるデータベースの名前を指定します。データベース名が指定されていない場合、データベース名はデフォルトで接続ユーザーの名前になります。Encodingパラメータは廃止されました。パラメータは常に文字列unicode返し、それを設定しようとする試みを黙って無視します。デフォルトでは、 Integrated Securityはfalseに設定されfalseおり、Windows統合セキュリティは無効になっています。 Windows統合セキュリティを使用するには、値trueを指定してください。Portパラメータは、アプリケーションが接続するポートを指定します。SearchPathパラメータを使用して 、検索パスを名前付きスキーマとパブリックスキーマに変更します。prefer - 可能であればSSLを使用してください。require - SSL接続が確立できない場合に例外を投げます。allow - SSLなしで接続します。このパラメータはサポートされていません。disable - SSL接続を試みません。これがデフォルトの動作です。Timeoutは、開いている接続を待機する時間の長さ(秒単位)を指定します。デフォルト値は15です。User IdUser Idパラメータは、接続のために使用すべきであるユーザー名を指定します。
次の例は、Advanced Serverのインスタンスへの接続を開いてから接続を閉じる方法を示しています。接続は、 DB_CONN_STRING構成パラメータで指定された資格情報を使用して確立されます(接続情報の DB_CONN_STRINGについては第5章の始めを、接続パラメータについては5.1.1項を参照)。
コンソールアプリケーションのコードを作成する前に、データベースへの接続文字列を格納する app.configファイルを作成してください。設定ファイルを使用すると、情報が変更された場合に接続文字列を更新するのに便利です。
次の例は、.NET WinFormアプリケーションを使用してデータベース接続を開く方法を示しています。例を使用するには、次のコードを WinForm - Example として保存します 。ライブラリファイルを含むディレクトリ内のcs 。
5.2 データベースレコードの取得
•
•
• EDBDataReaderオブジェクトは、データベースレコードの前方のみの読み取り専用のストリームを表し、一度に一つのレコードを発表しました。ストリーム内の後続のレコードを表示するには、 EDBDataReaderオブジェクトのRead()メソッドを呼び出す必要があります。
1。 Advanced Serverの名前空間をインポート: EnterpriseDB.EDBClient
2。
5。 Read()メソッドは、(レコードが存在する場合)、次のレコードに進み、戻りtrueレコードが存在する場合、またはfalseことを示すためにEDBDataReader結果セットの終わりに達しています。
5.2.1 単一データベースレコードの取得クエリから単一の結果を取得するには、 EDBCommandオブジェクトのExecuteScalar()メソッドを使用します。 ExecuteScalar()メソッドは、指定されたクエリによって生成されたDataSet最初の行の最初の列の最初の値を返します。サンプルには、 ExecuteScalar()メソッドによって返された値の明示的な変換が含まれています 。 ExecuteScalar()メソッドはオブジェクトを返します。オブジェクトを表示するには、 Convertを使ってオブジェクトを整数値に変換する必要があります。 ToInt32メソッド
5.3 パラメータ化クエリパラメータ化 クエリは、SQL文に埋め込まれた1つ以上のパラメータマーカーを持つクエリです。パラメータ化されたクエリを実行する前に、SQLステートメントのテキスト内にある各マーカーに値を指定する必要があります。次の例に示すように、 EDBParameterオブジェクトを作成し、そのオブジェクトをコマンドのパラメータコレクションに追加することによって、パラメータ化クエリで指定された各パラメータのデータ型を宣言する必要があります。次に、パラメータのValue()関数を呼び出して、各パラメータに値を指定する必要があります。
5.4 データベースへのレコードの挿入次の例では、 insertコマンドは変数cmd格納されています。 (コロンで始まる値は: )のプレースホルダですEDBParameters 、インスタンス化された値が割り当てられ、その後に追加されたinsert続く文で、コマンドのパラメータコレクション。 insertコマンドは、 cmdInsertオブジェクトのExecuteNonQuery()メソッドによって実行されます。
5.5 データベース内のレコードの削除EDBCommand ExecuteNonQuery()メソッドをEDBCommandして、 Delete文を使用してAdvanced Serverホストに格納されているデータベースからレコードを削除できます 。次の例では、 deleteコマンドは変数strDeleteQuery格納されています。コードは従業員番号をDeleteコマンドに:EmpNoます( :EmpNo指定)。その後、 ExecuteNonQuery()メソッドを使用してコマンドが実行されます。次の例では、前の例で挿入された従業員を削除します。
2。 EnterpriseDB.EDBClient名前空間をインポートします。
3。
4。
5。 コマンドPrepare()します。
このサンプル手順では、部門 10 の名前を印刷しています。プロシージャはパラメータを取らず、パラメータを戻しません。サンプルプロシージャを作成するには、EDB-PSQLを起動してAdvanced Serverのホストデータベースに接続します。コマンドラインに次のSPLコードを入力します。EDBCommandオブジェクトの CommandTypeプロパティは、実行されているコマンドの種類を示すために使用されます。 CommandTypeプロパティは、3つの可能なCommandType列挙値のうちの1つに設定されます。
• StoredProcedure値を使用して、実行するストアドプロシージャの名前を渡します。CommandTextプロパティは、の値に応じて、SQL文字列、ストアドプロシージャ名、またはテーブル名が含まれている必要がありCommandTypeプロパティ。
次の例は、 INパラメータを含むストアドプロシージャを呼び出す方法を示しています。サンプルプロシージャを作成するには、EDB-PSQLを起動してAdvanced Serverのホストデータベースに接続します。コマンドラインに次のSPLコードを入力します。パラメータを含むストアドプロシージャを呼び出すことは、パラメータなしでストアドプロシージャを実行することと非常によく似ています。主な違いは、パラメータ化ストアドプロシージャを呼び出すときに、 EDBCommandオブジェクトのEDBParameterコレクションを使用する必要があることです。場合EDBParameterに追加さEDBCommandコレクション、等の特性ParameterName 、 DbType 、 Direction 、 Size 、およびValue設定されています。この例では、 Page_Loadメソッドの本体が EDBConnectionオブジェクトを宣言してインスタンス化します。次にサンプルは、ストアドプロシージャの実行に必要なプロパティを使用してEDBCommandオブジェクトを作成します。EMP_INSERTストアード・プロシージャーに渡す前に、各パラメーターに値を割り当てます。Prepare()メソッドを呼び出す前に文を準備ExecuteNonQuery()メソッドを。EDBCommandオブジェクトの ExecuteNonQueryメソッドは、ストアドプロシージャを実行します。ストアドプロシージャの実行後、テストレコードがempテーブルに挿入され、挿入された値がWebページに表示されます。
•
• EDBCommand の ExecuteNonQueryメソッドを呼び出し、そのEDBParameter valueプロパティを呼び出すことによって、宣言されたOutputパラメータの値を明示的に取得します。各メソッドで、パラメータの 方向を示す各パラメータを宣言する必要があります( ParameterDirection.Input 、 ParameterDirection.OutputまたはParameterDirection.InputOutput )。プロシージャを呼び出す前に、各INおよびINOUTパラメータに値を指定する必要があります。プロシージャが戻った後、 command.Parameters[]配列からOUTおよびINOUTパラメータ値を取得できます。
REFカーソルは、クエリ結果セットへのポインタを含むカーソル変数です。結果セットは、カーソル変数を使用したOPEN FORステートメントの実行によって決まります。カーソル変数は、静的カーソルのように特定のクエリに結び付けられていません。異なるクエリを含むOPEN FORステートメントで同じカーソル変数を何度も開くことができ、そのたびにそのクエリに対して新しい結果セットが作成され、カーソル変数を介して使用可能になります。カーソル変数を宣言する方法は2つあります。
• 使用 SYS_REFCURSOR弱い型付けされたREFカーソルを宣言するために、組み込みデータ型を。SYS_REFCURSORは、任意の結果セットをそれに関連付けることができる参照カーソル型です。これは、弱い型指定の参照カーソルとして知られています。次の例は、弱い型指定のrefカーソルの宣言です。次のサンプルコードは、 refcur_inout_callee というストアドプロシージャを作成します 。サンプルプロシージャを作成するには、EDB-PSQLを起動してAdvanced Serverのホストデータベースに接続します。コマンドラインに次のSPLコードを入力します。
5.8 プラグインを使う
•
•
•
5.8.1 GeoJSON
5.8.2 Json.NET
5.8.3 LegacyPostGIS
5.8.4 ネットトポロジースイートC:\Program Files\edb\dotnet\ plugins\NetTopologySuite\net45
5.8.5 NodaTime
5.8.6 RawPostGIS
5.9 APIリファレンス
•
• When referring to classes, replace Npgsql with EDB When referring to classes, replace . For example, use the EDBBinaryExporter class instead of the NpgsqlBinaryExporter class.