私はデータベース作業に重点を置いて毎日Pythonを使用します。私の標準のスタートpyodbc使用Python pyodbc cursor対データベースカーソル
は
connection_hostname = pyodbc.connect('connection_string')
cursor_hostname = connection_hostname.cursor()
command_hostname = 'select * from everything_forever;'
cursor_hostname.execute('command_hostname')
のようなものであると私は新しいカーソルを作成するのではなく、別のクエリのためのカーソルを再利用する必要がある場合、私はそうのような最初のクエリから結果セットを保存することができます:
results_from_query = cursor_hostname.fetchall()
その後に移動してください。
このアプローチはこれまでのところうまくいきました。
最近、仕事を変更しました。私は、上記の手法を実証したときにGUIを使用してDBを使用する新しい同僚の一部がパニックに陥り始めました。それを設定したのはカーソルキーワードでした。私はカーソルがセット理論にはないロジックを示し、ホストを低/ゼロレベルの並列化、RBARタイプの操作にする傾向があるため、カーソルはDBでノー・ノーであると理解していますが、上記の宣言は、SQL Serverのエンジニアリングと管理の帽子が置かれているときに考えるカーソルと同じです。
誰かが、これらのODBCカーソルとSQL Serverタイプのカーソルの違いについて説明できますか(私はそれらが異なっているとします)。
私が間違っている場合は、教えてくださいと私はより効率的に私のDBとのインターフェイスを教えてください。
なぜあなたはちょうど
connection_hostname.execute(command_hostname)
のような接続から直接実行カント、彼らがそうであるように、私はODBCカーソル構造を持つように感じるが、接続コストと、そのようなを減らすために、同じ接続を介して複数のカーソルを許すとは何かを持っています。ベースオフですか?