DSNおよびUDLタイプの違い

更新しました Nov 23, 2018

使用製品

Software

  • LabVIEW Database Connectivity Toolkit
  • LabVIEW Professional
  • LabVIEW Full
  • LabVIEW Base

問題

システムDSN、ユーザーDSN、ファイルDSN、汎用データリンク(UDL)、およびDSNレス接続の違いは何ですか?

解決策

データソース名(DSN: Data source name)は、データベースについての情報を含むデータ構造です。この情報は、データベースと接続するために必要です。汎用データリンク(UDL、Microsoftデータリンクとも知られる)は、データベースにリンクする汎用ファイルです。

数多くのデータベースドライバ(またはプロバイダ)があり、接続方法もさまざまです。下記の表は、データベースプロバイダとやりとりできる5つの一般的な方法です。
 
接続方法アクセス可能な相手先接続情報の保存先
File DSNファイルにアクセスできるユーザファイルフォーマット内(*.dsn)
System DSNシステム上のユーザシステムレジストリ
User DSNデータソースを作成したユーザのみシステムレジストリ
UDL (Universal Data Link)ファイルにアクセスできるユーザファイルフォーマット内(*.udl)
DSN-lessデータベースファイルに接続できるもの(たとえば、mdb、.xls)接続情報の静的保存場所はなし(ランタイム時接続文字列としてパスされる)

追加情報

システムDSN
システムDSNは、システムを使用しているユーザなら誰で使用可能です。たとえば、マシンにログが残ってもシステムDSNはすべてのユーザによって見ることができ、それらはローカルマシンのレジストリセクションに保存されます。

ユーザDSN
ユーザーDSNは、マシン上で特定のユーザのみが使用できます。そのため、マシン上でユーザーDSNログを作成した人以外の場合、ユーザーDSNは表示されません。このDSNは、レジストリのCurrent Userの項目に保存されます。

ファイルDSN
ファイルDSNは、レジストリではなく、ファイル内に保存されます。これは、このDSNをディスクまたはネットワークに保存し、マシン上もしくはアクセスできる任意のユーザが使用できることを意味します。

UDL
NI Database Connectivity Toolkitは、OLE DBを使用してデータベースと接続します。DSNを使用する場合、コマンドはODBC用OLE DBプロバイダを通してOLE DBからODBCに変換させる必要があります。そのため、より効果的でお勧めなのは、OLE DBプロバイダがデータベースを利用可能な場合、ツールキットと接続する方法としてUDLを使用することです。

DSNレス
DSNレスは、接続情報を保存するためにDSNを使用しないことを意味します。その代わり、ランタイム(SQL Query Analyzerは良い例です)でユーザにプロンプトするか、例えばレジストリ、INIファイル、または表など他に同等の情報を保存するかのどちらか一方となります。ユーザがさまざまなソースに接続するダイナミック接続を正確に提供する必要がある場合、多くの開発者はDSNレス接続を採用します。そして、レジストリに接続文字列を保存し、有効なDSNの存在を確認するために要求を取り除く必要があります。

この記事はお役に立ちましたか?

いいえ