【问题标题】:What is the difference between connectionstring and dsn?连接字符串和dsn有什么区别?
【发布时间】:2018-07-28 21:48:07
【问题描述】:

我很难理解 dsn 和连接字符串之间的区别。我的问题在于 DS 可以给你数据库名称、数据库驱动程序、名称密码。 DSN 是否无法使用这些详细信息连接到数据库。我需要一个解释,因为这一直困扰着我很长时间 DSN 具有在数据库和客户端之间建立连接所需的详细信息,不是吗?如果有,为什么会有连接字符串?

请回答,感谢您抽出宝贵时间回答!

【问题讨论】:

  • 我很惊讶没有人回答这个问题。这是一个合法的问题,我遇到了麻烦。我得到的答案很模糊
  • 嗯,我刚刚看到了:)

标签: database datasource connection-string


【解决方案1】:

DSN 代表数据源名称,它作为用户或系统值保存在注册表中。如果它在那里,您可以仅通过其名称来引用连接。这样做看起来很诱人,许多旧样本实际上都在使用并鼓励使用 DSN。

但是,连接字符串是写成字符串的连接信息,不需要保存在注册表中。它可以即时构建,也可以构建并保存(可能加密)到开发人员选择的位置(甚至可能是另一个本地数据库)-(在某种意义上,开发人员当时发明了 DSN)。它具有更大的灵活性,许多开发人员更喜欢它而不是 DSN。

【讨论】:

  • 所以DSN和连接字符串的目的是一样的;与数据库连接但连接字符串有更多优势?还有“数据源=myServerAddress;初始目录=myDataBase;用户ID=myUsername;Password=myPassword;”有人说“myServerAddress”是DSN,而整个东西是连接字符串。但是连接字符串不是由“数据库名称目录数据库驱动程序用户 ID 密码”quote 组成,所以不是整个 DSN 吗?这是让我很困惑的部分
  • 那个“某人”是错的。 “myServerAddress”不是 DSN。也许连接字符串的“数据源”属性具有误导性(也用作“服务器”)。一个是数据源本身,另一个 (DSN) 是一个符号名称,指的是与数据源的整个连接。连接字符串“一般”但并不总是包含数据库名称。它包含驱动程序(或 OLEDB 情况下的提供程序)名称。为了避免混淆,您可以简单地认为 DSN 是指向整个连接字符串的简短的唯一“NAME”。
  • 我现在看到了,DSN 是与数据源的连接,就像连接一样,但连接字符串更灵活,因为您可以添加更多参数,例如“超时”我见过几次在连接字符串中 而 DSN 只是一个连接而已。非常感谢治愈了我可怕的疾病! :D
  • 您知道 SQL Server 是否将其连接字符串存储在某处吗?
  • @MSIS,不,它没有。
猜你喜欢
  • 2012-10-10
  • 2012-09-28
  • 1970-01-01
  • 1970-01-01
  • 2011-03-05
  • 1970-01-01
  • 1970-01-01
  • 2011-11-13
  • 2011-02-26
相关资源
最近更新 更多