LoginSignup
1
1

More than 5 years have passed since last update.

DjangoのデータベースアクセスでIM002または08001エラーが出る

Posted at

エラー内容

InterfaceError
'IM002', '[IM002] [Microsoft][ODBC Driver Manager] データ ソース名および指定された既定のドライバーが見つかりません。 (0) (SQLDriverConnect)'

発生状況

Python Djangoでpyodbcを使って、Microsoft SQL Serverに接続している。
開発環境ではアクセスできるが、実行環境のIISへデプロイしたところエラーが出た。
pyodbc3.PNG

環境

開発環境

-Windows10 64bit
-Visual Studio Community 2017 ver.15.4.1
-Python ver.3.6.1
-Anaconda ver.4.4.0
-Django ver.1.11.11
-django-pyodbc ver.1.1.3

実行環境

-Windows7 32bit
-IIS Version 7.5.7600.16385
-Django ver.2.0.3
-django-pyodbc ver.1.1.3

解決方法とソース

接続文字列を修正することで、解決した。
開発環境で正常に動いていた接続文字列はこちら。

db_access.py
connectionString = 'DRIVER={ODBC Driver 13 for SQL Server}; 
SERVER='+'localhost'+'; DATABASE='+'database'+';
UID='+'sa'+'; PWD='+'password'

実行環境の方は、こう書き換えたら正常に動いた。

db_access.py
connectionString = 'DRIVER={SQL Server};
SERVER='+'localhost'+'; DATABASE='+'database'+';
UID='+'sa'+'; PWD='+'password'

なお開発環境の接続文字列を上記のように変えると、また異なるエラーが出た。

OperationalError
'08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server が存在しないか、アクセスが拒否されました。 (17) (SQLDriverConnect); [08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()). (5)'

pyodbc2.PNG

環境によってDjangoのバージョンが一致しないことが原因の模様。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1