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.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analytics Platform System (PDW)
Important
SQL Server Native Client (SNAC) ile birlikte gönderilmez:
- SQL Server 2022 (16.x) ve sonraki sürümleri
- SQL Server Management Studio 19 ve sonraki sürümleri
YENI uygulama geliştirme için SQL Server Yerel İstemcisi (SQLNCLI veya SQLNCLI11) ve SQL Server için eski Microsoft OLE DB Sağlayıcısı (SQLOLEDB) önerilmez.
Yeni projeler için aşağıdaki sürücülerden birini kullanın:
SQL Server Veritabanı Altyapısı'nın (sürüm 2012 ile 2019 arasında) bir bileşeni olarak gelen SQLNCLI için, Destek Yaşam Döngüsü özel durumukonusuna bakın.
SQL Server 2005 (9.x)'te tanıtılan çoklu aktif sonuç kümeleri (MARS), sorgu bildirimleri, kullanıcı tanımlı türler (UDT'ler) veya yeni xml veri tipi gibi yeni özelliklerden faydalanmak için, ActiveX Veri Nesneleri (ADO) kullanan mevcut uygulamalar, veri erişim sağlayıcısı olarak SQL Server Native Client OLE DB sağlayıcısını kullanmalıdır.
SQL Server 2005 (9.x)'de tanıtılan yeni özelliklerden hiçbirini kullanmanız gerekmiyorsa, SQL Server Native Client OLE veritabanı sağlayıcısını kullanmanıza gerek yoktur; mevcut veri erişim sağlayıcınızı kullanmaya devam edebilirsiniz; genellikle SQLOLEDB olan mevcut veri erişim sağlayıcınız. Mevcut bir uygulamayı geliştiriyorsanız ve SQL Server 2005 (9.x)'de tanıtılan yeni özellikleri kullanmanız gerekiyorsa, SQL Server Native Client OLE DB sağlayıcısını kullanmalısınız.
Note
Yeni bir uygulama geliştiriyorsanız, ADO.NET ve .NET Framework Veri Sağlayıcısı SQL Server SQL Server yerine SQL Server sürümlerinin tüm yeni özelliklerine erişmek için Native Client yerine kullanmanız önerilir. .NET Framework Veri Sağlayıcısı for SQL Server hakkında daha fazla bilgi için ADO.NET için .NET Framework SDK dokümantasyonuna bakınız.
ADO'nun son SQL Server sürümlerinin yeni özelliklerini kullanmasını sağlamak için, SQL Server Native Client OLE DB sağlayıcısında bazı iyileştirmeler yapıldı ve bu da OLE DB'nin temel özelliklerini genişletti. Bu geliştirmeler, ADO uygulamalarının daha yeni SQL Server özelliklerini kullanmasına ve SQL Server 2005 (9.x)'de tanıtılan iki veri tipini tüketmesine olanak tanır: xml ve udt. Bu geliştirmeler ayrıca varchar, nvarchar ve varbinary veri tiplerindeki iyileştirmelerden de yararlanır. SQL Server Native Client, SSPROP_INIT_DATATYPECOMPATIBILITY başlatma özelliğini ADO uygulamaları tarafından kullanılmak üzere DBPROPSET_SQLSERVERDBINIT özellik setine ekler; böylece yeni veri türleri ADO ile uyumlu şekilde görünür. Ayrıca, SQL Server Native Client OLE DB sağlayıcısı, bağlantı dizesi'de ayarlanan DataTypeCompatibility adlı yeni bir bağlantı dizesi anahtar kelimesi de tanımlar.
Note
Mevcut ADO uygulamaları, SQLOLEDB sağlayıcısını kullanarak XML, UDT ve büyük değerli metin ile ikili alan değerlerine erişebilir ve güncelleyebilmektedir. Yeni daha büyük varchar(max), nvarchar(max) ve varbinary(max) veri türleri sırasıyla adLongVarChar, adLongVarWChar ve adLongVarBinary olarak döndürülür. XML sütunları adLongVarChar olarak, UDT sütunları ise adVarBinary olarak döner. Ancak, SQLOLEDB yerine SQL Server Native Client OLE DB sağlayıcısını (SQLNCLI11) kullanıyorsanız, yeni veri türlerinin ADO veri tiplerine doğru eşlemesi için DataTypeCompatibility anahtar kelimesini "80" olarak ayarladığınızdan emin olmalısınız.
ADO'dan SQL Server Yerel İstemciyi etkinleştirmek
SQL Server Native Client kullanımını mümkün kılmak için, ADO uygulamalarının bağlantı dizislerinde aşağıdaki anahtar kelimeleri uygulamaları gerekecektir:
Provider=SQLNCLI11DataTypeCompatibility=80
SQL Server Native Client'ta desteklenen ADO bağlantıları dizisi anahtar kelimeleri hakkında daha fazla bilgi için bkz. SQL Server Native Client ile Bağlantı Dizisi Anahtar Kelimelerini Kullanmak.
Aşağıda, SQL Server Native Client ile çalışmak üzere tamamen etkinleştirilmiş bir ADO bağlantı dizesi kurma örneği verilmiştir; MARS özelliğinin etkinleştirilmesi de dahildir:
Dim con As New ADODB.Connection
con.ConnectionString = "Provider=SQLNCLI11;" _
& "Server=(local);" _
& "Database=AdventureWorks;" _
& "Integrated Security=SSPI;" _
& "DataTypeCompatibility=80;" _
& "MARS Connection=True;"
con.Open
Examples
Aşağıdaki bölümler, SQL Server Native Client OLE DB sağlayıcısı ile ADO'yu nasıl kullanabileceğinize dair örnekler sunmaktadır.
XML Sütun Verilerinin Alınması
Bu örnekte, bir kayıt seti, SQL Server AdventureWorks örnek veritabanındaki bir XML sütunundan veri almak ve görüntülemek için kullanılır.
Dim con As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim sXMLResult As String
con.ConnectionString = "Provider=SQLNCLI11;" _
& "Server=(local);" _
& "Database=AdventureWorks;" _
& "Integrated Security=SSPI;" _
& "DataTypeCompatibility=80;"
con.Open
' Get the xml data as a recordset.
Set rst.ActiveConnection = con
rst.Source = "SELECT AdditionalContactInfo FROM Person.Contact " _
& "WHERE AdditionalContactInfo IS NOT NULL"
rst.Open
' Display the data in the recordset.
While (Not rst.EOF)
sXMLResult = rst.Fields("AdditionalContactInfo").Value
Debug.Print (sXMLResult)
rst.MoveNext
End While
con.Close
Set con = Nothing
Note
Kayıt kümesi filtreleme XML sütunlarıyla desteklenmez. Kullanılırsa hata geri dönecektir.
UDT Sütun Verilerinin Alınması
Bu örnekte, bir Command nesnesi bir SQL sorgusunu çalıştırmak için kullanılır; bu sorgu UDT döndürür, UDT veri güncellenir ve ardından yeni veri veritabanına geri eklenir. Bu örnek, Point UDT'nin zaten veritabanında kayıtlı olduğunu varsayar.
Dim con As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rst As New ADODB.Recordset
Dim strOldUDT As String
Dim strNewUDT As String
Dim aryTempUDT() As String
Dim strTempID As String
Dim i As Integer
con.ConnectionString = "Provider=SQLNCLI11;" _
& "Server=(local);" _
& "Database=AdventureWorks;" _
& "Integrated Security=SSPI;" _
& "DataTypeCompatibility=80;"
con.Open
' Get the UDT value.
Set cmd.ActiveConnection = con
cmd.CommandText = "SELECT ID, Pnt FROM dbo.Points.ToString()"
Set rst = cmd.Execute
strTempID = rst.Fields(0).Value
strOldUDT = rst.Fields(1).Value
' Do something with the UDT by adding i to each point.
arytempUDT = Split(strOldUDT, ",")
i = 3
strNewUDT = LTrim(Str(Int(aryTempUDT(0)) + i)) + "," + _
LTrim(Str(Int(aryTempUDT(1)) + i))
' Insert the new value back into the database.
cmd.CommandText = "UPDATE dbo.Points SET Pnt = '" + strNewUDT + _
"' WHERE ID = '" + strTempID + "'"
cmd.Execute
con.Close
Set con = Nothing
MARS'ı etkinleştirmek ve kullanmak
Bu örnekte, bağlantı dizesi, SQL Server Native Client OLE DB sağlayıcısı aracılığıyla MARS'ı etkinleştirmek için oluşturulur ve ardından aynı bağlantı kullanılarak çalıştırılacak iki kayıt seti nesnesi oluşturulur.
Dim con As New ADODB.Connection
con.ConnectionString = "Provider=SQLNCLI11;" _
& "Server=(local);" _
& "Database=AdventureWorks;" _
& "Integrated Security=SSPI;" _
& "DataTypeCompatibility=80;" _
& "MARS Connection=True;"
con.Open
Dim recordset1 As New ADODB.Recordset
Dim recordset2 As New ADODB.Recordset
Dim recordsaffected As Integer
Set recordset1 = con.Execute("SELECT * FROM Table1", recordsaffected, adCmdText)
Set recordset2 = con.Execute("SELECT * FROM Table2", recordsaffected, adCmdText)
con.Close
Set con = Nothing
OLE DB sağlayıcısının önceki sürümlerinde, bu kod ikinci yürütmede örtük bir bağlantı oluşturulmasına neden olurdu çünkü tek bir bağlantı için yalnızca bir aktif sonuç seti açılabilirdi. Örtük bağlantı OLE DB bağlantı havuzunda havuzlanmadığı için ek yük oluşur. SQL Server Native Client OLE DB sağlayıcısının MARS özelliğiyle tek bir bağlantıda birden fazla aktif sonuç elde ediyorsunuz.