問題タブ [pypyodbc]

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 投票する
1 に答える
15989 参照

python - pyodbcにはpypyodbcよりも設計上の利点がありますか?

pyodbcは古いプロジェクトであり、おそらくより機能的で堅牢ですが、その設計(コンパイルされたCコードのコンポーネントに基づく)について、pypyodbcなどの純粋なPython実装よりも好ましいものはありますか?

私は多くのETL作業を行っており、Linux / Jython/JDBCアプローチからWindows/Cygwin / Python/ODBCアプローチに切り替えることを考えています。

0 投票する
10 に答える
121402 参照

python - pyodbc カーソルの結果を python 辞書として出力する

pyodbc カーソル出力 (またはから).fetchoneをPython 辞書としてシリアル化するにはどうすればよいですか?.fetchmany.fetchall

私は bottlepy を使用しており、dict を返す必要があるため、JSON として返すことができます。

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

python - latin-1 ファイル名を使用して pyodbc でアクセス (.mdb) データベースに接続する方法

このコードを使用して、アクセス (.mdb) データベースに接続します。

次のエラーが表示されます。

pyodbc.Error: ('HY000', '[HY000] [Microsoft][Pilote ODBC Microsoft Access] ファイル名が正しくありません。(-1044) (SQLDriverConnect); [HY000] [Microsoft][Pilote ODBC Microsoft Access] ファイル名が正しくありません。(- 1044)')

この問題は、データベース ファイル名に û 文字が含まれていることが原因のようです。文字列と Unicode についての私の理解では、fileMDB は latin-1 でエンコードされた文字列です。私のコンピューターは latin-1 エンコーディングで実行されているため、ファイル名が間違っている理由がわかりません。

Windows XP と python 2.7 を使用しています。

ご協力ありがとうございました!

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

python-3.3 - Python 3.3.2 で pyodbc を使用して select を実行できない

Python 3.3.2 と pyodbc を使用して、プロジェクトのデータ同期スクリプトを開発しています。必要なデータは SQL Server 2008 インスタンスからのものですが、これまでのところ、クエリを正常に作成できていません。

pyodbc を使用してデータベース サーバーへの接続を確立できます。

freetds および iodbc のログは、データベース サーバーへの接続が成功したことを示しています (ログには以下が含まれます)。ただし、クエリを実行しようとすると:

次のエラーが表示されます。

iodbc および FreeTDS ログは、「??????????????????????????????」を示しています。クエリとして渡されます。これは、ユニコード/エンコーディングの問題のように見えます。同じ pyodbc コードは、同じバージョンの iODBC と FreeTDS を使用する python 2.7 で動作するため、この問題は python 3.3.2 と pyodbc の間の相互作用に関係していると思います。

私はこのバグレポートを見つけましたが、まだ何らかの修正や回避策を見つけていません。どんな助けでも大歓迎です。私はこの 2 日間、これを理解しようとしてきましたが、あまり運がありませんでした。

参考になる情報が含まれていない場合はお知らせください。できる限りの情報を提供します。SQL Server ログにアクセスできません。

環境:

Mac OSX 10.8.5
Python 3.3.2
pyodbc 3.0.7
iODBC 3.52.6 (Mac で pyodbc に unixodbc を使用するよう説得する方法がわかりません)
FreeTDS 0.91

iODBC ログ:

FreeTDS ログ:

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

python - Python pyodbc: 接続文字列のエンコード (Windows)

パスとファイル名の両方にアクセント付きの文字が含まれているローカル Access ファイルに接続する際に問題があります。私はPythonを初めて使用するので、これまでに管理したものは次のとおりです。

最初の出力では「True」が返され、もう 1 つは完全なファイル名が出力されますが、接続は次のエラーで失敗します。

例外 UnicodeEncodeError: UnicodeEncodeError('ascii', u'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\Users\xxx\case\M\xf8re\M\xf8reCase_v2.accdb', 121, 122, 'ordinal not in range(128)') in 無視

接続文字列をデコードしてシステムエンコーディングに戻そうとしました

しかし、代わりに次のエラーが表示されます。

トレースバック (最後の最後の呼び出し): ファイル "mwe.py"、11 行目、cnxn = pyodbc.connect(dbConStr.encode('mbcs')) で UnicodeDecodeError: 'ascii' コーデックは位置 121 のバイト 0xf8 をデコードできません: ordina l not in range(128)

「cp1252」と「utf-8」も試しましたが、同じエラーが発生します(utf-8では文字コードのみが異なります)。

詳細: スクリプト ファイルは utf-8 として保存されます。ノルウェー語の「ロケール」を使用した 64 ビットの英語版 Windows 7 を使用しています。

前もって感謝します。

0 投票する
4 に答える
12541 参照

python - pyodbc での「オプション機能が実装されていません (106) (SQLBindParameter)」エラー

私はこれを理解しようとして夢中になっています。初めて Python を使用し、Twitter から収集したデータを Access 2010 データベースに書き込もうとしています。

私が使用しているコマンドは次のとおりです。

返されるエラー メッセージは次のとおりです。

データをデータベースに渡すさまざまな順列を試しました。int(rcount) エントリを削除すると、問題なく最初の値 sname がポストされます。ただし、複数のパラメーターを渡そうとするとすぐに、問題が発生します。

本当に基本的なものが欠けているような気がしますが、実際に私がやろうとしていることと似たような例を見つけることができず、私がしようとしていることは難しくありません...ユーザーおそらくエラー:)

どんな助けでも大歓迎です。

乾杯、 ケブ

完全なコードは次のとおりです。

MS Access 2010、pyodbc-3.0.7.win32-py3.3.exe、Python 3.3、および PyCharm を使用しています。

私のコーディング能力を判断しないでください:) Pythonは私にとって初めてです。最初に INSERT ステートメントを文字列 (sql) として設定しようとしたことがわかります。次を使用してカーソルを呼び出していました。

残念ながら、これも私にはうまくいきませんでした!2 番目のパラメーターを 1 などの数値に置き換えても、まだ機能しません。イライラします。

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

python - Python pypyodbc execute ステートメントに変数を挿入するにはどうすればよいですか?

私は Python 3.3、pypyodbc 1.2.1、および Flexquarters QODBC バージョン 14 経由でアクセスできる Quickbooks Enterprise 12 会社ファイルを使用しています。問題なく、期待どおりの結果が得られます。

実行でハードコーディングされた電子メール アドレスに注意してください。これは期待どおりに機能します。

pypyodbc のドキュメントから読み取っているパラメーターを使用して同じことを実行しようとすると、エラーがスローされます。引用符とパラメーター マーカーに問題があると思います。

よりpythonisticになろうとしていますか?関数を再利用して、さまざまな列を検索したいと本当に思っています。何かのようなもの:

私は他のいくつかのスレッドを見てきましたが、それらのほとんどは、検索する列ではなく、パラメーターを扱っているようです。誰でも私がこれを学ぶのを手伝ってくれますか?

PSはトレースバックを含めるのを忘れました:

0 投票する
0 に答える
929 参照

ms-access - pypyodbc で ipy64 を使用する場合の例外

Ironpythonでpypyodbcを使用してMSAccessでデータベースを作成しようとしています。古いマシンでは問題なく動作していますが、新しいマシンに移行する必要があります。ただし、新しいマシンで同じスクリプトを実行しようとすると例外が発生します。

Python を使用すると、エラーなしでデータベースを作成できます。

ipy

pypyodbc をインポート

pypyodbc.win_create_mdb('C:\データベース.mdb')

pypyodbc.connect('Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\database.mdb;')

ただし、ipy64 を使用して同じことを試みると、例外が発生します。

「アクセスドライバーが見つかりません」

トレースバック (最新の呼び出しが最後):

ファイル ""、1 行目、

win_create_mdb のファイル「C:\IronPython27\pypyodbc.py」、2564 行目

例外: アクセス ドライバーが見つかりません。

64 ビットの Office 製品がインストールされているため、AccessDatabaseEngine_x64 をインストールしました。

ありがとう、

ジョン。