python数据库操作(DB API2)

python数据库操作(DB API2)

curs.execute("select ....")

每次查询后需要执行close(),再重新curs = conn.cursor()

为什么不能直接查询完我不检索完所有的结果就直接重新execute呢?它不能自动重新初始化curs吗?这样很麻烦。

大家的感觉呢?


QUOTE:
原帖由 THEBEST 于 2008-11-5 14:02 发表

每次查询后需要执行close(),再重新curs = conn.cursor()

大 ...

要这样么?
try:
    import pyodbc as odbc
except ImportError,e:
    pass
connstring = "DSN=timms;uid=dbm;pwd=dbm001"
conn = odbc.connect(connstring)
cur = conn.cursor()
cur.execute(" select *  from twms_item")
for c in cur:
    print c
cur.execute("select * from twms_client")
for c in cur:
    print c
cur.close()
conn.close()

我都是这样用
关键是你是用for c in cur来遍历完了curs的结果集啊,如果我只是fetchone就够了,接下来用curs.execute就会出错了。
所以需要重新执行前close掉,再重新获取curs。这样太麻烦了。
try:
    import pyodbc as odbc
except ImportError,e:
    pass
connstring = "DSN=timms;uid=dbm;pwd=dbm001"
conn = odbc.connect(connstring)
cur = conn.cursor()
cur.execute(" select *  from twms_item")
cur.execute("select * from twms_client")
for c in cur:
    print c
cur.close()
conn.close()
这样也没问题啊
try:
    import pyodbc as odbc
except ImportError,e:
    pass
connstring = "DSN=timms;uid=dbm;pwd=dbm001"
conn = odbc.connect(connstring)
cur = conn.cursor()
cur.execute(" select *  from twms_item")
a=cur.fetchone()
print a
cur.execute("select * from twms_client")
for c in cur:
    print c
cur.close()
conn.close()
这样也没问题啊