ページの先頭行へ戻る
Symfoware Server V11.1.0 アプリケーション開発ガイド(.NET Data Provider編)
FUJITSU Software

A.3.12 CommandTimeoutプロパティでの実行時間の監視

CommandTimeoutプロパティで実行時間の監視を行うためのサンプルコードについて説明します。

アプリケーションの手順

  1. SymfowareConnectionオブジェクトでコネクションを接続します。詳細は、“A.3.1 接続および切断”を参照してください。

  2. SymfowareCommandオブジェクトを生成します。(CommandTextプロパティへ問合せ式を設定します)

  3. SymfowareCommand.CommandTimeoutプロパティでタイムアウトの時間を設定します。

  4. SymfowareCommand.Connectionプロパティは、SymfowareConnectionオブジェクトを関連します。

  5. SymfowareDataReaderオブジェクトよりデータを取得します。

  6. タイムアウトが発生したかどうか判定します。

  7. タイムアウト発生を通知します。

  8. コネクションを切断します。

  9. オブジェクトを破棄します。

エラー処理については、“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