[解決済み] pyodbc.connect のタイムアウト引数は、SQL Server への呼び出しでは無視されます。
2022-02-10 15:12:58
質問
LinuxでFreeTDSとpyodbcを使用してSQL Server 2005に接続しています。接続のタイムアウト引数がクエリによって守られないことに気づきました。
以下のように実行すると、cursor.executeの両方の呼び出しの後にタイムアウトエラーが発生すると思われます。
import pyodbc
import time
connString = 'SERVER=dbserver;PORT=1433;DATABASE=db;UID=dbuser;PWD=dbpwd;' + \
'DRIVER=FreeTDS'
cnxn = pyodbc.connect(connString , timeout=3)
cursor = cnxn.cursor()
t1 = time.time()
cursor.execute("SELECT MAX(Qty) FROM big_table WHERE ID<10000005")
print cursor.fetchone()
t2 = time.time()
print t2-t1
cursor.execute("WAITFOR DELAY '00:00:30'")
print 'OK'
その代わりに、このような出力が得られます。最初のデータベースクエリに7.5秒以上、2回目の呼び出しに30秒かかっており、タイムアウトが発生していないことを示しています。
(808432.0, )
7.56196093559
OK
pyodbcとSQL Serverを使用してクエリのタイムアウトを強制する良い方法はありますか?
どのように解決するのですか?
参照 pyodbc接続 Connectionクラスの変数(これはクエリのタイムアウトを設定します)とpyodbc.connectのキーワードパラメータ(これは実際の接続プロセスのためのものです)の2つの別々のタイムアウトパラメータが存在します。このことから、あなたのコードでは、クエリではなく、接続プロセスのタイムアウトを設定していることになります。
関連
-
opencvとpillowを用いた顔認証システム(デモあり)
-
ピローによる動的キャプチャ認識のためのPythonサンプルコード
-
pythonを使ったオフィス自動化コード例
-
Python jiabaライブラリの使用方法について説明
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
[解決済み】numpyの配列連結。"ValueError:すべての入力配列は同じ次元数でなければならない"
-
[解決済み】Python - "ValueError: not enough values to unpack (expected 2, got 1)" の修正方法 [閉店].
-
[解決済み] SQL ServerでJOINを使用してUPDATE文を実行するにはどうすればよいですか?
-
[解決済み] SQL Server にテーブルが存在するかどうかを確認する
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonコンテナのための組み込み汎用関数操作
-
Pythonコードの可読性を向上させるツール「pycodestyle」の使い方を詳しく解説します
-
Pythonショートビデオクローラーチュートリアル
-
Pythonの@decoratorsについてまとめてみました。
-
[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
[解決済み】TypeErrorの修正方法。Unicodeオブジェクトは、ハッシュ化する前にエンコードする必要がある?
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み】csv.Error:イテレータはバイトではなく文字列を返すべき
-
[解決済み】Django: ImproperlyConfigured: SECRET_KEY 設定は空であってはならない
-
[解決済み】Flask ImportError: Flask という名前のモジュールがない