Tablo değerli parametreleri veri ekleme

SQL ServerYerel istemci ole db sağlayıcısı destekler için tablo değerli parametresi satır veri belirtmek tüketici için iki model: itme modeli ve çekme modeli. Çekme modeli gösteren bir örnek mevcuttur; see Considerations for Installing SQL Server Samples and Sample Databases.

[!NOT]

Parametre tablo değerli sütun, tüm satırların varsayılan değerler ya da tüm satırların varsayılan olmayan değerler olmalıdır. Varsayılan değerler bazı satırları ama diğerlerini olması mümkün değil. Bu nedenle, içindeki tablo değerli parametresi bağlamaları, tablo valued parametre satır kümesi sütun veri için izin verilen tek durum DBSTATUS_S_ISNULL ve dbstatus_s_ok değerlerdir. dbstatus_s_default bir hata neden olur ve ilişkili durum değerini dbstatus_e_badstatus için ayarlanır.

(Tüm tablo değerli Paremeter verileri belleğe yükler) Model itme

Itme modelini benzer parametre kümesi kullanımı için (yani, dbparams parametresi ICommand::Execute). Tablo valued parametre satır kümesi nesneleri bir özelleştirilmiş uygulama kullanılan itme modelini kullanılması IRowsetarabirimleri. Tablo valued parametre satır kümesi satır sayısı küçük ve aşırı bellek baskısı uygulamaya koymak için beklenmiyor itme modeli önerilir. Ne tipik ole db uygulamaları şu anda yaygın olarak daha fazla herhangi bir işlevsellik tüketici uygulamasından gerektirmediğinden bu çekme modeli kolaydır.

Tüketici, bir komutu yürütmeden önce sağlayıcının tüm tablo değerli parametre veri sağlamak için bekleniyor. Veri sağlamak için her tablo değerli parametre için parametre tablo değerli satır kümesi nesnesi tüketici doldurur. Tablo valued parametre satır kümesi ayarlamak ortaya çıkarır satır kümesi Ekle, nesne ve silme işlemleri, tüketici tablo değerli parametre veri işlemek için kullanılacak. Sağlayıcı veri yürütülmesi sırasında bu tablo valued parametre satır kümesi nesneden getirmek.

Bir tablo değerli parametresi satır kümesi nesnesi için tüketiciye sağlandığında, tüketicinin bunu bir satır kümesi nesnesi olarak işleyebilir. Tüketici her sütunun (türü, maksimum uzunluk, duyarlık ve ölçek) türü bilgileri kullanarak elde edebilirsiniz IColumnsInfo::GetColumnInfoya IColumnsRowset::GetColumnsRowsetarabirim yöntemi. Tüketici, daha sonra veri bağlamalarını belirtmek için bir erişimci oluşturur. Tablo valued parametre satır kümesi veri satırları eklemek için sonraki adım olacaktır. Bu kullanarak yapılabilir IRowsetChange::InsertRow. IRowsetChange::SetDataveya IRowsetChange::DeleteRowseğer sen-si olmak-e verileri işlemek tablo değerli parametresi satır kümesi nesnesi üzerinde de kullanılabilir. Tablo valued parametre satır kümesi nesneleri sayılan, akış nesnelere benzer referans vardır.

Eğer IColumnsRowset::GetColumnsRowsetise kullanılan olacak sonraki aramalar için IRowset::GetNextRows, IRowset::GetData, ve IRowset::ReleaseRowssonuç sütun satır kümesi nesnesi yöntemleri.

Sonra SQL Serverkomutu yürütmeden başlayan yerel istemci ole db sağlayıcısı, tablo değerli parametre değerleri bu tablo valued parametre satır kümesi nesnesinden getirilen ve sunucuya gönderilen.

İtme modelini tüketicinin en az çalışma gerektirir, ancak tüm tablo değerli parametre veri çünkü yürütülmesi sırasında bellek çekme modeli, daha fazla bellek kullanır.

Model (isteğe bağlı tablo değerli parametre veri alma tüketiciden) çekmek

Çekme modeli iki senaryolarda kullanışlıdır:

  • Akış satırları.

  • Eğer başka bir sağlayıcıdan bir satır kümesi tablo valued parametre değeri olarak kullanılır.

Çekme modelinde, tüketicinin sağlayıcıya isteğe bağlı veriler sağlar. Bu yaklaşım, birçok veri eklemeleri uygulamanız varsa ve tablo valued parametre satır kümesi verileri bellekte aşırı bellek erişimi neden kullanın. Birden çok ole db sağlayıcısı kullanılırsa, tüketici çekme modeli herhangi bir satır kümesi nesnesi tablo valued parametre değeri olarak sağlamak için tüketici sağlar.

Çekme modeli kullanmak için tüketicilerin kendi uygulama satır kümesi nesnesi sağlamak zorunda. Çekme modeli tablo valued parametre satır kümeleri (CLSID_ROWSET_TVP) ile kullanırken, tüketici sağlayıcısı aracılığıyla gösterir tablo değerli parametresi satır kümesi nesnesi toplamak için gerekli ITableDefinitionWithConstraints::CreateTableWithConstraintsyöntemi ya da IOpenRowset::OpenRowsetyöntemi. Tüketici nesneyi yalnızca IRowset arabirimi uygulama geçersiz kılmak için bekleniyor. Aşağıdaki işlevler kılmalıdır:

  • IRowset::GetNextRows

  • IRowset::AddRefRows

  • IRowset::GetData

  • IRowset::ReleaseRows

  • IRowset::RestartPosition

SQL ServerYerel istemci ole db sağlayıcısı bir veya birden fazla tablo değerli parametreleri akış davranışı desteklemek için satır kümesi nesnesi tüketiciden bir anda okuyacak. Örneğin, kullanıcı tablo valued parametre satır kümesi verileri diskte (değil bellek) olabilir ve işlevsellikler tarafından gerektiğinde diskten veri okuma SQL Serveryerel istemci ole db sağlayıcısını.

Tüketici için veri biçimi iletişim kuracak SQL ServerYerel istemci ole db kullanarak sağlayıcısı IAccessor::CreateAccessortablo değerli parametresi satır kümesi nesnesi üzerinde. Tüketici arabellek veri okurken, sağlayıcının tüm yazılabilir ve varsayılan olmayan sütunları en az bir erişeni tanıtıcısı, ve buna karşılık gelen sütun veri okumak için işleme kullanır olduğunu doğrular. Belirsizlik önlemek için olmalıdır bir tablo valued parametre satır kümesi sütun bağlama arasındaki bire bir yazışma. Aynı sütuna yinelenen bağlamaları, hatayla sonuçlanır. Ayrıca, her erişeni olması bekleniyor iOrdinalüyesi DBBindingssıra. Orada-ecek var olmak çok çağrı IRowset::GetDataerişimcileri başına satır sayısını ve sırasını arama sırasını temel olarak iOrdinaliçin daha düşük değerler değer.

Sağlayıcının tablo valued parametre satır kümesi nesnesinin kullandığı arabirimleri bir çoğunu bekleniyor. Bir satır kümesi nesnesi ile en az arabirimleri tüketici uygulayacak (IRowset). Kör toplama nedeniyle, kalan zorunlu satır kümesi nesnesi arabirimleri tablo değerli parametresi satır kümesi nesnesi tarafından uygulanacaktır.

Herhangi bir başka satır kümesi nesnesi için herhangi bir ole db sağlayıcısı için alınan satır kümesi nesneleri gibi tüketici tarafından sağlanan satır kümesi ole db belirtiminde belirtilen tüm zorunlu satır kümesi nesnesi arabirimleri uygulamalısınız.

Yürütme zaman SQL Serveryerel istemci ole db sağlayıcısı satır getir ve sütun veri okumak için satır kümesi nesnesi için geri arayacak.

Ayrıca bkz.

Görevler

Tablo Valued Parametreler (ole db) kullanma

Kavramlar

Tablo Valued Parametreler (ole db)