• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SqlCommandBuilder 使用時のサーバー日付について)

SqlCommandBuilder 使用時のサーバー日付について

このQ&Aのポイント
  • WindowsXPproで.NET Framework 1.1、VB.NET、ASP.NET、SQLServer2000を使用してWEBアプリの開発を行っています。更新画面から更新を行う際にSqlCommandBuilderを使用し、SQL文の自動生成とSqlDataAdapter.Update(DataSet)を使用して更新を実行しています。しかし、更新先のテーブルに登録日付列があり、自動生成されたSQL文ではSQLServerのGETDATE()関数が使用できません。自動生成SQL文でGETDATE()関数を使用する方法はありますか?
  • 質問者はWindowsXPpro上で.NET Framework 1.1、VB.NET、ASP.NET、SQLServer2000を使用してWEBアプリの開発を行っています。更新画面からデータの更新を行う際にSqlCommandBuilderを使用して自動生成されたSQL文を使用していますが、更新先のテーブルに登録日付列があり、自動生成されたSQL文ではSQLServerのGETDATE()関数を使用できません。質問者は自動生成のSQL文でGETDATE()関数を使用する方法を知りたいと思っています。
  • 質問者はWindowsXPpro上で.NET Framework 1.1、VB.NET、ASP.NET、SQLServer2000を使用してWEBアプリの開発を行っています。更新画面からデータの更新を行う際にSqlCommandBuilderを使用して自動生成されたSQL文を使用していますが、更新先のテーブルに登録日付列があり、自動生成されたSQL文ではSQLServerのGETDATE()関数を使用することができません。質問者は自動生成のSQL文でGETDATE()関数を使用する方法についてアドバイスを求めています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

#1 です。 Visual Basic 2005 と SQL Server 2005 の組み合わせで Windows アプリケーションですが。 SQL Server 側 テーブル名:testTable 列1:testID(PK, int, IDENTITY, NULL許可なし) 列2:testName(nvarchar(50), NULL許可なし) 列3:testDate(datetime, NULL許可なし) VB 側 フォーム上に sqlDataAdapter を配置してウィザードで各種コマンドを自動生成後、プロパティ ウィンドウで UpdateCommand の CommandText が UPDATE testTable SET testName = @testName, testDate = @testDate WHERE (testID = @Original_testID) AND (testName = @Original_testName) AND (testDate = @Original_testDate) だったのを UPDATE testTable SET testName = @testName, testDate = GETDATE() WHERE (testID = @Original_testID) AND (testName = @Original_testName) AND (testDate = @Original_testDate) に変更。 最後に「パラメータを更新する」みたいなダイアログが出るので [OK] をクリック。 これで CommandButton1 の Clicke イベントで Me.SqlDataAdapter1.Update(Me.DataSet11) で更新できました。 VB.NET (2002?) と SQL Server 2000 の組み合わせでも同じかと。 ASP.NET 用の書き方へは適宜変更しておいてください。

log4j
質問者

お礼

ありがとうございます。 結局いろいろあってSQLを自分で書きました。

その他の回答 (1)

回答No.1

SQL Server の GETDATE() 関数を使わなくちゃダメな理由があるのでしょうか? どうしてもって言うなら自動作成しないで SQL Server でストアドプロシージャ化しちゃうとか。 私だったら日付の部分もパラメータ化しちゃって UpdateCommand に渡しちゃいますね。 どのみち日付を生成するのはクライアントじゃなくて IIS が稼動しているサーバだし。 それに、よっぽど大規模じゃないかぎり IIS と SQL Server は同じサーバで稼動させるでしょうから日付のズレは発生しない。 2つのサーバが別々だとしても、日付を生成するのは IIS 側にしちゃえば問題なし。

log4j
質問者

補足

>SQL Server の GETDATE() 関数を使わなくちゃダメな理由があるのでしょうか? >IIS と SQL Server は同じサーバで稼動させるでしょうから 基幹サーバーとWEBアプリサーバー(2台)が全て別のマシンでさらにDBサーバーを同時に見に行く為、時刻の同期を取る為です。 >自動作成しないで すいません自動作成を行った場合の方法が知りたかったので... >日付を生成するのは IIS 側にしちゃえば 説明不足でした。 私が担当しているのはWEBアプリで他の協力会社が基幹システム(VB6)を担当しています。かつそれぞれ全てが別のマシンです。

関連するQ&A