ODBC Yöneticisi aracı, hem 32 bit hem de 64 bit kullanıcı DSN'lerini, 64 bit Windows sürümünde gösterir

Bu makalede, ODBC Veri Kaynağı Yöneticisi aracında oluşan sorun için geçici çözüm sağlanır.

Özgün ürün sürümü: SQL Server
Orijinal KB numarası: 942976

Belirtiler

Microsoft Windows işletim sisteminin 64 bit sürümü ODBC Veri Kaynağı Yöneticisi aracının aşağıdaki sürümlerini içerir (Odbcad32.exe):

  • Odbcad32.exe dosyasının 32 bit sürümü klasörde bulunur%systemdrive%\Windows\System32.
  • Odbcad32.exe dosyasının 64 bit sürümü klasörde bulunur%systemdrive%\Windows\SysWoW64.

Odbcad32.exe dosyası aşağıdaki veri kaynağı adı türlerini (DSN) görüntüler:

  • Sistem DSN'leri
  • Kullanıcı DSN'leri

Belirti 1

ODBC Yönetici aracının 32 bit sürümü, 32 bit sistem DSN'lerini, 32 bit kullanıcı DSN'lerini ve 64 bit kullanıcı DSN'lerini görüntüler. ODBC Yönetici aracının 64 bit sürümü, 64 bit sistem DSN'lerini, 32 bit kullanıcı DSN'lerini ve 64 bit kullanıcı DSN'lerini görüntüler.

Belirti 2

SQLDataSources işlevi, uygulamanın mimarisinden bağımsız olarak kullanıcı DSN'lerinin tüm sürümlerini döndürür. 32 bit bir uygulamada çağrılan SQLDataSources işlevi, yalnızca 32 bit sürücüler için sistem DSN'lerini döndürür ancak hem 32 bit sürücüler hem de 64 bit sürücüler için kullanıcı DSN'lerini döndürür. Benzer şekilde 64 bit bir uygulamada çağrılan SQLDataSources işlevi, yalnızca 64 bit sürücüler için sistem DSN'lerini döndürür ancak hem 32 bit sürücüler hem de 64 bit sürücüler için kullanıcı DSN'lerini döndürür. Bu nedenle uygulama, SQLDataSources işlevinden döndürülen bir kullanıcı DSN'sini kullanarak bağlantı kurarsa aşağıdaki hata iletisini alabilirsiniz:

Veri kaynağı adı bulunamadı ve varsayılan sürücü belirtilmedi

Örneğin, şu senaryoyu inceleyin: 'Microsoft Access Sürücüsü (*.mdb)' 32 bit sürücüsü için kullanıcı DSN'sini oluşturursunuz. Bu sürücünün karşılık gelen 64 bit sürümü yok. 64 bit uygulamada çağrılan SQLDataSources işlevi, bu 32 bit kullanıcı DSN'sini döndürür. Ancak bu 32 bit kullanıcı DSN'sini kullanarak bağlantı yaparsanız bu bölümün başlarında bahsedilen hata iletisini alırsınız.

Neden

Kullanıcı DSN'leri aşağıdaki kayıt defteri alt anahtarı altında depolanır:

HKEY_CURRENT_USER\Software\ODBC\ODBC.INI

Bu kayıt defteri alt anahtarı için kayıt defteri yeniden yönlendirmesi etkinleştirilmedi. Bu nedenle, ODBC Yönetici aracının hem 32 bit hem de 64 bit sürümlerinde kullanıcı DSN'leri görünür.

Çözüm

Geriye dönük uyumluluğu korumak için şu anda bu sorunun çözümü yoktur.

Geçici Çözüm

Bu sorunu geçici olarak çözmek için ODBC Yönetici aracının uygun sürümünü kullanın. Bir uygulamayı 64 bit işletim sisteminde 32 bit uygulama olarak derleyip çalıştırırsanız ODBC veri kaynağını oluşturmak için ODBC Yönetici aracını kullanmanız %windir%\SysWOW64\odbcad32.exe gerekir. DSN türünü belirtmek için 32 bit kullanıcı DSN'lerine '_32' ve 64 bit kullanıcı DSN'lerine '_64' ekleyebilirsiniz.

Daha fazla bilgi

64 bit ODBC Yönetici aracı, 64 bit işlemler tarafından kullanılan kullanıcı DSN'lerini ve sistem DSN'lerini yönetmek için Denetim Masası'ndan çağrılabilir. Bir 64 bit işletim sisteminde, Windows 64 (WOW64) işlemlerinde Windows için 32 bit ODBC Yönetici aracı kullanılır. SysWoW64 klasöründen doğrudan 32 bit ODBC Yönetici aracını çağırmanız gerekir. WOW64 işlemleri tarafından kullanılan kullanıcı DSN'lerini ve sistem DSN'lerini yönetmek için 32 bit ODBC Yönetici aracını kullanabilirsiniz.

Sistem DSN'leri, aşağıdaki kayıt defteri alt anahtarında depolanır:

HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI

Bu kayıt defteri alt anahtarı için kayıt defteri yeniden yönlendirmesi etkinleştirildi. Bu nedenle, 32 bit sürücüler ve 64 bit sürücüler için sistem DSN'leri ayrılır. 64 bit ODBC Yönetici aracı, 32 bit ODBC Yönetici aracı tarafından oluşturulan sistem DSN'lerini görüntülemez. Benzer şekilde, 32 bit ODBC Yöneticisi aracı 64 bit ODBC Yönetici aracı tarafından oluşturulan sistem DSN'lerini görüntülemez. Ayrıca, 64 bit ODBC Yöneticisi aracı 32 bit sürücüleri kullanan sistem DSN'lerini görüntülemez. Benzer şekilde, 32 bit ODBC Yöneticisi aracı 64 bit sürücüleri kullanan sistem DSN'lerini görüntülemez.

Kullanıcı DSN'leri, aşağıdaki kayıt defteri alt anahtarında depolanır:

HKEY_CURRENT_USER\Software\ODBC\ODBC.INI

Bu kayıt defteri alt anahtarı için kayıt defteri yeniden yönlendirmesi etkinleştirilmedi. Bu nedenle, her iki ODBC Administrator aracı da tüm kullanıcı DSN'lerini görüntüler.

Kayıt defteri yeniden yönlendirmesi hakkında daha fazla bilgi için bkz. Kayıt Defteri Yeniden Yönlendiricisi.