CommandTimeoutプロパティで実行時間の監視を行うためのサンプルコードについて説明します。
アプリケーションの手順
SymfowareConnectionオブジェクトでコネクションを接続します。詳細は、“A.3.1 接続および切断”を参照してください。
SymfowareCommandオブジェクトを生成します。(CommandTextプロパティへ問合せ式を設定します)
SymfowareCommand.CommandTimeoutプロパティでタイムアウトの時間を設定します。
SymfowareCommand.Connectionプロパティは、SymfowareConnectionオブジェクトを関連します。
SymfowareDataReaderオブジェクトよりデータを取得します。
タイムアウトが発生したかどうか判定します。
タイムアウト発生を通知します。
コネクションを切断します。
オブジェクトを破棄します。
エラー処理については、“A.3.8 エラー処理”を参照してください。
Try 'SymfowareConnectionオブジェクトの生成 Dim con As New SymfowareConnection("DATA SOURCE=127.0.0.1;PORT=26551;" _ "INITIAL CATALOG=TEST;USER ID=USER01;PASSWORD=PASS01") Dim reader As SymfowareDataReader = Nothing '1. コネクション接続 con.Open() ‘ 2. SymfowareCommandオブジェクトの生成 Dim com As 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.3.2 SymfowareDataReaderでの参照”を参照。 Catch ex As SymfowareException ‘ 6. タイムアウトが発生したかどうか判定する方法 If string.Equals(ex.SQLState, "61000") Then ‘ 7. タイムアウト発生を通知する Console.WriteLine("検索結果の件数が多すぎるため、タイムアウトが発生しました") Else Throw ex End If Finally ‘ 8. コネクション切断 con.Close() ‘ 9. オブジェクトの破棄 com.Dispose() con.Dispose() End Try } ‘ エラ-処理 Catch exception1 As Exception ‘ エラー処理ルーチンを記述 End Try