none
SqlDateTime のオーバーフロー RRS feed

  • 質問

  • 毎々お世話になっております。

    WindowsXP-Pro Ver.2002 SP2 上で
    Visual Studio 2005 Enterprise Edition でVB2005による開発を行っております。

    現在XML Webサービスを用いたリッチクライアント環境下で動作するアプリを開発しております。

    またWebサーバとDBサーバはWin7機で同居しており、LANで接続してあります。

    ちなみにDBはSQL Server2005 Developper Edition です。

    本日クライアントからXMLサービスを用いてDBへ

    select * from HOGEHOGE where FUGAGUGA = 1 and PIYOPIYO = 2
    ※ FUGAFUGA と PIYOPIYO はコンカチでインデックスキー(ユニーク)

    のような Query を投げたところ

    「SqlDataTime のオーバーフローです。1/1/1753 12:00:00 AM から 12/31/9999 11:59:59 PM までの間でなければなりません。」
    といったエラーが発生しました。

    Management Studio から上記 Query を叩いてみると、目的の行が正しく表示(出力)されます。

    行の中身で日付型を使用している列はすべて本日の日付が入っています。
    また時刻の格納に使用している日付型の列には 1900-01-01 00:58:50.627
    が入っており、これもオーバーフローするとは思えません。

    八方塞で悩んでいます。

    どなたか、助けてください。

    2011年8月17日 3:14

回答

  • どこでそのエラーが発生しているか特定できないのですか?

    たぶん、SQL Server 側の問題ではなくて、SQL Server からのデータを受けて VB.NET の
    コードでデータを処理している時にオーバーフローが発生したのでしょう。なので、デバ
    ッグすれば発生場所が分かると思います。

     

    2011年8月17日 5:18
  • Management Studio から上記 Query を叩いてみると、目的の行が正しく表示(出力)されます。

    次にブラウザからそのWebサービスを起動してみて、どのような値が取れているのか確認してみて下さい。
    また、SQL ServerのDateTime、あるいはSmallDateTime型から値を取得しているのであれば、SqlDataTime型でオーバーフローすることはありませんが、Webサービス経由ですので、プロキシクラス等が不適切なのかもしれません。VS2005でWeb参照の追加をやり直してみると良いかもしれません。

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    2011年8月17日 5:44

すべての返信

  • どこでそのエラーが発生しているか特定できないのですか?

    たぶん、SQL Server 側の問題ではなくて、SQL Server からのデータを受けて VB.NET の
    コードでデータを処理している時にオーバーフローが発生したのでしょう。なので、デバ
    ッグすれば発生場所が分かると思います。

     

    2011年8月17日 5:18
  • Management Studio から上記 Query を叩いてみると、目的の行が正しく表示(出力)されます。

    次にブラウザからそのWebサービスを起動してみて、どのような値が取れているのか確認してみて下さい。
    また、SQL ServerのDateTime、あるいはSmallDateTime型から値を取得しているのであれば、SqlDataTime型でオーバーフローすることはありませんが、Webサービス経由ですので、プロキシクラス等が不適切なのかもしれません。VS2005でWeb参照の追加をやり直してみると良いかもしれません。

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    2011年8月17日 5:44