Python中While Not recordset.EOF不执行.MoveNext

0 投票
1 回答
1396 浏览
提问于 2025-04-17 07:41

我其实不太明白为什么会发生这种情况。也许换个角度看会有帮助。

在一个Access数据库的表里,比如C:\dbase.mdb,我有一个叫做tProcedureGroups的表,里面有两个字段,分别是ID和描述。

ID  Description  
1   DIAGNOSTIC  
2   PREVENTATIVE  
3   RESTORATIVE  

所以我的记录集应该比无限大要多得多…… ID "\t" + 描述 + "\n"。这是我的代码…… 这肯定也发生在你们这些Python高手身上过!

非常感谢大家的帮助,这个网站上的每个人都超级热心。


import win32com.client

def Procedures(listed):
    DB = r"C:\dbase.mdb"
    engine = win32com.client.Dispatch("DAO.DBEngine.36")
    db = engine.OpenDatabase(DB)
    sql = "select * from [tProcedureGroups]"
    access = db.OpenRecordset(sql)
    while not access.EOF:
        for i in listed:
            print i + '\t' + str(access.Fields(i).value) + '\n'
        access.MoveNext

fields = ["ID", "Description"]
get_procs = Procedures(fields)

1 个回答

0

在Python中,你需要用括号()来明确地调用方法。

所以要把:

access.MoveNext

改成:

access.MoveNext()

撰写回答