Parametreler tablo biçiminde içeren komutlar yürütülüyor
Tablo değerli parametreleri içeren bir komut yürütülüyor Görevler iki aşamaya gerektirir:
Parametre türleri'ni belirtin.
Parametre veri bağlama.
Tablo biçiminde Parameter belirtimi
Tüketici, tablo değerli parametrenin türünü belirtebilirsiniz.Bu bilgiler, tablo değerli bir parametre türü adını içerir.Tablo değerli parametresi için kullanıcı tanımlı tablo türü, bağlantı için geçerli olan varsayılan şemayı değilse şema adını da içerir.Bağlı olarak sunucu desteği, tüketici, sütunların sırası gibi isteğe bağlı bir meta veriler bilgi da belirtebilirsiniz ve tüm satırların belirli bir sütun için varsayılan değerler olduğunu belirtebilirsiniz.
Tablo değerli bir parametreyi belirtmek için , tüketici çağırır. ISSCommandWithParamter::SetParameterInfo, isteğe bağlı olarak çağırır. ISSCommandWithParameters::SetParameterProperties. Tablo değerli bir parametre için pwszDataSourceType alan DBPARAMBINDINFO yapısında DBTYPE_TABLE değeri vardır. The ulParamSize alan is küme to ~0 to indicate that length is unknown. Şema adı, tür adı, sütun sırasını ve varsayılan sütunlar gibi tablo değerli parametreleri belirli özelliklerini olabilir küme aracılığıyla ISSCommandWithParameters::SetParameterProperties.
Tablo biçiminde bir parametre bağlama
Tablo değerli bir parametre, herhangi bir satır kümesi nesnesi olabilir.Sağlayıcı, sunucuya yürütme sırasında tablo değerli parametreleri gönderilirken bu nesneden okur.
Tablo değerli parametre bağlamak için , tüketici çağırır. IAccessor::CreateAccessor. The wType alan of the DBBINDING structure for the tablo-valued parameter is küme to DBTYPE_TABLE. The pObject üye of the DBBINDING structure is non-NULL, and the pObject's iid üye is küme to IID_IRowset or any other tablo-valued parameter satır kümesi object interfaces. Kalan alanlara DBBINDING yapısı için akış BLOB'lar ayarlandıklarından aynı şekilde ayarlanmalıdır.
Tablo değerli parametre ve tablo değerli bir parametre ile ilişkili satır kümesi nesnesi bağlantılarında aşağıdaki kısıtlamalar geçerlidir:
satır kümesi kümesi sütun verilerini tablo değerli parametresi izin verilen tek durum DBSTATUS_S_ISNULL ve DBSTATUS_S_OK değerlerdir.DBSTATUS_S_DEFAULT içinde bir hata neden olur ve ilişkili bir durumu değeri için DBSTATUS_E_BADSTATUS küme.
Tablo değerli bir parametre DBSTATUS_S_DEFAULT durumu ile işaretlenebilir.Yalnızca geçerli DBSTATUS_S_DEFAULT ve DBSTATUS_S_OK değerlerdir.Durum Etkin olarak olduğunda küme DBSTATUS_S_DEFAULT için boş bir tablo için tablo değerli parametresinin değeri karşılık gelir.
Tablo değerli parametreleri (kimlik veya hesaplanmış sütunları) salt okunur sütunlarında, SSPROP_PARAM_TABLE_DEFAULT_COLUMNS özelliğini kullanarak, varsayılan olarak işaretlenmelidir.Varsayılan değer olan sütunlar, varsayılan değer, belirli bir tablo değerli parametresi sütun çubuğundaki veri değerleri izin vermek için SSPROP_PARAM_TABLE_DEFAULT_COLUMNS özellik varsayılan olarak işaretlenmelidir.Sağlayıcı için varsayılan olarak işaretlenen sütunların ilişkili veri değerleri yok sayacak.
SSPROP_PARAM_TABLE_DEFAULT de değilse verileri sunucuya DBPROP_COL_AUTOINCREMENT veya SSPROP_COL_COMPUTED, sütunların gönderilecek küme.