Aracılığıyla paylaş


Table-Valued Parametreleri İçeren Komutları Yürütme

Şunlar için geçerlidir:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalitik Platform Sistemi (PDW)Microsoft Fabric'te SQL veritabanı

OLE DB sürücüsünü indirme

Tablo değerli parametrelerle bir komutu çalıştırmak iki aşama gerektirir:

  1. Parametre türlerini belirtin.

  2. Parametre verilerini bağlayın.

Table-Valued Parametre Spesifikasyonu

Tüketici, tablo değerli parametrenin türünü belirleyebilir. Bu bilgi, tablo değerli parametre tipi adını içerir. Ayrıca, kullanıcı tarafından tanımlanan tablo tipi, bağlantı için mevcut varsayılan şemada değilse, şema adını da içerir. Sunucu desteğine bağlı olarak, tüketici ayrıca sütunların sıralanması gibi isteğe bağlı meta veri bilgileri de belirtebilir ve belirli sütunlar için tüm satırların varsayılan değerlere sahip olduğunu belirtebilir.

Tablo değerli bir parametre belirtmek için tüketici ISSCommandWithParameter::SetParameterInfo'yu çağırır ve isteğe bağlı olarak ISSCommandWithParameters::SetParameterProperties ayarlar. Tablo değerli bir parametre için, DBPARAMBINDINFO yapısındaki pwszDataSourceType alanının değeri DBTYPE_TABLE. ulParamSize alanı, uzunluğun bilinmediğini göstermek için ~0 olarak ayarlanmıştır. Tablo değerli parametreler için şema adı, tip adı, sütun sırası ve varsayılan sütunlar gibi özel özellikler ISSCommandWithParameters::SetParameterProperties aracılığıyla ayarlanabilir.

Table-Valued Parametre Bağlama

Tablo değerli bir parametre, herhangi bir satır kümesi nesnesi olabilir. Sağlayıcı, bu nesneden okurken uygulama sırasında sunucuya tablo değerli parametreler gönderir.

Tablo değerli parametreyi bağlamak için tüketici IAccessor::CreateAccessor adresini çağırır. Tablo değerli parametre için DBBINASYON yapısının wType alanı DBTYPE_TABLE olarak ayarlanmıştır. DBBINDING yapısının pObject üyesi NULL değildir ve pObject'iniid üyesi IID_IRowset veya herhangi bir tablo değerli parametre sırası nesne arayüzlerine ayarlanmıştır. DBBINASYON yapısındaki kalan alanlar, akışlı BLOB'lar için olduğu gibi ayarlanmalıdır.

Tablo değerli parametre ve tablo değerli parametre ile ilişkili satır kümesi nesnesi için bağlamalarda aşağıdaki kısıtlamalar geçerlidir:

  • Tablo değerli parametre satır kümesi 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.

  • Tablo değerli bir parametre DBSTATUS_S_DEFAULT durumu ile işaretlenebilir. Geçerli olan tek değerler DBSTATUS_S_DEFAULT ve DBSTATUS_S_OK. Durum DBSTATUS_S_DEFAULT olarak ayarlandığında, tablo değerli parametrenin değeri boş bir tabloya karşılık gelir.

  • Tablo değerli parametrelerdeki (kimlik veya hesaplanan sütunlar) yalnızca okunabilir sütunlar, SSPROP_PARAM_TABLE_DEFAULT_COLUMNS özelliği kullanılarak varsayılan olarak işaretlenmelidir. Varsayılan değeri olan sütunlar, belirli bir tablo değerli parametre için sütunun veri değerleri için varsayılan değerin kullanılabilmesini sağlamak amacıyla SSPROP_PARAM_TABLE_DEFAULT_COLUMNS özellik aracılığıyla varsayılan olarak işaretlenmelidir. Sağlayıcı, varsayılan olarak işaretlenen sütunlar için sınırlandırılan veri değerlerini görmezden gelir.

  • Veriler, DBPROP_COL_AUTOINCREMENT veya SSPROP_COL_COMPUTED olan sütunlar için sunucuya gönderilir, SSPROP_PARAM_TABLE_DEFAULT da ayarlanmadıkça.

Ayrıca Bkz.

Table-Valued Parametreleri (OLE DB)
Table-Valued Parametrelerini Kullan (OLE DB)