VB6 mySQL更新问题

标签 vb6 mysql

大家好,我在尝试使用 VB6 更新 mySQL 5 数据库中的记录时遇到了一个奇怪的问题。

这是我登录时的代码:

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 时,它找到记录 但无法更新它,因为 rst!clockout 不在询问!!!!但是当我把它放回查询中代替时钟输入时,它给了我 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';

最佳答案

我相信您只需要在原始查询中添加 clockout,但不应替换 clockin。在到达注销部分之前,您不必对 clockout 执行任何操作,但它确实需要从一开始就在查询中。

编辑:根据您在评论中给出的错误,听起来问题出在数据库中 clockout 的现有值上。我认为 0000-00-00 00:00:00 可能是问题的根源;尝试使用其他日期,或改用 NULL

http://forums.mysql.com/read.php?37,49727,54030#msg-54030

关于VB6 mySQL更新问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3385624/

相关文章:

vb6 - 有 Visual Basic 6 反编译器吗?

delphi - InStrB VB6 到 Delphi

用于导入 .dll 的 C# 包装器, "Attempted to read or write protected memory"

php - 现有网站需要多个用户访问相同的数据

mysql - 每个派生表都必须有自己的别名 mysql 错误信息

VB6 集合删除不会触发 Class_Terminate

vb6 - VB6中Print的一个奇怪案例

mysql - 如何将此使用 "EXCEPT"的 MSSQL 查询转换为 MySQL?

java - JPA/Spring 从 2 个 MySQL 表返回 JSON 作为嵌套对象

MySQL条件查询