Привет всем, у меня странная проблема с попыткой обновить запись в моей базе данных MySQL 5 с использованием VB6.
Это мой код при входе в систему:
connDB
Set rst = New ADODB.Recordset
strSQL = "SELECT id, fName, lName, theCode, theDate, clockin FROM clockinout WHERE theCode = '" & theUsersUniqueID & "' AND theDate = '" & Format(Now, "YYYY/MM/DD") & "'"
rst.Open strSQL, conn, adOpenDynamic, adLockOptimistic
If rst.EOF Then
rst.AddNew
rst!FName = userFNmae
rst!LName = userLName
rst!theCode = theUsersUniqueID
rst!theDate = Format(Now, "YYYY/MM/DD")
rst!clockin = Format(Now, "YYYY/MM/DD HH:MM:SS")
Else
rst!clockin = Format(Now, "YYYY/MM/DD HH:MM:SS")
End If
rst.Update
rst.Close
Set rst = Nothing
conn.Close
Это прекрасно работает без каких-либо ошибок.Тем не менее, когда я выхожу из системы с помощью этого кода:
connDB
Set rst = New ADODB.Recordset
strSQL = "SELECT id, fName, lName, theCode, theDate, clockout FROM clockinout WHERE theCode = '" & theUsersUniqueID & "' AND theDate = '" & Format(Now, "YYYY/MM/DD") & "'"
rst.Open strSQL, conn, adOpenDynamic, adLockOptimistic
If Not rst.EOF Then
rst!clockout = Format(Now, "YYYY/MM/DD HH:MM:SS")
End If
rst.Update
rst.Close
Set rst = Nothing
conn.Close
Выдается сообщение об ошибке, указывающее его EOF, так как он не может найти запись по какой-то причине ... Он там, потому что он работал на первомавторизоваться.Странно, когда я вынимаю clockout и заменяю его на clockin it НАХОДИТ ЗАПИСЬ , но не может обновить его, так как rst! Clockout не было в запросе !!!!Но когда я do помещаю его обратно в запрос вместо clockin, это дает мне ошибку EOF ....
Моя запись в базе данных выглядит так:
ID | fName | lName | theCode | theDate | clockin | clockout |
26 Bob Barker 5810 2010/08/02 2010-08-02 02:44:28 0000-00-00 00:00:00
Любая помощь была бы великолепна, так как я понятия не имею, почему это простое обновление доставляет мне такие трудные времена ..
Дэвид
Я также проверил запрос вMySQL браузер запросов и все работает нормально ...
SELECT id, fName, lName, theCode, theDate, clockin, clockout FROM clockinout WHERE theCode = '5810' AND theDate = '2010/08/02«;