Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I have a colleague who has two DSNs with the same name - one's a user DSN and the other, a system one. He removed the user DSN but can't remove the system DSN in ODBCad32

Anybody encountered this before?

share|improve this question
add comment

3 Answers 3

up vote 2 down vote accepted

I've seen this where a trailing period (.) was inserted at some point in the registry key backing the DSN, and it wouldn't edit or delete. Is it an Oracle DSN? If not, what driver is it using?

First test if you can add or remove another DSN, or if the whole panel has become useless.

Check which panel you're using. There's sometimes 2 copies of the panel in C:\Windows\SysWOW64\odbcad32.exe and C:\Windows\system32. Try both.

Next, try looking for the entry under HKLM/Software/ODBC. You may be able to edit or strip the entry there.

IIRC, DSNs show up in both panels but only the right build will delete or edit one.

share|improve this answer
    
thanks - tried removing it in registry, but got the message "error removing key", similar error when attempting to rename the key. It's just a SQL Server connection. –  Nick Feb 12 '10 at 11:38
add comment

Sounds like it may be a permissions issue. System DSNs are per-computer irrespective of who logs on, so you will need administrative access to the machine in order to remove or change it.

If you already have administrative access you will need to check the security on the key and take ownership if necessary.

share|improve this answer
    
+1 for the missing link –  Nick Feb 12 '10 at 13:21
add comment

I've just found a problem with the Jet drivers that might possibly apply to other ODBC drivers: If you create or modify a System DSN, and there is a User DSN with the same name, then the System DSN registry settings are incomplete - I gather they go into the User DSN config, instead.

The System DSN appears to work, because (at least the Jet) drivers look for both System DSN registry entries (under HKLM) and the User DSN entries (under HKCU). If you delete the User DSN, you get left with an incomplete System DSN - and your ODBC driver might not be robust enough to handle that.

FWIW, Dan Konigsbach

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.