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 Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analitik Platform Sistemi (PDW)
Microsoft Fabric'te SQL veritabanı
OLE DB sürücüsünü indirme
SQL Server için OLE DB Sürücüsü, tüketicinin tablo değerli parametre satırları için veri belirtmesi için iki model destekler: bir push modeli ve bir pull modeli.
Uyarı
Tablo değerli bir parametre sütununda ya tüm satırlarda varsayılan olmayan değerler ya da tüm satırlarda varsayılan değerler olmalıdır. Bazı satırlarda varsayılan değerler olabilir, bazılarında olmaz. Bu nedenle, tablo değerli parametre bağlamalarında, tablo değerli parametre satırı sütun verileri için izin verilen tek durum değerleri DBSTATUS_S_ISNULL ve DBSTATUS_S_OK'dir. DBSTATUS_S_DEFAULT bir başarısızlıkla sonuçlanır ve bağlı durum değeri DBSTATUS_E_BADSTATUS olarak ayarlanır.
Push Model (Tüm Table-Valued parametre verilerini bellekte yükler)
Push modeli, parametre kümelerinin kullanımına benzerdir (yani ICommand::Execute'daki DBPARAMS parametresi). Push modeli, yalnızca tablo değerli parametre satırkümesi nesneleri IRowset arayüzlerinin özelleştirilmiş bir uygulaması olmadan kullanılıyorsa kullanılır. Push modeli, tablo değerli parametre satırındaki satır sayısı az olduğunda ve uygulamaya aşırı bellek baskısı getirmemesi beklendiğinde önerilir. Bu, çekme modelinden daha basittir, çünkü tüketici uygulamasından tipik OLE DB uygulamalarında yaygın olandan daha fazla işlevsellik gerektirmez.
Tüketicinin, bir komutu çalıştırmadan önce tüm tablo değerli parametre verilerini sağlayıcıya sağlaması beklenir. Veriyi sağlamak için, tüketici her tablo değerli parametre için bir tablo değerli parametre satır kümesi nesnesi doldurur. Tablo değerli parametre sırakümesi nesnesi, tüketicinin tablo değerli parametre verilerini manipüle etmek için kullanacağı Satır kümesi Ekle, Set ve Silme işlemlerini sunar. Sağlayıcı, bu tablo değerli parametre sırası nesnesinden verileri çalıştırma zamanında getirir.
Bir tablo değerli parametre sırakümesi nesnesi tüketiciye sunulduğunda, tüketici bunu bir satır kümesi nesnesi olarak işleyebilir. Tüketici, her sütün tür bilgilerini (tür, maksimum uzunluk, hassasiyet ve ölçek) IColumnsInfo::GetColumnInfo veya IColumnsRowset::GetColumnsRowset arayüz yöntemiyle elde edebilir. Tüketici daha sonra veri için bağlamaları belirtmek üzere bir erişimci oluşturur. Sonraki adım, tablo değerli parametre satar kümesine veri satırları eklemektir. Bu, IRowsetChange::InsertRow kullanılarak yapılabilir. IRowsetChange::SetData veya IRowsetChange::D eleteRows da tablo değerli parametre sırası nesnesinde kullanılabilir, eğer veriyi manipüle etmeniz gerekirse. Tablo değerli parametre satır kümesi nesneleri, akış nesnelerine benzer şekilde referans sayılır.
Eğer IColumnsRowset::GetColumnsRowset kullanılırsa, çıkan sütunun satır kümesi nesnesinde IRowset::GetNextRows, IRowset::GetData ve IRowset::ReleaseRows yöntemlerine sonraki çağrılar olacaktır.
SQL Server için OLE DB Sürücüsü komutu çalıştırmaya başladıktan sonra, tablo değerli parametre değerleri bu tablo değerli parametre satırı nesnesinden alınır ve sunucuya gönderilir.
Push modeli, tüketiciden minimum çalışma gerektirir, ancak tüm tablo değerli parametre verilerinin işlem sırasında bellekte olması gerektiği için pull modelinden daha fazla bellek kullanır.
Pull Model (Tüketiciden Talep Üzerine Table-Valued Parametre Verisi Almak)
Çekme modeli iki senaryo için faydalıdır:
Sıra akışı için.
Eğer başka bir sağlayıcıdan gelen bir satır kümesi tablo değerli parametre değeri olarak kullanılıyorsa,
Çekme modelinde, tüketici talep üzerine veriyi sağlayıcıya sağlar. Uygulamanızda çok sayıda veri eklemesi varsa ve bellekte tablo değerinde parametre satırı veri olması aşırı bellek erişimine yol açacaksa bu yaklaşımı kullanın. Birden fazla OLE veritabanı sağlayıcısı kullanılırsa, tüketici çekme modeli tüketicinin herhangi bir satır kümesi nesnesini tablo değerli parametre değeri olarak sağlamasını sağlar.
Çekme modelini kullanmak için tüketicilerin kendi satir kümesi nesnesi uygulamasını sunmaları gerekir. Tablo değerli parametre sıralı setler (CLSID_ROWSET_TVP) ile çekilme modeli kullanılırken, tüketici, sağlayıcının ITableDefinitionWithConstraints::CreateTableWithConstraints yöntemi veya IOpenRowset::OpenRowset yöntemi aracılığıyla ortaya çıkardığı tablo değerli parametre sırası nesnesini toplaması gerekir. Tüketici nesnesinin yalnızca IRowset arayüz uygulamasını geçersiz kılması beklenmektedir. Aşağıdaki işlevleri geçersiz kılmalısınız:
IRowset::GetNextRows
IRowset::AddRefRows
IRowset::GetData
IRowset::ReleaseRows
IRowset::RestartPosition
SQL Server için OLE DB Sürücüsü, tüketici sıralar kümesi nesnesinden bir veya daha fazla satır okur ve tablo değerli parametrelerde akış davranışını destekler. Örneğin, kullanıcı tablo değerli parametre satırı verisini diskte (bellekte olmayan) taşıyabilir ve OLE DB Driver for SQL Server gerektiğinde diskten veri okuma işlevselliğini uygulayabilir.
Tüketici, veri formatını OLE DB Driver for SQL Server ile IAccessor::CreateAccessor kullanarak tablo değerli parametre sırası nesnesi üzerinde iletecektir. Tüketici tamponundan veri okunurken, sağlayıcı tüm yazılabilir ve varsayılan olmayan sütunların en az bir accessor handle üzerinden erişilebilir olup olmadığını doğrular ve ilgili tutamaçları sütun verilerini okumak için kullanır. Belirsizliği önlemek için, tablo değerli bir parametre satır kümesi sütunu ile bir bağlama arasında bire bir karşılık olmalıdır. Aynı sütuna tekrarlanan bağlamalar hata ile sonuçlanır. Ayrıca, her erişimçinin DBBindings'in iOrdinal üyesinin sırayla olması beklenmektedir. IRowset::GetData çağrısı sayısı, satır başına erişici sayısı kadar olur ve çağrıların sırası, iOrdinal değerin daha düşükten daha yüksek değerlere sırasına göre belirlenir.
Sağlayıcının, tablo değerli parametre sırası nesnesinin ortaya çıkardığı arayüzlerin çoğunu uygulaması beklenmektedir. Tüketici, minimum arayüzlü bir satır kümesi nesnesi (IRowset) uygular. Kör toplama nedeniyle, kalan zorunlu satır kümesi nesne arayüzleri, tablo değerli parametre sırası nesnesi tarafından uygulanacaktır.
Herhangi bir OLE DB sağlayıcısı için elde edilen sıralar kümesi nesneleri gibi diğer sıralar kümesi nesneleri için, tüketici tarafından sağlanan sıralar kümesi, OLE DB spesifikasyonunda belirtilen tüm zorunlu sıralar kümesi nesne arayüzlerini uygulamalıdır.
Çalıştırma anında, SQL Server için OLE DB Sürücüsü, satır kümesi nesnesini geri çağırarak satır alacak ve sütun verilerini okuyacaktır.
Ayrıca Bkz.
Table-Valued Parametreleri (OLE DB)
Table-Valued Parametrelerini Kullan (OLE DB)