DSN类型与UDL类型的区别

更新 Nov 16, 2018

适用于

Software

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

问题详述

系统DSN(System DSN), 用户DSN(User DSN),文件DSN(File DSN), 通用数据链接(Universal Data Link (UDL)), 和DSN-less 链接之间有什么区别?

解决方案

数据源名称(DSN)是包含有关数据库信息的数据结构。需要该信息才能连接到数据库。通用数据链接(UDL,也称为Microsoft数据链接)是链接到数据库的通用文件。

我们有许多连接方式来连接不同的数据库驱动程序。下表列出了可以与数据库进行程序交互的五种最常用方法。

 
连接方法谁可以访问他们?存储连接信息的位置
文件DSN任何有权访问该文件的用户以文件格式(* .dsn)
系统DSN该系统上的任何用户系统注册表
用户DSN只能被创建其数据源的用户访问系统注册表
UDL(通用数据链接)任何有权访问该文件的用户以文件格式(* .udl)
DSN-less有权访问数据库文件的任何用户(即mdb,.xls)无连接信息的静态存储(运行时以连接字符串形式流过)

相关信息

系统DSN
系统DSN适用于使用该系统的用户。例如,无论用户是否登录机器,用户都可以查看到系统DSN,并且这些系统DSN被储存在注册表中的本地计算机部分。

用户DSN
用户DSN只适用于计算机上的特定用户。因此,除了创建用户DSN的用户外,其它用户如果登录到该计算机,将不能查看到用户DSN。用户DSN被储存在注册表中当前用户部分。

文件DSN
文件DSN不是存储在注册表中,而是在文件中。这表明,你可以将这些DSN储存在硬盘或者网络中,并将它们应用在任何计算机或者任何有权访问该DSN的用户。

UDLs
National Instrument's的数据库链接工具包使用OLEDB与数据库进行通信。如果使用DSN的话,该命令必须通过OLE DB Provider for ODBC从OLEDB转化为ODBC。因此,如果OLEDB提供者可以用来访问数据库的话,我们还是推荐使用UDL链接方式,因为它更加有效。

DSN-less
DSN-less意味着你不需要DSN来储存连接信息。相反,你可以通过在运行时提示用户操作(Query Analyzer 是个很好的范例)或者将等效的信息存储在注册表、INI文件,甚至表格中。如果你打算使用动态链接的方式连接到不同的数据库源的话,那么DSN-less是一个方便的选择。许多程序开发者选择DSN-less链接方式,并将链接字符串保存在注册表中,这就省去了使得应用程序的合法DSN必须存在的必要性。

本文是否有帮助?

无帮助