1

ADOを使用してVB6アプリケーションからデータベースに多数のレコードを書き戻そうとしています。レコードはデータベースからに読み込まれ、ADODB.Recordsetその後更新されました。すべてのマシンが時間同期されているとは確信が持てないため、セット内の各レコードでデータベースサーバーの現在の日付と時刻を使用できるようにしたいと思います。CURRENT_TIMESTAMPデータベースに(または同様の)クエリを実行せずにこれを行う方法はありますか?Recordset理想的には、データベースサーバーでこれが機能するように、フィールド値を設定できる何らかのフラグを期待しています。

以下の私のプロトタイプコードの質問を参照してください(whileループ内)。

Dim oConn As ADODB.Connection
Dim oRs As ADODB.Recordset
Dim sSQL As String
Dim sColumnName1 As String: sColumnName1 = "UserNID"
Dim sColumnName2 As String: sColumnName2 = "Username"
Dim sColumnName3 As String: sColumnName3 = "LastLoginDTM"

' Open a connection.
Set oConn = New ADODB.Connection
oConn.Open 'my connection string was here

' Make a query over the connection.
sSQL = "SELECT TOP 10 " & sColumnName1 & ", " & sColumnName2 & ", " & sColumnName3 & " " & _
       "FROM theTable"

Set oRs = New ADODB.Recordset
oRs.CursorLocation = adUseClient
oRs.Open sSQL, oConn, adOpenStatic, adLockBatchOptimistic, adCmdText
oRs.MoveFirst

While Not oRs.EOF
    oRs.Fields(sColumnName3).Value = '-=-=-=-=-What do I put here???-=-=-=-=-
    oRs.MoveNext
Wend

' Close the connection.
oConn.Close
Set oConn = Nothing
4

1 に答える 1

1

TSQL GetDate() 関数を使用できます

Select を次のように変更します。

sSQL = "SELECT TOP 10 " & sColumnName1 & ", " & sColumnName2 & _ 
        ", " & sColumnName3 & ", GETDATE() AS ServerTimeStamp " & _
       "FROM theTable"

次に、コードは次のようになります。

While Not oRs.EOF
    oRs.Fields(sColumnName3).Value = oRS.Fields("ServerTimeStamp").Value
    oRs.MoveNext
Wend
于 2012-11-19T14:12:15.103 に答える