問題タブ [django-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.
django - カスタム Django バイナリ フィールド & SQL Server 2008
私は小さなテーブルを持っています:
SQL クエリを使用してレコードを挿入できます。
このテーブルの Django モデルは次のとおりです。
GUIDField は、カスタム フィールドを作成する私の試みです。
ORM インスタンスからデータベースに 16 バイトのバイナリ データを渡す必要があります。ほとんどの場合、引用符で囲まれていない文字列の後に SQL Server 側で0xを取得する必要があります...しかし、どのように?
私は unixodbc、pyodbc、django-odbc を使用しています。
python - Django pyodbc ストアド プロシージャ エラー - 文字列のフォーマット中にすべての引数が変換されるわけではありません
次のように、pyodbc を介して SQL Server 2008 でストアド プロシージャを呼び出す django 関数があります。
関数が呼び出されるたびに、「error_message」が表示されます:「文字列のフォーマット中に変換されたすべての引数ではありません」
django - django-mssqlを使用してSQLServer2008 R2に接続するにはどうすればよいですか?
djangoをSQLServer2008r2に接続できない理由がわかりません。サーバーとSQLサーバーの管理者権限があります。django-mssqlで運が良かったのではないかと思ったので、Windows Server2008sp2を使用して仮想Windowsボックスを構築しました。Windowsボックスでdjango-pyodbcとdjango-mssqlの両方を試しましたが、まだ成功していません。これが私のdb設定です:
私が得るエラー:
洞察をいただければ幸いです。ありがとう。
sql-server - Django-WindowsでのpydobcSQLサーバー接続の問題
別の開発者と私は、別のサーバーでレガシーSQLサーバーデータベース(SQLEXPRESS)を使用してdjango(v1.4.2)プロジェクトをセットアップしています。これまでのところ、django-pyodbcを使用してLinuxとMacから、およびdjango-mssqlを使用してWindows7を実行しているラップトップからデータベースに接続することができました。ラップトップでdjango-pyodbcを使用して、環境の同期を維持したいと思います。
ラップトップの場合:
- pyodbc(3.0.6)がインストールされており、非django.pyスクリプトでSQLステートメントを接続して実行できます
- zipをダウンロードしてdjango-pyodbc1.4をダウンロードしました。正しくインストールしたかどうかわかりません:
- ファイルを解凍し、トップディレクトリでsetup.pyファイルを実行しました。sql_serverディレクトリを/lib/site-packagesディレクトリに配置します
- このsql_serverディレクトリを/django/ db/backendsにコピーしました
- / django / db / backends/sql_serverを指すPYTHONPATH環境変数を作成しました
- 代わりに/site-packages/ sql_serverを指すことになっているのかわかりませんか?
- ODBCデータソース(システムDSN)を作成しました
- 接続オプションのテストは機能します
- settings.pyのDATABASEエントリを、Linuxバージョンとほぼ同じになるように編集しました(詳細は以下を参照)。
そのため、機能せず、次のエラーメッセージが表示され、次に何をすべきかわかりません。
djangosettings.pyファイルを次のように設定します。
Linuxでは、設定ファイルに次のようなDATABASESエントリがあります。
これを解決するのに役立つかどうかはわかりませんが、django-mssql(Windowsでのみ実行されます)を使用すると、(動作する)エントリは次のようになります。
他にどのような情報が役立つかわからない。あなたが提供できるどんな助けや洞察にも感謝します。
----剖検----最終的に機能したものは次のとおりです。
データベースの設定の部分的なエントリ:
sql-server - pyodbcを使用してDjangoで19455文字を超える長さのテキストフィールドを持つレコードをロードできません
私は次のような Note モデルを持っています (これは従来の MS SQL Server データベースから取得しているため、これらのレコードのほとんどは Django によって作成されたものではありません)。
一部のレコードに対して a を実行すると、データベースに存在するにもかかわらず、.get
a が返されていました。DoesNotExist
これは、MS SQL Server TEXT
(のようにCREATE TABLE Foo ( content TEXT null)
) フィールドのコンテンツの長さが一定量を超えた場合に発生します。具体的には 19455 文字です。
動作中の様子は次のとおりです。
私は FreeTDS を使用しており、テキスト サイズを 2147483647 に設定しています。これは、使用している MS SQL Server のバージョンの上限のようです。
this other question on truncationSET TEXTSIZE n
によると、 n がバイト単位の値である命令を先頭に追加する必要があります。これにより、データが切り捨てられる問題が解決されます。それで、それが私の場合に起こっているかどうか、そしてそれが修正されるかどうか疑問に思いました.
そこで、カーソルとSET TEXTSIZE
コマンドだけを使用するコードを書きました。
まず、レコードに記載すべき内容を見てみましょう。
print "長さ: %d; 最後の 40 文字: %s" % (len(note.content), note.content[-40:]) 長さ: 19456; 最後の 40 文字: rVEF1cCJeRaTtcdkXMqqQUxEVLZapMGVGSxMfJ2T
そして、ループスルーします。TEXTSIZE 設定をインクリメントするたびに、必要に応じてレコードを表示します。また、返されたレコード フィールドの長さと最後の 10 文字も表示します。
そのため、TEXTSIZE が 19456 より大きい数値に設定されたレコードを取得しようとすると、レコードは返されません。そして、文字列の最後の 10 文字が、上記の文字列から短すぎて欠落した文字を引いたものに一致することに気付くでしょう。たとえば、最後に見つかったレコードの場合、最後の 10 文字はMGVGSxMfJ2
. T
19455 の TEXTSIZE が問題のフィールドの長さより 1 小さいため、実際のレコードから が欠落しています。
だから今、もちろん私は疑問に思っています、何が起こっているのですか?これが django-pyodbc、pyodbc、または FreeTDS の問題であるかどうかを判断するために、他にできるトラブルシューティングはありますか? SQL Server の可能性もありますがSET TEXTSIZE 19456 SELECT [Notes].[note_id], [Notes].[note_content] FROM [Notes] WHERE [Notes].[note_id] = 1
、Server Management Studio で直接実行すると正しく動作し、正しい文字数が返されるようです。
また、保存が機能することにも注意してください。
python - pyodbc を使用してリモート MS アクセスを接続するにはどうすればよいですか
Freetds 経由で pyodbc を使用して MS SQL サーバーに接続する前に、pyodbc を使用してリモートの MS Access DB に接続するにはどうすればよいですか。しかし、リモート アクセスに同じ freetds 構成を使用すると、「うまくいきません。
助言がありますか?
sql-server - Django で SQL Server バックエンドを使用する
django-pyodbc バージョンを使用して外部 SQL Server Express データベースに接続しようとしています:この github リンクmanage.py shell
ですが、 ORM コマンドを実行できるかどうかを確認するために実行すると、このエラーが発生し続けます
私のsettings.pyにはこれがあります:
私は自分が何をすべきかについて完全に途方に暮れているので、すべてのアイデアを歓迎します。基本的に私が望んでいるのは、SQL Server データベースとのインターフェイスとして作成した小さなアプリを使用できるようにすることですが、pyodbc 接続文字列の代わりに通常の DJango ORM コマンドを使用できるようにすることです (ところで、pyodbc を使用すると、問題のない SQL Server データベース)
database - Netezza データベース (nzSQL) 用の Django の構成
私は Django をまったく初めて使用しますが (pyodbc は使用しません)、データベースの設定がどのように機能するかについて少し混乱しています。モデル ルートに移動し、次の odbc 構成を持つ Netezza データベースに接続するように settings.py を構成したいと思います。
odbc インスタンスは次のようになります。
これをsettings.pyファイルに入れる方法を理解することはできません。誰かがこれがどのように機能するか説明できますか?
PS 同様の質問がここで尋ねられました: unixodbc と netezza ODBC ドライバーの問題 (未定義のシンボル: SSL_connect)が、答えはどれも役に立ちませんでした。
django - syncdb - ValueError: アンパックする値が多すぎます
クローズの更新 - 私はそれを経験したと思いますが、それは私に代わって少し愚かでした.
python manage.py inspectdb > models.py
出力をファイルにパイプするのを忘れていました!
私はそれを自分の app/models.py にダンプしましたが、今はそこから実行しようとしていますが、さらに進んでいます。
SQL Server 2008 R2 サーバーに対して django を実行しようとしています。
私は FreeTDS/unixODBC 接続を理解しました。データベースに対して isql および tsql クエリを正常に実行できます。
私はPythonで直接接続することができました-
django シェルで inspectdb を実行しても問題ありません。70 以上のテーブルとそのレイアウトを完全に返します。
syndb を実行しようとすると、次のエラーが発生します -
同様に、djangoで次のようにクエリを実行しようとすると-
次のエラーメッセージで失敗します -
これらのエラーがここにある他のスレッドに関連しているとは確信していません -
ValueError: Django をアンパックするには値が多すぎます
しかし、私は専門家ではないので、間違っている可能性があります。パスワードを変更しようとしたことはわかっていますが、同様のエラーメッセージに接続できません-
編集して追加 - クエリを実行するとき、私のモデル定義は次のとおりです -
編集して、完全に再インストールしたことを追加します。VM を消去し、復活させました。実行した手順の内訳は次のとおりです
apt-get インストール gcc g++ make python-dev
unixODBC をダウンロード
tar xzvf unixODBC-2.3.2.tar.gz
。/構成、設定
作る
メイクインストール
FreeTDSをダウンロード
tar xzvf freetds-stable.tgz
./configure --with-tdsver=8.0 --with-unixodbc=usr/local
作る
インストールする
ldconfig -v
odbc.ini
odbcinst.ini
freetds.conf
tsql -S mssql -U ユーザー -P パスワードは動作します
isql -v mssql ユーザーパスワードは機能します (何らかの理由で単純な isql -v mssql は機能しません)
apt-get インストール python-setuptools
easy_install ピップ
pip インストール pyodbc
pip install Django==1.6
pip install django-pyodbc-azure
設定.py