Tablo biçiminde Parameter satır kümesi oluşturma
Tüketiciler için tablo değerli parametreleri herhangi bir satır kümesi nesnesi sağlayabilir, ancak normal satır nesneler, arka uç veri depoları karşı uygulanır ve bu nedenle, sınırlı bir performans sağlar.Bu nedenle, SQL Server Yerel istemci OLE DB sağlayıcı, tüketicilerin, bellekteki veri üstünde bir özel bir satır kümesi nesnesi oluşturmak etkinleştirir. Tablo değerli parametre satır kümesi adlı yeni bir COM nesnesi bu satır kümesi kümesi, özel, bellek içi nesnedir.Bu parametre kümesi için benzer işlevsellik sağlar.
Tablo değerli parametre satır kümesi nesneler açıkça birden çok oturum düzey arabirimi üzerinden giriş parametreleri için Tüketici tarafından oluşturulur.Bir tablo değerli parametresi bir örnek satır kümesi nesne başına tablo değerli bir parametre.Tüketici, tablo değerli parametre oluşturabilirsiniz satır kümesi nesneleri zaten (statik senaryosu) olarak da bilinir meta veriler bilgi sağlama, veya bu sağlayıcıyı arabirimler aracılığıyla (dinamik senaryosu)'i keşfedin.Aşağıdaki bölümler, bu iki senaryo açıklamaktadır.
Statik senaryosu
Bilinen bir tür bilgileri, tüketici kullanır. ITableDefinitionWithConstraints::CreateTableWithConstraints tablo değerli bir parametreye karşılık gelen tablo değerli parametresi bir satır kümesi nesnesi için .
The guid alan (pTableID parameter) contains the special GUID (CLSID_ROWSET_TVP). The pwszName üye contains the name of the tablo-valued parameter type that the consumer wants to instantiate. The eKind alan will be küme to DBKIND_GUID_NAME. Ad hoc SQL deyim, bu adı gereklidir; bir yordam çağrısı, isteğe bağlı adıdır.
Toplama için tüketici geçirmeden pUnkOuter denetleme ile parametresi IUnknown.
Tablo değerli parametre satır küme tüketici için beklenen şekilde nesne özellikleri, salt okunurdur küme tüm özellikleri rgPropertySets.
Için rgPropertySets Her DBCOLUMNDESC yapısı üyesi, tüketici, her sütun için ek özellikler belirleyebilirsiniz. Bu özellikler DBPROPSET_SQLSERVERCOLUMN özellik kümesine ait.Hesaplanan belirtmek ve her sütun için varsayılan ayarları sağlar.Bunlar null atanabilirlik ve kimlik gibi varolan sütun özelliklerini destekler.
Bir tablo değerli parametre kümesi nesnesinden ilgili bilgi almak için , tüketici kullanır. IRowsetInfo::GetProperties.
Hesaplanan, benzersiz, null hakkında bilgi almak ve her sütun, tüketici kullanımı durumunu güncelleştirmek için IColumnsRowset::GetColumnsRowset veya IColumnsInfo::GetColumnInfo. Bu yöntemler her tablo değerli parametre hakkında ayrıntılı bilgi sağlayan satır kümesi sütun.
Tüketici, her sütun tablo değerli parametrenin türünü belirtir.Bu tablo oluşturulduğunda nasıl sütunları belirtilen için benzer SQL Server. Tüketici tablo değerli bir parametre alır satır kümesi gelen nesne SQL Server Yerel istemci OLE DB sağlayıcı aracılığıyla ppRowset parametre çıktı.
Dinamik senaryosu
Tüketici türü bilgisi yoksa, kullanmalısınız IOpenRowset::OpenRowset tablo değerli parametre kümesi nesneleri oluşturmak için . Tüm tüketici sağlayıcı için sağlamak için olan, tür adı.
Bu senaryoda, sağlayıcı parametre tablo değerli bir satır kümesi nesnesi türü bilgi adına tüketici sunucudan alır.
The pTableID and pUnkOuter parameters should be küme as in the static scenario. The SQL Server Native istemci OLE DB sağlayıcı then obtains the type information (sütun information and constraints) from the server, and return a tablo-valued parameter satır kümesi object through the ppRowset parameter. Bu işlem, sunucuyla iletişim gerektirir ve statik senaryonun yaný sýra gerçekleştirmez.Dinamik senaryosu yalnızca parametreli hale getirilmiş bir yordam çağrıları ile çalışır.