Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Nesne Bağlama ve Ekleme Veritabanı (OLE DB), OLE DB sağlayıcılarını kullanarak uygulamaları çeşitli veri kaynaklarına bağlamak için kullanılan bir Microsoft veri erişim teknolojisidir. OLE DB sürücü yüklemelerinde ve doğrulamalarında sorun giderme karmaşık olabilir, ancak sorunsuz veritabanı etkileşimi için çok önemlidir. Bu sorun giderme kılavuzu, OLE DB sürücüleriyle ilgili sorunların yüklenmesi, doğrulanması ve çözümü hakkında içgörüler sağlamayı amaçlar.
PowerShell aracılığıyla OLE DB sürücüsünü veya sağlayıcısını doğrulama
SQL Server için en son OLE DB sürücüsünün işletim sisteminde yüklü olup olmadığını doğrulamak için yönetici olarak aşağıdaki PowerShell cmdlet'ini çalıştırın.
Get-ChildItem -Path "HKLM:\SOFTWARE\Microsoft", "HKLM:\SOFTWARE\Wow6432Node\Microsoft" |
Where-Object { $_.Name -like "*MSOLEDBSQL*" } |
ForEach-Object { Get-ItemProperty $_.PSPath }
İşletim sisteminde 18 ve 19 sürümü yüklüyse çıkış şuna benzer olabilir.
InstalledVersion : 18.7.4.0
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSOLEDBSQL
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft
PSChildName : MSOLEDBSQL
PSProvider : Microsoft.PowerShell.Core\Registry
InstalledVersion : 19.4.1.0
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSOLEDBSQL19
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft
PSChildName : MSOLEDBSQL19
PSProvider : Microsoft.PowerShell.Core\Registry
InstalledVersion : 18.7.4.0
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSOLEDBSQL
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft
PSChildName : MSOLEDBSQL
PSProvider : Microsoft.PowerShell.Core\Registry
InstalledVersion : 19.4.1.0
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSOLEDBSQL19
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft
PSChildName : MSOLEDBSQL19
PSProvider : Microsoft.PowerShell.Core\Registry
OLE DB sağlayıcı arabirimi (SQLNCLI) yüklemesini denetlemek için yönetici olarak aşağıdaki PowerShell cmdlet'ini çalıştırın.
Get-ChildItem -Path "HKLM:\SOFTWARE\Microsoft", "HKLM:\SOFTWARE\Wow6432Node\Microsoft" |
Where-Object { $_.Name -like "*SQLNCLi*" } |
ForEach-Object { Get-ItemProperty $_.PSPath}
UDL dosyası aracılığıyla OLE DB sürücüsünü doğrulama
OLE DB sürücüsünü test etmenin en kolay yollarından biri Evrensel Veri Bağlantısı (UDL) dosyası kullanmaktır. Windows Gezgini'nde herhangi bir metin dosyası oluşturun ve .udl dosya uzantısına sahip olacak şekilde yeniden adlandırın. Değişikliği yapmak için dosya uzantılarının açık olduğundan emin olun. Yüklü sağlayıcıları görebileceğiniz ve bağlantılarını test ettiğiniz bir iletişim kutusu açmak için dosyaya çift tıklayın. Daha fazla bilgi için bkz. UDL dosyası kullanarak SQL Server'a OLE DB bağlantısını test etme.
Yapılandırmayı onaylamak için iletişim kutusunda Tamam'ı seçin.
UDL dosya içeriğini inceleme
UDL dosyasını bir metin düzenleyicisinde açarsanız, bağlantı dizesini uygulamanızda kullanmak üzere kopyalayabilirsiniz. Burada iki örnek verilmiştir:
Provider=MSOLEDBSQL.1;Integrated Security=SSPI;Persist Security Info=False;User ID="";Initial Catalog=master;Data Source=localhost;Initial File Name="";Server SPN="";Authentication="";Access Token=""
Provider=SQLNCLI11.1;Integrated Security="";Persist Security Info=False;User ID=sa;Initial Catalog=AdventureWorks;Data Source=tcp:SQLProd01.contoso.com,1433;Initial File Name="";Server SPN=""
OLE DB sürücüsünü doğrulama
Bir sürücüyü doğrulamanın ilk adımı, adın önceki bölümde gösterildiği gibi 64 bit veya 32 bit UDL iletişim kutusunun yüklü sağlayıcıları listesinde görünüp görünmediğini görmektir. Aksi takdirde sağlayıcıyı yeniden yüklemeniz veya satıcıya danışmanız gerekir.
Kayıt defterinde sürücü konumunu da izleyebilirsiniz. Sürücü adı bir COM ProgID'dir ve bunu HKEY_CLASSES_ROOT bulabilirsiniz.
Örnek olarak SQL Server Yerel İstemci sürücüsünü kullanarak, aşağıdaki görüntüde ProgID SQLNCLI11.1 ile SQL Server Native Client 11.0 sağlayıcı adı arasındaki eşlemeyi görebilirsiniz.
Hem 32 bit hem de 64 bit sağlayıcıların ProgID değeri aynı anahtar altında görünür.
SQLNCLI11.1'e ek olarak, SQLNCLI11 adlı bir ProgID de vardır. Bunun nedeni, bir sağlayıcı geliştiricisinin her biri farklı bir sayısal soneki olan aynı sağlayıcının birden çok sürümünün yan yana yüklenmesine izin verebilmesidir. Numaralandırılmamış ad, sürümden bağımsız ProgID'dir. Uygulamalar buna işaret edebilir ve sağlayıcının en son sürümüne yönlendirilebilir.
Tüm amaçlar ve amaçlar için bu iki farklı ProgID adı eşdeğer olmalıdır. Ancak, bunların olmadığı durumlar olabilir. Bu gibi durumlarda, sürümden bağımsız adı kullanan uygulamalar bağlanamaz, ancak sürümlenmiş ProgID'yi kullanıyorsa bağlanabilirler. Bunun nedeni, iki girdinin farklı CLSID değerlerine işaret ediyor olmasıdır ve bu da sağlayıcı DLL'sinin nasıl bulunduğunu gösterir.
CLSID, COM GUID'dir. COM altyapısı, Guid değerini ProgID'den bulur. Ardından GUID değeri anahtar adıyla eşleşen bir anahtarın anahtarının altına HKEY_CLASSES_ROOT\CLSID bakar:
Değer sağlayıcı InProcServer32 DLL'sini gösterir.
32 bit sağlayıcılar için COM aynı GUID'yi kullanır ancak altında HKEY_CLASSES_ROOT\Wow6432Node\CLSIDarar.
Bu durumda sağlayıcı SysWow64 klasöründe bulunur.
Not
Bu örnekler 64 bit makinelerden alınıyor. 32 bit makinelerde kayıt defterinde yok Wow6432Node .
Bu kayıt defteri anahtarları, 64 bit makineler için Kayıt Defteri Düzenleyicisi'nde SQL Native Client 11.0'ın yollarıdır:
HKEY_CLASSES_ROOT\SQLNCLI.1\CLSIDHKEY_CLASSES_ROOT\CLSID\<guid>\InProcServer32HKEY_CLASSES_ROOT\Wow6432Node\CLSID\<guid>\InProcServer32
32 bit makineler için Kayıt Defteri Düzenleyicisi'ndeki yollar şunlardır:
HKEY_CLASSES_ROOT\SQLNCLI.1\CLSIDHKEY_CLASSES_ROOT\CLSID\{guid}\InProcServer32
Microsoft dışı sağlayıcılar için destek
Microsoft olmayan OLE DB sağlayıcıları için teknik destek, ProgID işaretlerini geçerli bir CLSID'ye ve alt anahtarın InProcServer32 doğru DLL'ye işaret ettiğini doğrulamakla sınırlıdır. Yol yanlışsa veya kayıt defteri girişi yoksa sağlayıcıyı yeniden yükleyin veya satıcıya başvurun. Dosyalar varsa ancak kayıt defteri girdileri yoksa sağlayıcıyı kullanarak REGSVR32el ile kaydedebilirsiniz. COM DLL'sini kaydetmek için yükseltilmiş bir komut isteminde aşağıdaki komutu çalıştırın:
Regsvr32 sqlncli11
Sağlayıcının hem 32 bit hem de 64 bit sürümleri varsa, komutu her iki DLL'de de çalıştırın. 32 bit DLL'yi kaydetmek için 32 bit komut istemi kullanın.