2011-12-30 34 views
1

私はアクセスできるMSSQLサーバーと対話するためにいくつかのpythonを書いています。私が現在持っている問題は、私のトランザクションステートメントの1つがデフォルト(30秒)で設定されているタイムアウト期間を過ぎていないということです。SqlClient接続タイムアウト

接続文字列のコマンドタイムアウトを0に変更しようとしましたが、これは問題ではありませんが、コマンドタイムアウトキーワードはサポートされていないと言われています。ここで

は私の接続文字列である:ここで

conn_string='data source=localhost;initial_catalog=research;trusted_connection=True;Connection Timeout=0;Command Timeout=0' 

は、この接続文字列を使用しているとき、私が得るコンソールメッセージです:

Value Error: Keyword not supported: 'command timeout' 

私はスペースを入れず、スペースでコマンドタイムアウトを試してみましたが、この問題を解決しようとしているうちに私が現在読んでいたスレッドをサポートしているかどうかによって、大文字の有無にかかわらず。

接続文字列のコマンドタイムアウトを変更しても動作していないようである場合、タイムアウト値を30秒以上に設定する方法については、ここで知っていますか?

答えて

1

接続またはコマンドオブジェクト自体にコマンドタイムアウトを指定します。接続には文字列ではなく、タイムアウトを指定します。 ADO接続オブジェクトについては、this resourceを参照してください。

+0

私が指定したいと思う唯一のことは、指定されたSqlConnectionオブジェクト[ここ](http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.aspx )はCommandTimeoutを持っていないと思っていました(あなたのリソースが示唆しているように)。 私はSqlCommandオブジェクトで指定されているはずです。[here](http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.aspx) ありがとうございました正しい方向に。 – Stodds

1

このサイトにはall options you can set in a connection stringが記載されていますが、コマンドタイムアウトはその1つではありません。

あなたがWindows上のPythonを使用していて、ADOを使用している場合は、接続オブジェクトにコマンドタイムアウトを設定することができます。

conn = Dispatch('ADODB.Connection') 
conn.ConnectionString = "Provider=SQLOLEDB.1;Data Source=localhost;" + \ 
    "uid=my_user_name;pwd=my_password;database=my_database_name" 
conn.Open() 
conn.CommandTimeout = 60 
1

また、あなたはこのような何か行うことができます。

import adodbapi 
adodbapi.connect(connectionString, 100) 

2番目のパラメータはタイムアウトです。

関連する問題