Nick Asked: 2010-02-13 03:09:40 +0800 CST2010-02-13 03:09:40 +0800 CST 2010-02-13 03:09:40 +0800 CST ODBC:删除系统 DSN 时遇到问题 772 我有一个同事,他有两个同名的 DSN——一个是用户 DSN,另一个是系统 DSN。他删除了用户 DSN 但无法删除 ODBCad32 中的系统 DSN 有人遇到过这个吗? windows-xp sql odbc dsn 3 个回答 Voted Best Answer Chris Thorpe 2010-02-13T03:15:40+08:002010-02-13T03:15:40+08:00 我已经看到在支持 DSN 的注册表项中的某个位置插入了一个尾随句点 (.),并且它不会编辑或删除。它是 Oracle DSN 吗?如果不是,它使用的是什么驱动程序? 首先测试您是否可以添加或删除另一个 DSN,或者整个面板是否变得无用。 检查您正在使用哪个面板。有时C:\Windows\SysWOW64\odbcad32.exe(令人惊讶的是,32 位)和C:\Windows\system32\odbcad32.exe(令人惊讶的是,64 位)中的面板有 2 个副本。尝试两者。 接下来,尝试在 下查找条目HKLM/Software/ODBC。您可以在那里编辑或删除条目。 用户 DSN 显示在两个面板中,但只有位数匹配的管理员可以删除或编辑一个。 Maximus Minimus 2010-02-13T03:49:22+08:002010-02-13T03:49:22+08:00 听起来可能是权限问题。无论谁登录,系统 DSN 都是每台计算机的,因此您需要对计算机进行管理访问才能删除或更改它。 如果您已经拥有管理权限,则需要检查密钥的安全性并在必要时取得所有权。 Dan Konigsbach 2010-07-13T10:32:40+08:002010-07-13T10:32:40+08:00 我刚刚发现可能适用于其他 ODBC 驱动程序的 Jet 驱动程序存在问题:如果您创建或修改系统 DSN,并且存在同名的用户 DSN,则系统 DSN 注册表设置不完整 - 我收集他们进入用户 DSN 配置,而不是。 系统 DSN 似乎可以工作,因为(至少是 Jet)驱动程序会查找系统 DSN 注册表项(在 HKLM 下)和用户 DSN 项(在 HKCU 下)。如果您删除用户 DSN,您将得到一个不完整的系统 DSN - 您的 ODBC 驱动程序可能不够健壮,无法处理它。 FWIW,丹·柯尼格斯巴赫
我已经看到在支持 DSN 的注册表项中的某个位置插入了一个尾随句点 (.),并且它不会编辑或删除。它是 Oracle DSN 吗?如果不是,它使用的是什么驱动程序?
首先测试您是否可以添加或删除另一个 DSN,或者整个面板是否变得无用。
检查您正在使用哪个面板。有时
C:\Windows\SysWOW64\odbcad32.exe
(令人惊讶的是,32 位)和C:\Windows\system32\odbcad32.exe
(令人惊讶的是,64 位)中的面板有 2 个副本。尝试两者。接下来,尝试在 下查找条目
HKLM/Software/ODBC
。您可以在那里编辑或删除条目。用户 DSN 显示在两个面板中,但只有位数匹配的管理员可以删除或编辑一个。
听起来可能是权限问题。无论谁登录,系统 DSN 都是每台计算机的,因此您需要对计算机进行管理访问才能删除或更改它。
如果您已经拥有管理权限,则需要检查密钥的安全性并在必要时取得所有权。
我刚刚发现可能适用于其他 ODBC 驱动程序的 Jet 驱动程序存在问题:如果您创建或修改系统 DSN,并且存在同名的用户 DSN,则系统 DSN 注册表设置不完整 - 我收集他们进入用户 DSN 配置,而不是。
系统 DSN 似乎可以工作,因为(至少是 Jet)驱动程序会查找系统 DSN 注册表项(在 HKLM 下)和用户 DSN 项(在 HKCU 下)。如果您删除用户 DSN,您将得到一个不完整的系统 DSN - 您的 ODBC 驱动程序可能不够健壮,无法处理它。
FWIW,丹·柯尼格斯巴赫