問題タブ [pyodbc]

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.

0 投票する
2 に答える
2064 参照

python - Pythonを使用してMSSQLからuniqueidentifierフィールドを読み取る

pyodbc を使用して MSSQL データベースにアクセスしました。

MSSQL から uniqueidentifier フィールドを読み取るとき、私の MacOS では、udid フィールドの正しい値を出力できます (例: 4C444660-6003-13CE-CBD5-8478B3C9C984)。ただし、Linux CentOS で同じコードを実行すると、非常に奇妙な文字列が表示されます。 "???E??6??????c" のように、値の型は MacOS のような "str" ではなく "buffer" です。

その理由と、Linux で uidi の正しい値を取得するにはどうすればよいか説明していただけますか? ありがとう

0 投票する
1 に答える
2583 参照

python - SQLAlchemy の誤用によりメモリ リークが発生しますか?

私のプログラムは、数秒ごとにメガバイトを消費しています。私はPythonがガベージコレクションでcurorsを認識しないことを読んだので、私の使用に何か問題があり、どこかでpydbc何かsqlalchemyを閉じていないのではないかと感じていますか?

メタデータブロックまたはその一部を挿入ブロックに移動し、挿入ごとに接続を閉じる必要がありますか?

編集:
Q:それはすべて安定していますか? ここに画像の説明を入力

A: プロセスを吹き飛ばす Linux を数えた場合のみ :-) (グラフはメモリ使用量からバッファ/キャッシュを除外しています)

0 投票する
3 に答える
21109 参照

python - pyodbcおよびMSSQLServerとの1つの接続で複数のカーソルを使用できますか?

Python2.6でpyodbcを使用してMicrosoftSQLServer 2005に接続しています。接続を開き、いくつかのカーソルを作成します。

次に、最初のカーソルでクエリを実行します。

次に、2番目のカーソルでクエリを実行します。

...そしてエラーが発生します:「接続は別のhstmtの結果でビジーです。」

c1.fetchall()またはを実行した後、c1.close()c2を使用できます。

私の質問は、一度に1つしか使用できず、同じものをいつでも再利用できるのに、接続上に複数のカーソルを作成できるのはなぜですか?そして、次のように、別のクエリの結果の各行に対してクエリを実行する場合は、次のようになります。

同じデータベースへの複数の接続を実際に作成する必要がありますか?

0 投票する
1 に答える
2255 参照

python - Pythonを使用してMSSQLServerからzlib/gzip圧縮データを読み取る

Python2.6を使用してSQLServerからデータを読み取ります。DBの列がvarbinaryであるため、スタックしています。私はpyodbcを使用していますが、Pythonプログラムのデータ型は「バッファ」です。

現在、DBのこの列にはgzip圧縮テキストが格納されています。'buffer'データ型へのアクセス権が与えられた場合、Pythonからこれを解凍する方法を理解できません。

ヘルプ/ポインタをお願いします。

これが私がしていることです

前もって感謝します!

0 投票する
2 に答える
1715 参照

python - Snow Leopard での PyODBC - インストール エラー

Snow Leopard に PyODBC を正常にインストールした人はいますか?

以下のエラーが表示されます。(ここにもバグを提出しました) これを修正してインストールする方法はありますか?

これが私が得ている出力です:

バージョン: PyODBC 2.1.8、Mac 10.6.7、および Python 2.6.1

0 投票する
1 に答える
1618 参照

pyodbc - pyodbc での cx_freeze エラー

単純なプログラム名 pyodbcTest.py がある場合

cx_freeze を使用してコンパイルします。

そのプログラムを実行すると、次のエラーがスローされます。

何か案は?

0 投票する
6 に答える
18236 参照

sql-server - pyodbc-バルク挿入速度が非常に遅い

このテーブルで:

次のコードの実行には40秒かかります。

psycopg2の同等のコードは3秒しかかかりません。mssqlはpostgresqlよりもそれほど遅いとは思いません。pyodbcを使用するときにバルク挿入速度を改善する方法について何かアイデアはありますか?

編集:ghoerzの発見に続いていくつかのメモを追加する

pyodbcでは、のフローexecutemanyは次のとおりです。

  • プリペアドステートメント
  • パラメータの各セットのループ
    • パラメータのセットをバインドします
    • 実行する

ceODBCでは、のフローexecutemanyは次のとおりです。

  • プリペアドステートメント
  • すべてのパラメータをバインドする
  • 実行する
0 投票する
1 に答える
1801 参照

python - pyodbcを使用してOracleに接続するPythonは、Pythonインタープリターを強制終了することがあります

定期的にpyodbcを使用してOracleデータベースへの接続を作成すると、インタープリターが強制終了されます。

1/5の時間で、Pythonプロンプト(>>>)からdosプロンプト(C:)にドロップします。

なぜこれが起こるのか、またはそれを修正する方法についてのアイデアはありますか?

0 投票する
1 に答える
2160 参照

python - pymysql 対 pyodbc - pymysql は sloooooooooooow

MySQL を使用する単純なデータ分析プログラムを正しく動作させようとして問題が発生しました。

私の Windows 7 コンピューターでは pyodbc を使用しており、pyodbc を使用して MySQL に接続すると、プログラムは正常に動作します。Snow Leopard では、pyodbc を正しくインストールできなかったため、代わりに pymysql を使用しています...

最終的にpymysqlが動作するようになった後、実行速度が非常に遅くなります...

テストを行ったところ、cProfile を介して Mac OS Snow Leopard でプログラムを実行したところ、次の結果が得られました。

103.196 CPU 秒で 26849449 回の関数呼び出し (26844794 回のプリミティブ呼び出し)

... (合計時間が数秒を超える唯一のメソッドは recv です)

...

pyodbc を使用して Windows 7 仮想マシンで同じプログラムを実行する (ホスト コンピューターから実行されている同じ MySQL データベースに接続されている):

Muncher をメイン プログラムとして実行します。ncalls tottime percall cumtime percall filename:lineno(function) 512873 関数呼び出し (508218 プリミティブ呼び出し) 6.849 CPU 秒

誰がこれを引き起こしているのか知っていますか? その時間のほとんどは、_socket.socket の「recv」メソッドに費やされたようです。Google によれば、これはデータを受信するものです。その方法は壊れていますか?ばかげているように思えますが、ほぼ 15 倍の時間がかかります。

Mac OS で MySQL に接続する最良の方法は何ですか? これまでのところ、pyodbc と MySQLdb を試してみましたが、うまくインストールできませんでした。

0 投票する
2 に答える
7076 参照

python - pyodbcはどのようにエンコーディングを決定しますか?

私はSybaseSQLAnywhere 12をPython(およびTwisted)と一緒に数週間戦っていますが、自分のものも機能するようになりました。

煩わしさは1つだけ残っています。デプロイメントプラットフォームであるカスタムPython2.7.1を使用してCentOS5でスクリプトを実行すると、UTF-8として結果が得られます。

Ubuntuボックス(Natty Narwhal)で実行すると、latin1で取得できます。

言うまでもなく、すべてのデータをUnicodeで取得したいのですが、それはこの質問のポイントではありません。:)

どちらも64ビットボックスで、どちらにもカスタムPython2.7.1があります。UCS4とカスタムビルドのunixODBC2.3.0を使用します。

私はここで途方に暮れています。そのドキュメントが見つかりません。pyodbcまたはunixODBCが2つのボックスで異なる動作をする理由は何ですか?

難しい事実:

  • Python:2.7.1
  • DB:SQL Anywhere 12
  • unixODBC:2.3.0(2.2.14は同じように動作しました)、同一のフラグで自己コンパイル
  • ODBCドライバー:Sybaseからのオリジナル。
  • CentOS 5はUTF-8を提供し、UbuntuNattyNarwhalはlatin1を提供します。

私のodbc.iniは次のようになります。

DNS='sybase'を使用して接続します。

TIA!