問題タブ [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 投票する
1 に答える
2688 参照

python - Pyodbc + UnixODBC+FreeTDSで接続設定を設定します

Pyodbc、UnixODBC、FreeTDSを使用してセットアップしましたが、どこかにいくつかのオプションが設定されており、どこにあるのかわかりません。SQL Server Management Studioによると、私のプログラムは接続を開くときにいくつかの設定を送信しています。

ただし、別の設定セットが必要です。

これを変更する方法はありますか?現在の設定でそれを行うことができない場合、それを変更できる(できればPythonデータベースAPIを使用して)Pythonで使用できる他のライブラリはありますか?

現在の設定を使用する他のプロジェクトがたくさんあるため、データベースの設定を変更することはできません。

解決済み:

マークの答えは正しかったのですが、FreeTDS/UnixODBCで動作させることができませんでした。ただし、その情報をodbc.iniファイルに追加すると完全に機能しました。

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

python - Python、PyODBC、SQLの戻り値から「()」を取り除く方法は?

Python と PyODBC で更新する必要がある一連の SQL ID を取得しました。

ID を更新する 2 番目のコードがあります。

問題は、以前に Python で取得した ID を表示すると、次のいずれかが取得されることです。

[(1016, ), (1017, ), (1019, ), (1020, ), (1021, ), (1025, ), (1026, ), (1027, ), (1029, ), (1048, ) , (1049, )]

また

(1020, )

次のスクリプトの 2 番目の部分を実行できるように、番号だけが必要です。

部。私は試しました:

そしてそれは私に与えました:

SELECT ID FROM One.dbo.Two WHERE ID = (1049, )
SELECT ID FROM One.dbo.Two WHERE ID = (1048, )
など...

そして私は試しました:

そして私は得ました:

'1017, )'

ID を再利用できるように、ID から文字を削除するにはどうすればよいですか?

ありがとう、

エイドリアン

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

python - PythonODBCでのMicrosoftAccessSQL演算子の使用

短いバージョン:ODBCを介してAccessのDatePart関数を使用しようとすると、解決できません。

長いバージョン:

タイムスタンプとスコアを含む行を返すMicrosoftAccessクエリがあります。ごとに、次にスコアごとに並べ替えたいと思います。事実上、その日のハイスコアテーブルです。

より良い関数が必要な場合は、このDatePart関数を使用して、タイムスタンプから年、月、日をそれぞれ抽出し、ORDER BYその後にスコアを付けました。

Microsoft Accessでは、クエリは美しく機能します。

ただし、pyodbc同じクエリにアクセスするために使用すると、ODBCドライバーはDatePart関数によって困惑し、欠落しているパラメーターの名前であると見なされます。

驚いたのは、DatePart関数を非表示にして、新しいHighScoreクエリを作成してから、パラメーターが見つからないと文句を言っていたということSELECT * FROM HighScoreですどうやら、クエリのSQLはプロセスのかなり遅い段階で解決されています。

私の質問は次のいずれかです。

  • SQLでDatePart関数を解決して、Accessで実行できるようにするにはどうすればよいですか。
  • ODBCを介してタイムスタンプの日の部分で並べ替える正しい方法は何ですか?

追加情報:

やり過ぎのようですが、ここにいくつかのコードがあります:

結果は次のとおりです。

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

python - pyodbc と mySQL

pyodbc を使用して mySQl db に接続できません。

これが私のスクリプトのスニペットです:

pyodbc.connect() 行で次のエラーが発生します。

pyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] データ ソース名が見つからず、既定のドライバーが指定されていません (0) (SQLDriverConnectW)')

このエラー (および一般的な Python スクリプト) に関して別の質問があります。これをスクリプトとして実行すると、黙って失敗します (スタック トレースを期待していました)。エラーが発生した場所を見つけるには、各行を手動で入力する必要があります。

私は今のところ少し怠け者です(例外処理なし)-例外処理なしのPythonスクリプトのこの通常の動作は、サイレントに失敗しますか?

[編集]

既に pyodbc を使用して別のソース (MS Access) からデータを抽出しているため、mysqldb は使用していません。わかりました、正当な理由ではありません-しかし、私はすでにpyodbcに取り組んでおり、「1回限りの」仕事のために別のライブラリ/モジュール/パッケージ(Pythonで呼び出されたものは何でも)と格闘する必要はありません。Windows 環境のさまざまなデータ ソースから Linux の mySQl にデータを移動したいだけです。Linux に移行したら、大地に戻ります。

それが「スクリプト」全体です。上記のコードを拡張子 .py のファイルに保存し、コマンド ラインで python myscript.py を実行しました。XPマシンでこれを実行しています

0 投票する
5 に答える
4705 参照

python - Windows の Python: pyodbc を使用した大量の挿入によりメモリ リークが発生する

Windows で Python を使用して MS SQL 2005 データベースにデータを入力しようとしています。何百万もの行を挿入していますが、700 万行までにほぼ 1 ギガバイトのメモリを使用しています。以下のテストでは、挿入された 100k 行ごとに 4 MB の RAM を消費します。

ハックソリューション: multiprocessing モジュールを使用して新しいプロセスを生成し、メモリを返しました。この方法で行を挿入すると大量のメモリが消費される理由について、まだ混乱しています。何か案は?

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

python - Python:アクセスデータベースにExcelファイルを追加する

pyodbcを使用してアクセス(accdb)ファイルにアクセスしています。プログラムでExcelワークブックをアクセスデータベースに追加したいのですが、そのためのAPIが見つかりません。これが私の現在のコードです:

Excelファイル(IA_2006.xls)からIA.accdbにデータをインポートするにはどうすればよいですか?

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

python - PyODBCを使用してテーブル内の列名を選択します

PyODBCを使用してMicrosoftAccessmdbファイルからいくつかのデータを選択するPythonプログラムを作成しています。

いくつかの異なるテーブルの列名を見つける必要があります。SQL Serverでは、これは次のようなクエリを使用して実行できます。

ただし、そのクエリはAccessでは機能しません。と

リンクされていないテーブル名のリストを取得できますが、MSysObjectに列名のリストが含まれていないようです。

SQLを使用してAccessデータベースのテーブルの列名を取得する方法はありますか?

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

sql-server - SQL Server 2008 で sqlalchemy を使用して DB 復元が完了するのを待っています

SQL Server 2008でTSQLを使用し、pyodbcをトランスポートとして使用してsqlalchemyを使用して、開発中にdbの復元を自動化しようとしています。

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

"""CREATE DATABASE dbname

データベース dbname FROM DISK='C:\Backups\dbname.bak' WITH REPLACE,MOVE 'dbname_data' TO 'C:\Databases\dbname_data.mdf',MOVE 'dbname_log' TO 'C:\Databases\dbname_log.ldf' """

残念ながら、SQL Management Studio では、コードが実行された後、DB が「復元中...」の状態のままであることがわかります。

管理スタジオを介して復元すると、機能します。サブプロセスを使用して「sqlcmd」を呼び出すと、機能します。pymssql は認証に問題があり、そこまで到達しません。

何がうまくいかないのですか?

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

python - Linux 上の Oracle データベースへの pyodbc 接続

pyodbc 経由で Oracle データベースに接続できる「無料」のリソースを教えてもらえますか? サポートしているマルチ db 環境があります。DB2 および MSSQL ODBC ドライバーが動作していますが、ODBC/pyodbc を介して Linux で実行されている Oracle サーバーに接続する方法に関する情報が見つからないようです。

Linux: cat /etc/redhat-release CentOS リリース 5.5 (最終版)

Python: python -V Python 2.4.3

mxODBC と呼ばれるものへのリンクをいくつか見つけましたが、それはクローズドな商用 ($$$) ソリューションのようです。

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

python - pyodbc.Error'IM002'がDB2に接続しています

Python 2.7(python-2.7.1.amd64.msi)と、DB2データベースに接続するためのpython拡張モジュールであるpyodbc(つまり、pyodbc-2.1.8.win-amd64-py2.7.exe)をダウンロードしました。

以下に示すようにサンプルスクリプトを作成しました。

スクリプトは次のエラーをスローします

私はPythonの初心者なので、エラーからpyodbc用のIBM DB2ドライバーをダウンロードする必要があることに気付きました。そのため、Googleで広範囲に検索しましたが、見つかりませんでした。

ドライバーをダウンロードできるサイトを教えていただければ幸いです。後でドライバーの構成/ロード方法を説明していただければ幸いです。

Javaの場合

  • ドライバはojdbc.jarの形式で出荷され、クラスパス上にあるlibディレクトリにコピーされます。
  • 構成ファイルに変更を加える
  • Javaクラスからのデータソースを参照する

私はPythonの初心者なので、Pythonの例を使用して対応する手順を教えていただければ幸いです。