問題タブ [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.
python - SQL またはその他の回避策を使用して、ストアド プロシージャの 2 番目の結果セットにアクセスしますか? Python\pyodbc
私は python\pyodbc を使用しており、ストアド プロシージャの 2 番目の結果セットにアクセスしたいと考えています。私が知る限り、pyodbc は複数の結果セットをサポートしていません。さらに、ストアド プロシージャを変更できません。SQL またはその他の回避策を使用して 2 番目の結果セットにアクセスするオプションはありますか? おそらく、最初の結果セットの 2 番目の結果セットのみを返す 2 番目のストアド プロシージャを作成しますか?
python - 「Windows資格情報」を使用してLinuxでPythonを使用してMS SQL Serverに接続する
Windows ドメイン資格情報を使用して、Linux で Python を使用して MS SQL Server データベースに接続する方法はありますか?
Windows資格情報を使用してWindowsマシンから完全に正常に接続できますが、pyodbs + freetds + unixodbcを使用してLinux pythonから同じことをしようとしています
このエラーが発生します。
パスワードは正しく書かれていると確信していますが、ユーザー名のさまざまな組み合わせを試しました。
あるいは
無駄に。何か案は?
python - pywin32 odbc コネクタのドキュメントはありますか?
Web 上の優れた pywin32 odbc コネクタのドキュメントとチュートリアルは何ですか?
python - Windowsでpythonからodbcに接続する一般的な方法は?
Windows で Python から odbc に接続するには、どのライブラリを使用すればよいですか? odbcに関しては、pywin32の良い代替手段はありますか?
十分に文書化され、堅牢で、積極的に維持されているものなどを探しています。pyodbc
良さそうです。他にありませんか?
python - 本番環境でのDjangoでのSQLServerの使用
SQL Serverデータベースバックエンドを使用してDjangoアプリケーションをデプロイした最近の経験はありますか?私たちの職場はSQLServerに多額の投資を行っており、十分に開発されたバックエンドがない場合はDjangoをサポートしません。
非公式にサポートされているバックエンドとして、mssql.django-pyodbcとdjango-mssqlを認識しています。どちらのプロジェクトにも1人しか貢献していないようですが、貢献はやや定期的であるように見えますが、少し心配です。
十分にサポートされているSQLServerのバックエンドは他にありますか?ここで言及した2つは、本番環境に「十分」ですか?あなたの経験は何ですか?
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 との間で正しく変換できるラッパー関数を使用することによって可能です。
それはあまり求めていませんよね?
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 のコメントから、DATALENGTH
MS SQL 関数を使用して、データが列に完全にロードされているかどうかをテストするというアイデアが得られました。ありがとうアレックス・マーテリ!
python - Python では、pyodbc を使用して、どのようにトランザクションを実行しますか?
多数の (最大 25 までの) テーブルで変更する必要があるユーザー名があります。(ええ、私は知っています。) アトミック トランザクションは、この種のことを行う方法のようです。ただし、pyodbc でこれを行う方法がわかりません。以前にアトミック トランザクションに関するさまざまなチュートリアルを見たことがありますが、それらを使用したことはありません。
セットアップ: Windows プラットフォーム、Python 2.6、pyodbc、Microsoft SQL 2005。単一の SQL ステートメントには pyodbc を使用しましたが、複合ステートメントやトランザクションは使用しませんでした。
SQL のベスト プラクティスは、ストアド プロシージャの作成が優れていることを示唆しているようです。ストアド プロシージャを実行することに対する私の懸念は、重要度の高い順に次のとおりです。 1) ストアド プロシージャを作成したことがありません。2) pyodbc はまだストアド プロシージャからの結果を返さないと聞きました。3) これは間違いなく Not My Database です。ベンダー提供、ベンダー更新などです。
それで、これについて行く最善の方法は何ですか?
python - Pythonでハッシュ(#)文字をエスケープする方法は?
pyodbcを使用してAS400にクエリを実行しています(残念ながら)。一部の列名にはハッシュが含まれています。ここに小さな例があります:
明らかに次のようなエラーが発生します。
これを回避する方法はありますか?var名でハッシュが許可されているかどうかは疑わしいようです。今日はPythonを手にしたばかりなので、答えが常識であるなら許してください。
ありがとう、ピート