2011-03-17 5 views
0

En Python est-il possible d'ajouter le délai de connexion dans le code ci-dessous, si possible, alors s'il vous plaît me aiderbase de données Python connexion

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 

Répondre

0

Je pense que vous devez activement créer (et ouvrir) la connexion:

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

et vous pouvez faire des choses comme:

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

(je suppose que vous pouvez également définir la ActiveConnection et CommandText etc ... du jeu d'enregistrements, puis exécuter, mais j'ai toujours pensé Open() était la façon plus facile et ma connaissance du api est rouillé pour dire le moins. Personnellement, je trouve plus facile d'utiliser un module qui suit le standard Python db api, comme adodbapi (inclus avec pywin32, que vous utilisez déjà), qui utilise aussi l'API COM, mais prend en charge que "sous le capot", ou pyodbc.

Exemple avec adodbapi:

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

Et un dernier conseil: jeter un oeil à sqlalchemy qui rend les choses encore plus facile (même si vous ne l'utilisez les autres trucs comme le ORM)

Questions connexes