Python数据库连接

时间:2011-03-17 11:31:52

标签: python

在python中可以在下面的代码中添加连接超时,如果可能的话请帮助我

connectionString = "Provider=SQLOLEDB.1;Data Source="+options.server+";Initial Catalog="+options.database+";Integrated Security=SSPI" 
Connection = win32com.client.Dispatch('ADODB.Recordset')
Connection.ActiveConnection = connectionString
Connection.ActiveConnection.CommandTimeout = 3600

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

我认为您必须积极创建(并打开)连接:

conn = win32com.client.Dispatch('ADODB.Connection')
conn.CommandTimeout = 3600
conn.Open(connection_string)

然后你可以做类似的事情:

rs = win32com.client.Dispatch('ADODB.RecordSet')
rs.Open(qry, conn)

(我猜你也可以设置记录集的ActiveConnectionCommandText等等然后执行,但我一直认为Open()是更简单的方法,而且我的知识至少说api是生锈的......)

就个人而言,我发现使用遵循标准Python db api的模块更容易,例如adodbapi(包含在你已经使用的pywin32中),它也使用COM api,但需要处理“引擎盖下”,或pyodbc

adodbapi的例子:

conn = adodbapi.connect(conn_string, timeout=3600)
cur = conn.cursor()
cur.execute(qry)

最后一个提示:看一下sqlalchemy,这会让事情变得更容易(即使你没有使用像ORM这样的其他东西)