4

django-mssql-1.6/README に次のように記載されていることを認識しています。

SQL サーバーのバージョン

サポートされているバージョン:

  • 2008年
  • 2008r2
  • 2012年

しかし、v. 1.6 が利用可能な最新バージョンであるため、誰かが MS SQL Server 2014 に接続する方法を見つけることができたかどうか疑問に思っていました。試していますが、エラー メッセージが表示されます。

django.db.utils.OperationalError: (com_error(-2147352567, '例外が発生しました.', (0, u'ADODB.Connection', u'プロバイダが見つかりません.正しくインストールされていない可能性があります.', u'C: \Windows\HELP\ADO270.CHM', 1240655, -2146824582), None), u'接続を開く際のエラー: DATA SOURCE=127.0.0.1;初期カタログ=testdb;統合セキュリティ=SSPI;PROVIDER=sqlncli10;DataTypeCompatibility=80; MARS Connection=True')

設定を使用:

DATABASES = {
    'default': {
        'ENGINE': 'sqlserver_ado',
        'NAME': 'testdb'
    }
}
4

4 に答える 4

8

私が見る限り、正しいバージョンの django-mssql と Django を使用しています。私は最近 1.6 から 1.7 に移行しsql_server.pyodbc、Django 1.7 でサポートされなくなったため、DB バックエンドを変更する必要がありました。django-mssql ( ) に変更したときに、この問題に遭遇しましたsqlserver_ado。問題は、間違ったプロバイダーを使用していることです。Django-mssql はSQLCLI10デフォルトのプロバイダーとして使用しますが、これも私にとってはうまくいきませんでした。SQLOLEDB上記の回答のように、DB 構成にオプション ハッシュを追加すると、プロバイダーを使用している限り問題が解決します。これは私の設定です:

    DATABASES = {
    'default': {
        'NAME': 'CVH_Dev',
        'ENGINE': 'sqlserver_ado',
        'HOST': '192.***.212.2**',
        'USER': 'USER',
        'PASSWORD': 'PWD',
        'OPTIONS': {
            'provider': 'SQLOLEDB',
            'use_legacy_date_fields': 'True'
        }
    }
}

SQLOLEDBprovider オプションを使用すると、機能します。お役に立てれば。

于 2015-09-30T10:38:57.703 に答える
4

遅すぎるかもしれませんが... Django 1.10を使用していて、に固執する必要がない場合は、MS SQL Server 2014 および 2016 をすぐにサポートするdjango-pyodbc-azuredjango-mssqlパッケージに切り替えることができます。

この環境で試してみたところ、動作します:

  • Windows Server 2012 R2
  • パイソン 3.5.2
  • SQL Server 2016
  • ジャンゴ 1.10
于 2016-11-02T11:32:33.717 に答える