CommandTimeoutプロパティで実行時間の監視を行うためのサンプルコードについて説明します。
アプリケーションの手順
SymfowareConnectionオブジェクトでコネクションを接続します。詳細は、“A.2.1 接続および切断”を参照してください。
SymfowareCommandオブジェクトを生成します。(CommandTextプロパティへ問合せ式を設定します)
SymfowareCommand. CommandTimeoutプロパティでタイムアウトの時間を設定します。
SymfowareCommand.Connectionプロパティは、SymfowareConnectionオブジェクトを関連します。
SymfowareDataReaderオブジェクトよりデータを取得します。
タイムアウトが発生したかどうか判定します。
タイムアウト発生を通知します。
コネクションを切断します。
オブジェクトを破棄します。
エラー処理については、“A.2.8 エラー処理”を参照してください。
try { // SymfowareConnectionオブジェクトの生成 SymfowareConnection con = new SymfowareConnection("DATA SOURCE=127.0.0.1;PORT=26551;" + "INITIAL CATALOG=TEST;USER ID=USER01;PASSWORD=PASS01"); SymfowareDataReader reader = null; // 1. コネクション接続 con.Open(); // 2. SymfowareCommandオブジェクトの生成 SymfowareCommand com = new SymfowareCommand("SELECT * FROM SAMPLE1.TESTTBL", con); // 3. SymfowareCommandオブジェクトのCommandTimeoutプロパティを設定する com.CommandTimeout = 10; // 4. SymfowareConnectionオブジェクトと関連 com.Connection = con; try { // 5. SymfowareDataReaderオブジェクトよりデータを取得します。 reader = com.ExecuteReader(); // データを取得処理ルーチンを記述。“A.2.2 SymfowareDataReaderでの参照”を参照。 } catch (SymfowareException ex) { // 6. タイムアウトが発生したかどうか判定する方法 if(string.Equals(ex.SQLState, "61000")) { // 7. タイムアウト発生を通知する Console.WriteLine("検索結果の件数が多すぎるため、タイムアウトが発生しました"); } else { throw ex } } finally { // 8. コネクション切断 con.Close(); // 9. オブジェクトの破棄 com.Dispose(); con.Dispose(); } } // エラ-処理 catch (Exception e1) { // エラー処理ルーチンを記述 }