Wenn Nicht RS.EOF und Nicht RS.BOF dann geschrieben für ADODB und aktuelle DAO-format

Momentan habe ich Verwendung, Wenn Nicht RS.EOF und Nicht RS.BOF ist ein DAO-Recordset, aber ich kann nicht DAO in die neue SQL-back-End-Umgebung. Code ist wie folgt:

Function CloseSession()
'This closes the open session

Dim Rs As DAO.Recordset
Set Rs = CurrentDb.OpenRecordset("SELECT * FROM Tbl_LoginSessions WHERE fldLoginKey =" & LngLoginId)

If Not Rs.EOF And Not Rs.BOF Then
    Rs.Edit
    Rs.Fields("fldLogoutEvent").Value = Now()
    Rs.Update
    Rs.Close
End If

Set Rs = CurrentDb.OpenRecordset("SELECT * FROM [Tbl_Users] WHERE PKUserID =" & LngUserID)

'Flag user as being logged out
    If Not Rs.EOF And Not Rs.BOF Then
        Rs.Edit
        Rs.Fields("fldLoggedIn").Value = 0
        Rs.Fields("FldComputer").Value = ""
        Rs.Update
        Rs.Close
    End If
Set Rs = Nothing
End Function

Im wesentlichen habe ich begonnen, den code zu schreiben in der ADODB. Jedoch, bei der recherche, Wenn Nicht RS.EOF-Thema auf dem internet für ADODB, ich war völlig erfolglos. Hat jemand das wissen über die Nutzung der RS.Und EOF RS.BOF, das könnte hilfreich sein, um mein Schicksal zu umschreiben?

Function CloseSession()

'/This closes the open session
'/Define the OLE DB connection string.
StrConnectionString = "DRIVER=SQL Server;SERVER=dbswd0027;UID=Mickey01;PWD=Mouse02;DATABASE=Regulatory;"

'/Instantiate the Connection object and open a database connection.
Set cnn = CreateObject("ADODB.Connection")
cnn.Open StrConnectionString

Dim strSQL1 As String
Dim strSQL2 As String
Dim StrLoginName As String
Dim StrComputerName As String

'/passing variables
StrComputerName = FindComputerName
strLoggedIn = "False"

'/Declaring what table you are passing the variables to
 strSQL1 = "Update tTbl_LoginSessions SET fldLogoutEvent = '" & Now() & "'" & _
 " WHERE fldLoginKey = " & LngLoginId

'/Declaring what table you are passing the variables to
 strSQL2 = "Update tTbl_LoginUsers SET fldLoggedIn = '" & strLoggedIn & "', fldComputer = '" & StrComputerName & "'" & _
 " WHERE intCPIIUserID = " & LngUserID

cnn.Execute strSQL1, , adCmdText + adExecuteNoRecords
cnn.Execute strSQL2, , adCmdText + adExecuteNoRecords
'/close connections and clean up
cnn.Close
Set cnn = Nothing

End Function
  • If Not Rs.EOF And Not Rs.BOF Then gilt auch für ADO (obwohl in der Regel nur die überprüfung EOF ist ausreichend)
  • SQL Server kann nicht akzeptieren, dass die Datum-Zeit-stirng von '" & Jetzt() & "', sollen Sie es konvertieren in format, zum Beispiel, 'yyyy-mm-ddThh:mm:ss'.
InformationsquelleAutor T-Rex | 2013-11-14
Schreibe einen Kommentar