none
SqlHelperのCommandTimeoutについて RRS feed

  • 質問

  • SqlHelperを使用してSQLを実行させた時に下記のエラーが発生しました。

    「タイムアウトに達しました。操作が完了する前にタイムアウト期間が過ぎたか、またはサーバーが応答していません。」

    Management Studioで同じSQLを実行させたところ40秒弱かかりました。

    調べてみると30秒後にエラーが発生していましたので「CommanTimeout」の既定値の30秒がネックになっていることが分かりました。

    SqlHelperでCommandTimeoutの設定方法が分かりませんのでご教授いただければと思います。

    尚、「Connect Timeout」も色々と変更しましたが30秒後にエラーが発生することに変わりはありませんでした。

     

    開発環境:VS2008 C#

    DB:SQL Server 2005 Express Edition

     

    2010年3月26日 10:26

回答

  • SQLHelper のソースコードを見たところ、SQLHelperはSqlCommand または CommandTimeout の値を受け取るメソッドやプロパティを持っていないので、CommandTimeout は設定できないと思います。

    Enterprise Library を使うのなら Enterprise Libarry 2.0 から追加された Database クラスを使うことをお勧めします。SQLHelper でなければいけない特別な理由があるなら別ですが…。


    なかむら(http://d.hatena.ne.jp/griefworker)
    2010年3月29日 6:29

すべての返信


  • goodspeed2010 さんに返信
    > SqlHelperでCommandTimeoutの設定方法が分かりませんのでご教授いただけ
    > ればと思います。

    SqlHelper というのは
    Download details: Enterprise Library
    http://www.microsoft.com/downloads/details.aspx?FamilyId=A7D2A109-660E-444E-945A-6B32AF1581B3&displaylang=en
    ここでダウンロードできるものでしょうか。

    cmd.CommandTimeout = ...
    を追加すると善いのではないでしょうか。
    2010年3月28日 8:43
  • SqlHelper というのは
    Download details: Enterprise Library
    http://www.microsoft.com/downloads/details.aspx?FamilyId=A7D2A109-660E-444E-945A-6B32AF1581B3&displaylang=en
    ここでダウンロードできるものでしょうか。

    cmd.CommandTimeout = ...
    を追加すると善いのではないでしょうか。

    Data Access Application Blockのコンポーネントの一つです。

    sqlcommandは通常使用しないのでコマンドタイムアウトの設定をどこで行えば分かりませんしたので質問した次第であります。

     

     

     

    2010年3月29日 0:25
  • SQLHelper のソースコードを見たところ、SQLHelperはSqlCommand または CommandTimeout の値を受け取るメソッドやプロパティを持っていないので、CommandTimeout は設定できないと思います。

    Enterprise Library を使うのなら Enterprise Libarry 2.0 から追加された Database クラスを使うことをお勧めします。SQLHelper でなければいけない特別な理由があるなら別ですが…。


    なかむら(http://d.hatena.ne.jp/griefworker)
    2010年3月29日 6:29

  • なかむら さんに返信

    > CommandTimeout は設定できないと思います。
    SQLHelper のソースコードを変更するのはまずいですかね。
    私は考えが甘かったかもしれません。
    2010年3月29日 9:24
  • 特別にSqlHelperをいけない理由はないのですが、SqlHelperベースで開発していることもあり延長線上で可能かどうか今回質問させていただいた次第であります。

    皆様色々とご教授いただきありがとうございました。

    2010年3月29日 11:12