現象
たとえば次のようなシナリオを考えてみます。
Microsoft SQL Server JDBC Driver バージョン 3.0 および Java Runtime Environment バージョン 1.7 (JRE 1.7) を使用して SQL Server データベースに接続する Java アプリケーションがあります。
アプリケーションでは、次のいずれかの関数を使用してデータベースから日付を取得します。
- getDate()
- getTimeStamp()
- getDateTimeOffset()
SQL Server データベースのデータ型は、DATE、DATETIME2、または DATETIMEOFFSET です。
このシナリオでは、関数は誤った日付値を返します。
メモ
この問題は、関数によって返される日付値がグレゴリオ暦の 1582 年より新しい場合にのみ発生します。
アプリケーションで次のいずれかのコンポーネントの組み合わせを使用する場合、この問題は発生しません。
- Microsoft SQL Server JDBC Driver バージョン 3.0 および JRE 1.5 または JRE 1.6
- Microsoft SQL Server JDBC Driver バージョン 2.0 および JRE 1.7
原因
「現象」に記載されている関数の動作は、Java カレンダー API によって異なります。 これらの API の動作が変更されたため、Microsoft SQL Server JDBC Driver バージョン 3.0 は正しくない値を返します。
解決策
Microsoft SQL Server JDBC Driver バージョン 3.0 が変更され、「現象」に記載されている関数が JRE のバージョンに関係なく正しい値を返すようになりました。 Microsoft JDBC Driver 4.0 for SQL Server にもこの変更が含まれます。
修正プログラムの情報
マイクロソフトでは、この問題を修正する修正プログラムを提供しています。 ただし、この修正プログラムは、ここで説明する問題のみを修正することを目的としたものです。 この修正プログラムは、ここで説明する問題が発生しているシステムにのみ適用してください。 この修正プログラムは、今後さらにテストを行う場合があります。 したがって、この問題で深刻な影響を受けていない場合は、この修正プログラムが含まれる次のソフトウェア更新プログラムがリリースされるまで待つことを推奨します。
修正プログラムをダウンロードできる場合は、このサポート技術情報の資料の上部に「修正プログラムのダウンロード」セクションがあります。 このセクションが表示されていない場合は、Microsoft カスタマー サービス & サポート にお問い合わせのうえ、修正プログラムを入手してください。
注: 別の問題が発生した場合、またはトラブルシューティングが必要な場合には、別のサービス リクエストを作成することが必要になる場合があります。 特定の修正プログラムの対象とならない追加の質問および問題については、通常のサポート料金が適用されます。 マイクロソフト カスタマー サービス サポートの電話番号一覧を参照、または別のサービス リクエストを作成するには、次のマイクロソフト Web サイトを参照してください。
/contactus/?ws=support 注: [修正プログラムのダウンロードが利用可能] フォームには、修正プログラムを使用できる言語が表示されます。 使用している言語が表示されない場合は、その言語の修正プログラムが存在しないことになります。
インストール情報
この修正プログラムをインストールするには、次の手順を実行します。
Windows
- この修正プログラムの license.txt ファイルを読みます。
- この使用許諾契約に同意するには、Microsoft SQL Server JDBC Driver バージョン 3.0 をダウンロードして使用します。
- sqljdbc_<version>_enu.exe ファイルをダウンロードして一時ディレクトリに保存します。
- sqljdbc_<version>_enu.exe ファイルを実行します。
- メッセージが表示されたら、インストール ディレクトリを入力します。 次の既定のディレクトリを使用して、圧縮 (.zip) ファイルを解凍することをお勧めします。
%ProgramFiles%\Microsoft SQLServer JDBC Driver 3.0 - パッケージを開梱したら、InstallationDirectory\Microsoft SQL Server JDBC Driver 3.0 \sqljdbc_<version>\<language>\help\default.htm を開いて JDBC ヘルプ システムを開きます。 JDBC ヘルプが Web ブラウザに表示されます。
UNIX
- この修正プログラムの license.txt ファイルを読みます。
- この使用許諾契約に同意するには、Microsoft SQL Server JDBC Driver バージョン 3.0 をダウンロードして使用します。
- sqljdbc_<version>_enu.tar.gz ファイルをダウンロードして一時ディレクトリに保存します。
- 圧縮された .gz ファイルを展開するには、ファイルを保存したディレクトリを見つけて、次のように入力します。
gzip -d sqljdbc_<バージョン>_enu.tar.gz - .tar ファイルを展開するには、ドライバーをインストールするディレクトリに移動し、次のように入力します。
tar -xf sqljdbc_<バージョン>_enu.tar - パッケージを開梱したら、InstallationDirectory\Microsoft SQL Server JDBC Driver 3.0 \sqljdbc_<version>\<language>\help\default.htm を開いて JDBC ヘルプ システムを開きます。 JDBC ヘルプが Web ブラウザに表示されます。
修正プログラムの置き換えに関する情報
この修正プログラムには、Microsoft SQL Server JDBC Driver バージョン 3.0 用の以前のすべての修正プログラムが含まれています。
ファイル情報
修正プログラム (グローバル版) のファイル属性は次表のとおりです。ただし、これより新しい修正プログラムがリリースされている可能性もあります。 これらのファイルの日付と時刻は世界協定時 (UTC) で記載されています。 ファイル情報に表示される時刻は、ローカル時刻に変換されています。 UTC とローカル時刻との時差を確認するには、[コントロール パネル] の [日付と時刻] の [タイム ゾーン] タブを使用してください。
| ファイル名 | ファイルのバージョン | ファイル サイズ | 日付 | 時刻 | プラットフォーム |
|---|---|---|---|---|---|
| Sqljdbc.jar | 該当しない | 518,294 | 2011 年 12 月 8 日 | 16:05 | 該当しない |
| Sqljdbc4.jar | 該当しない | 537,566 | 2011 年 12 月 8 日 | 16:05 | 該当しない |
| Xa_install.sql | 該当しない | 37,12 | 2011 年 12 月 8 日 | 16:05 | 該当しない |
| Sqljdbc_xa.dll | 3.0.1301.203 | 253,744 | 2011 年 12 月 8 日 | 16:05 | IA-64 |
| Sqljdbc_xa.dll | 3.0.1301.203 | 131,376 | 2011 年 12 月 8 日 | 16:05 | x64 |
| Sqljdbc_xa.dll | 3.0.1301.203 | 102,192 | 2011 年 12 月 8 日 | 16:05 | x86 |
| Sqljdbc_auth.dll | 3.0.1301.203 | 175,408 | 2011 年 12 月 8 日 | 16:05 | IA-64 |
| Sqljdbc_auth.dll | 3.0.1301.203 | 87,344 | 2011 年 12 月 8 日 | 16:05 | x64 |
| Sqljdbc_auth.dll | 3.0.1301.203 | 69,936 | 2011 年 12 月 8 日 | 16:05 | x86 |
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。