保持一个ODBC连接还是每次使用时连接/释放,是一个常见的设计问题。下面是两种解决方法的代码示例:
import pyodbc
# 建立连接
conn = pyodbc.connect('DSN=my_DSN;UID=my_UID;PWD=my_PWD')
def execute_query(query):
# 创建游标
cursor = conn.cursor()
try:
# 执行查询
cursor.execute(query)
# 提交事务
conn.commit()
# 获取结果
results = cursor.fetchall()
# 关闭游标
cursor.close()
return results
except Exception as e:
print("查询失败:", str(e))
# 回滚事务
conn.rollback()
# 使用连接执行查询
result1 = execute_query("SELECT * FROM table1")
result2 = execute_query("SELECT * FROM table2")
# 关闭连接
conn.close()
import pyodbc
def execute_query(query):
# 建立连接
conn = pyodbc.connect('DSN=my_DSN;UID=my_UID;PWD=my_PWD')
# 创建游标
cursor = conn.cursor()
try:
# 执行查询
cursor.execute(query)
# 提交事务
conn.commit()
# 获取结果
results = cursor.fetchall()
# 关闭游标
cursor.close()
# 关闭连接
conn.close()
return results
except Exception as e:
print("查询失败:", str(e))
# 回滚事务
conn.rollback()
# 使用连接执行查询
result1 = execute_query("SELECT * FROM table1")
result2 = execute_query("SELECT * FROM table2")
这两种方法都有各自的优缺点。保持一个ODBC连接可以减少连接/断开的开销,但可能会导致连接的长时间空闲和资源浪费。每次使用时连接/释放可以确保连接只在需要时打开,但可能会增加连接/断开的开销。根据具体需求和性能要求,选择适合的方法。