問題タブ [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 に答える
4891 参照

python - SQL またはその他の回避策を使用して、ストアド プロシージャの 2 番目の結果セットにアクセスしますか? Python\pyodbc

私は python\pyodbc を使用しており、ストアド プロシージャの 2 番目の結果セットにアクセスしたいと考えています。私が知る限り、pyodbc は複数の結果セットをサポートしていません。さらに、ストアド プロシージャを変更できません。SQL またはその他の回避策を使用して 2 番目の結果セットにアクセスするオプションはありますか? おそらく、最初の結果セットの 2 番目の結果セットのみを返す 2 番目のストアド プロシージャを作成しますか?

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

python - 「Windows資格情報」を使用してLinuxでPythonを使用してMS SQL Serverに接続する

Windows ドメイン資格情報を使用して、Linux で Python を使用して MS SQL Server データベースに接続する方法はありますか?

Windows資格情報を使用してWindowsマシンから完全に正常に接続できますが、pyodbs + freetds + unixodbcを使用してLinux pythonから同じことをしようとしています

このエラーが発生します。

パスワードは正しく書かれていると確信していますが、ユーザー名のさまざまな組み合わせを試しました。

あるいは

無駄に。何か案は?

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

python - pywin32 odbc コネクタのドキュメントはありますか?

Web 上の優れた pywin32 odbc コネクタのドキュメントとチュートリアルは何ですか?

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

python - Windowsでpythonからodbcに接続する一般的な方法は?

Windows で Python から odbc に接続するには、どのライブラリを使用すればよいですか? odbcに関しては、pywin32の良い代替手段はありますか?

十分に文書化され、堅牢で、積極的に維持されているものなどを探しています。pyodbc良さそうです。他にありませんか?

0 投票する
7 に答える
47870 参照

python - 本番環境でのDjangoでのSQLServerの使用

SQL Serverデータベースバックエンドを使用してDjangoアプリケーションをデプロイした最近の経験はありますか?私たちの職場はSQLServerに多額の投資を行っており、十分に開発されたバックエンドがない場合はDjangoをサポートしません。

非公式にサポートされているバックエンドとして、mssql.django-pyodbcとdjango-mssqlを認識しています。どちらのプロジェクトにも1人しか貢献していないようですが、貢献はやや定期的であるように見えますが、少し心配です。

十分にサポートされているSQLServerのバックエンドは他にありますか?ここで言及した2つは、本番環境に「十分」ですか?あなたの経験は何ですか?

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

python - Linuxでpyodbcを使用して、nvarchar mssqlフィールドにUnicodeまたはutf-8文字を挿入する

Ubuntu 9.04を使用しています

次のパッケージ バージョンをインストールしました。

私は次のように設定/etc/unixodbc.iniしました:

私は次のように設定/etc/freetds/freetds.confしました:

31e2fae4adbf1b2af1726e5668a3414cf46b454fからpyodbc リビジョンを取得し、" "http://github.com/mkleehammer/pyodbcを使用してインストールしましたpython setup.py install

ローカル ネットワークにMicrosoft SQL Server 2000がインストールされた Windows マシンがあり、ローカル IP アドレス 10.32.42.69 でリッスンしています。「Common」という名前で作成された空のデータベースがあります。完全な権限を持つパスワード「secret」を持つユーザー「sa」がいます。

次の python コードを使用して接続をセットアップしています。

この時点まですべてが機能します。サーバーで SQLServer の Enterprise Manager を使用しましたが、新しいテーブルがそこにあります。ここで、テーブルにデータを挿入したいと思います。

それは失敗します!! エラーは次のとおりです。

クライアントは UTF-8 を使用するように構成されているため、データを UTF-8 にエンコードすることで解決できると考えました。それは機能しますが、奇妙なデータが返されます。

エラーは発生しませんが、返されたデータは送信されたデータと同じではありません! 私は得る:

つまり、pyodbc は Unicode オブジェクトを直接受け付けませんが、Unicode オブジェクトを返します! そしてエンコーディングが混同されています!

質問は次のとおりです。

NVARCHAR および/または NTEXT フィールドに Unicode データを挿入するコードが必要です。クエリを返すと、挿入したのと同じデータが必要になります。

これは、システムを別の方法で構成するか、挿入または取得時にデータを Unicode との間で正しく変換できるラッパー関数を使用することによって可能です。

それはあまり求めていませんよね?

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

python - ubuntuでpyodbcを使用してSQL Serverに画像フィールドを挿入する

Ubuntu 9.04を使用しています

次のパッケージ バージョンをインストールしました。

私は次のように設定/etc/unixodbc.iniしました:

私は次のように設定/etc/freetds/freetds.confしました:

31e2fae4adbf1b2af1726e5668a3414cf46b454fからpyodbc リビジョンを取得し、" "http://github.com/mkleehammer/pyodbcを使用してインストールしましたpython setup.py install

ローカル ネットワークにMicrosoft SQL Server 2000がインストールされた Windows マシンがあり、ローカル IP アドレス 10.32.42.69 でリッスンしています。「Common」という名前で作成された空のデータベースがあります。完全な権限を持つパスワード「secret」を持つユーザー「sa」がいます。

次の python コードを使用して接続をセットアップしています。

この時点まですべてが機能します。サーバーで SQLServer の Enterprise Manager を使用しましたが、新しいテーブルがそこにあります。ここで、テーブルにデータを挿入したいと思います。

ここで私の元の質問で、使用に問題がありcur.execute(sql, (data,))ましたが、質問を編集しました。以下のVinay Sajipの回答(ありがとう)に従って、次のように変更したためです。

そして挿入は完璧に機能しています。次のテスト コードを使用して、挿入されたデータのサイズを確認できます。

これは完全に合格します!!!

ここでの問題は、データを取り戻すことです。

私は一般的なアプローチを試みています:

しかし、それは失敗します!!

上記のすべてのコードをここに1 つのファイルにまとめました。これにより、支援したい人が簡単にテストできるようになります。

質問は次のとおりです。

画像ファイルを mssql に挿入する Python コードが必要です。画像をクエリしてユーザーに表示したい。

mssql の列の型は気にしません。この例では " " 列タイプを使用してIMAGEいますが、元の状態で挿入したファイルのバイナリ データを取得する限り、任意のバイナリ/ブロブ タイプで使用できます。Vinay Sajip は、SQL SERVER 2000 でこれが推奨されるデータ型であると以下で述べています。

データはエラーなしで挿入されていますが、データを取得すると 4k しか返されません。(データは 4096 で切り捨てられます)。

どうすればそれを機能させることができますか?


編集: 以下の Vinay Sajip の回答は、フィールドで pyodbc.Binary を使用するためのヒントを与えてくれました。それに応じて質問を更新しました。ありがとうビナイ・サジプ!

Alex Martelli のコメントから、DATALENGTHMS SQL 関数を使用して、データが列に完全にロードされているかどうかをテストするというアイデアが得られました。ありがとうアレックス・マーテリ!

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

python - Python では、pyodbc を使用して、どのようにトランザクションを実行しますか?

多数の (最大 25 までの) テーブルで変更する必要があるユーザー名があります。(ええ、私は知っています。) アトミック トランザクションは、この種のことを行う方法のようです。ただし、pyodbc でこれを行う方法がわかりません。以前にアトミック トランザクションに関するさまざまなチュートリアルを見たことがありますが、それらを使用したことはありません。

セットアップ: Windows プラットフォーム、Python 2.6、pyodbc、Microsoft SQL 2005。単一の SQL ステートメントには pyodbc を使用しましたが、複合ステートメントやトランザクションは使用しませんでした。

SQL のベスト プラクティスは、ストアド プロシージャの作成が優れていることを示唆しているようです。ストアド プロシージャを実行することに対する私の懸念は、重要度の高い順に次のとおりです。 1) ストアド プロシージャを作成したことがありません。2) pyodbc はまだストアド プロシージャからの結果を返さないと聞きました。3) これは間違いなく Not My Database です。ベンダー提供、ベンダー更新などです。

それで、これについて行く最善の方法は何ですか?

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

python - Pythonでハッシュ(#)文字をエスケープする方法は?

pyodbcを使用してAS400にクエリを実行しています(残念ながら)。一部の列名にはハッシュが含まれています。ここに小さな例があります:

明らかに次のようなエラーが発生します。

これを回避する方法はありますか?var名でハッシュが許可されているかどうかは疑わしいようです。今日はPythonを手にしたばかりなので、答えが常識であるなら許してください。

ありがとう、ピート