0

所以我打算根据某些情况删除、更新或插入一个元组,但我无法让它工作。

首先,我通过检查以下项目来查看我是否有任何员工在项目编号上具有特定的 ESSN:

count = cursor2.execute("SELECT Distinct ESSN FROM Works_On WHERE ESSN = ? AND Pno = ?", (SSN, ProjectNumber)).rowcount

如果选择没有找到,或者不确定找到了多少元组,我查找的应该返回 -1。在我的情况下,它返回 0。

但是,当我执行这些 if - 语句时:

if((ChangeToHours==0) and (count != -1)):

    print "0"

    cursor2.execute("Delete FROM Works_On WHERE ESSN = ? AND Pno = ?", SSN, ProjectNumber) 

    print "Removed %s from project %s" %SSN, ProjectNumber


if((ChangeToHours>0) and (ChangeToHours<=40) and (count != -1)):

    print "!= -1"

    cursor2.execute("Update Hours SET Hours= ? WHERE ESSN=? AND Pno =?", ChangeToHours, SSN, 
ProjectNumber)

    print "Number of hours which employee %s works on project %s successfully changed to %d", SSN, ProjectNunmber,ChangeToHours

使用一些 SSN 和项目 Number 和 ChangeToHours = 13 作为输入,我应该进入后一个“如果”,但我进入第一个。另外,我的代码没有做任何事情,通过它打印 0,我可以看到。至少它不会打印它应该做的“已删除...”文本。

运行此代码时,我没有收到任何错误。

有人知道吗?

问候, Cenderze

4

1 回答 1

0

我自己解决了这个问题。

由于这是我第一次使用 Python 进行实验,我想我忽略了基础知识。ChangedToHours 没有制成浮点数或任何其他数据类型,这当然会导致这些比较出现问题。

所以,令人尴尬的修复,但可能对其他人有用!

问候 Cenderze

于 2013-08-08T13:21:45.430 回答