1. ホーム
  2. database

[解決済み】「データソース名が見つからず、デフォルトのドライバが指定されていません」と表示される理由と解決方法について教えてください。

2022-01-26 03:10:22

質問内容

WindowsでODBC経由でデータベースに接続するプログラムを作ろうとしたら、次のようなエラーが発生した。

[Microsoft][ODBC Driver Manager] データソース名が見つからず、デフォルトのドライバも指定されていません。

私のコードは正しいはずです。別のPCでも動きました。

なぜこのエラーが発生するのでしょうか?また、どうすれば直るのでしょうか?

解決方法は?

このエラーの原因は何ですか?

このエラーメッセージは、簡単に言うと、ODBCドライバーマネージャが接続文字列またはDSNで指定したドライバーを見つけることができなかったということを伝えています。

この場合、3つの共通した原因が考えられます。

  1. 使用しようとしたドライバがシステムにインストールされていない
  2. ドライバはインストールされているが、実行中のコードのビットレートと一致しない。
  3. ドライバ名の入力に誤りがあります。

システムにインストールされているドライバを確認する方法は?

システムにインストールされているドライバは、ODBCデータソースアドミニストレータで確認することができます。これを開くには ⊞ Win + R と入力します。 odbcad32.exe . 次に、タブを確認します。 ドライバ をクリックすると、インストールされているドライバが表示されます。その 名称 列は、接続文字列または DSN で使用する正確な名前を示しています。

64ビットWindowsの場合、インストールされている64ビットドライバのみが表示されます。 システムです。どの32ビット・ドライバがインストールされているかを確認するために ⊞ Win + R と入力します。 C:\Windows\SysWOW64\odbcad32.exe に、そして ドライバ のタブを再度クリックします。

ドライバはインストールされましたが、ビット数が間違っているかもしれません。

その場合、プログラムが動作しているビットレートを調整するか、異なるビットレートを持つドライバをインストールするか、2つの選択肢があります。

Windowsに標準でインストールされているドライバの中には、32ビット版しかないものがあります。これらは64ビットのプログラムでは使用できません。

通常、プログラムがどのビット数で動作しているかは、タスクマネージャーで確認することができます。Windows 10 では、すべての 32 ビット プログラムの名前に (32 ビット) が追加されています。最近のプログラミング言語や環境は、デフォルトでは64ビットで動作しますが、32ビットに切り替えることも可能です。しかし、プログラミング言語の違いによる詳細については、この質問の範囲外です。

ドライバ名を間違えて入力していないことを確認するにはどうしたらいいですか?

ODBCの接続文字列は以下のようなものです。

DRIVER={DriverName};ParameterName1=ParameterValue1;ParameterNameN=ParameterValueN;

ドライバ名の部分は、特殊文字を含む可能性がある場合は中括弧で区切り、ODBCデータソース管理で見つけたインストール済みのドライバ名と正確に一致させる必要があります(スペースやタイプ文字を含みますが、大文字は除きます)。

なお、デプロイされたコードでは、ドライバの コードを実行しているコンピュータ/サーバー上に存在すること。

ドライバを持っていない、またはビット数が間違っているのですが、どこで入手できますか?

どのドライバを使うかによります。

一般的なドライバの一覧とダウンロード先(32ビットと64ビットをすべて同じURLで提供)です。

使用したいドライバがリストにない場合、その場所は通常Googleで簡単に見つけることができます。