問題タブ [python-db-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python Database API v2 > 反復中に実行されたクエリが結果を返さない場合、結果セットの反復は停止します
1 つのテーブルから多数のレコードを取得し、結果セットを反復処理し、返された行ごとに別のテーブルにクエリを実行するスクリプトで Python用のSnowflake コネクタ(Python データベース API v2 仕様のサポートを実装) を使用しています。結果が返される場合と返されない場合があります。
2 番目のクエリで結果が返されない場合、エラーがスローされなくても、最初のクエリで返された結果の繰り返しが停止します。
次のコードは、私が直面している問題を示しています...
例外がスローされた場合、エラーをキャプチャして次の結果に進むことで、このシナリオを処理できます。例外がスローされない場合、このシナリオをどのように処理しますか?
python - python3でnumpy整数型をsqliteに挿入する
Python 3でnumpy整数オブジェクトの値をデータベースに挿入する正しい方法は何ですか? Python 2.7 では、numpy の数値データ型が sqlite にきれいに挿入されますが、Python 3 では挿入されません。
np.float タイプは、2 と 3 の両方で問題なく動作するようです。
Python 2 では、numpy スカラー整数データ型はもはや int のインスタンスではなく、整数値の浮動小数点数を int に変換することさえあります。
これが、dbapi が numpy とシームレスに動作しなくなった理由ですか?
python - python DatabaseErrors を一般的にキャッチする
さまざまなデータベース エンジンに実装できるデータベース スキーマがあります (たとえば、pyodbc を使用して接続する MS Access データベースや、組み込みの sqlite3 モジュールを介して接続する SQLite データベースを考えてみましょう)。簡単な例)。
次のようなパラメータに基づいて適切なタイプのデータベース接続を返すファクトリ関数/メソッドを作成したいと思います。
これで、任意の接続タイプで動作するはずのクエリ コードがいくつかあります (スキーマは基礎となる DB エンジンに関係なく同一であるため) が、キャッチする必要がある例外をスローする可能性があります。
私が抱えている問題は、各 DB API 2.0 実装の DatabaseError クラスが共通の基本クラス (一般的すぎる例外を除く) を共有していないため、これらの例外を一般的にキャッチする方法がわからないことです。明らかに、次のようなことができます。
...ここでは、考えられるデータベース エンジンごとに明示的な catch ブロックを含めました。しかし、これは明らかにPythonicではないようです。
基礎となるさまざまな DB API 2.0 データベース実装から DatabaseErrors を一般的にキャッチするにはどうすればよいですか?
python - データベース接続を閉じるためにteardown_appcontextが必要なのはなぜですか?
フラスコのドキュメントによると、アプリのコンテキストが切断されたときにデータベース接続を閉じる必要があります。
しかし、アプリ コンテキストを破棄すると、データベース接続への (唯一の) 参照が削除されませんか (g.sqlite_db
消えるとg
消えるように)。これにより、接続が自動的に閉じられると思いました(dbドライバーが接続を閉じるためdel
)。接続を明示的に閉じることの利点は何ですか?
python - 複数の挿入/更新でコミットするときのPython DB-Api
db の単一の行を更新する関数があります。
conn.commit()
この関数を複数回 (数千回) 使用して、後で次のようにしても問題ありませんか。
または、 tocurr
の代わりに渡す必要がありますか?conn
update_one_row
私は知ってcurr.executemany()
いますが、明示的なループを好みます。性能差はありますか?
全体的に、カーソルの使用法といつコミットするかについてかなり迷っています。
python - ValueError: 操作パラメーターは str でなければなりません
Python 関数を使用していくつかのデータベース フィールドを SQLite DB に更新しようとしています。次のエラーが発生し続けます。
ValueError: 操作パラメーターは str でなければなりません
以下は私のコードです。sqlite db で複数の列を更新する方法を知りたいです。