Satır kümeleri ve SQL Server imleçler

SQL Serverdöner sonucu iki yöntemi kullanarak tüketicilere ayarlar:

  • Varsayılan sonuç ayarlar:

    • Ek yükünü en aza indirmek.

    • Veri getiriliyor içinde maximal performans sağlar.

    • Yalnızca varsayılan imleç salt ileri, salt okunur işlevleri destekler.

    • Satırları bir defada tüketici bir satır döndürür.

    • Bir defada yalnızca bir etkin deyim bir bağlantı desteği.

      Bir deyimi yürütüldü sonra diğer deyimleri bağlantı tüm sonuçları tüketici tarafından alınan veya deyimi iptal edildi kadar çalıştırılabilir.

    • Tüm destek Transact-SQLdeyimleri.

  • Sunucu imleçler ki:

    • Tüm imleç işlevselliği destekler.

    • Satır bloğunu tüketiciye iade edebilirsiniz.

    • Birden çok etkin deyimleri tek bir bağlantı desteği.

    • İmleç işlevselliği karşı performans dengesi.

      Imleç işlevselliği desteği göreli olarak varsayılan sonuç kümesi performansını düşürebilir. Tüketici küçük satır kümesi almak için imleç işlevselliğini kullanıyorsanız bu ofset olabilir.

    • Herhangi bir destek Transact-SQLdaha fazla tek bir sonuç kümesi döndüren deyim.

Tüketicilerin farklı imleç davranışlar bir satır kümesi belirli satır kümesi özelliklerini ayarlayarak talep edebilirsiniz. Tüketici bu satır kümesi özellikleri birini ayarlı değil veya bunları ayarlar varsayılan değerlerine herkese SQL Serveryerel istemci ole db sağlayıcısı satır kümesi varsayılan sonuç kümesi kullanarak uygular. Bu özelliklerden herhangi birini varsayılan dışında bir değere ayarlanırsa, SQL Serveryerel istemci ole db sağlayıcı kullanarak bir sunucu imleç satır kümesi uygular.

Doğrudan aşağıdaki satır kümesi özelliklerini SQL Serverkullanılacak yerel istemci ole db sağlayıcısı SQL Serverimleçler. Bazı özellikler, güvenle diğerleriyle birleştirilebilir. Örneğin DBPROP_IRowsetScroll ve DBPROP_IRowsetChange özellikleri sergileyen bir satır kümesi hemen sergileyen bir yer imi satır kümesi güncelleştirme davranışı olacaktır. Diğer özellikleri birbirini dışlar. Örneğin, DBPROP_OTHERINSERT sergileyen bir satır kümesi yer işaretleri içeremez.

Özellik kimliği

Değer

Satır kümesi davranışı

DBPROP_SERVERCURSOR

VARIANT_TRUE

Cant'güncelleştirmek SQL Serversatır kümesi verilerine. Satır kümesi sıralı, destekleyen ileri kaydırma ve yalnızca getiriliyor. Göreceli satır konumlandırma desteklenir. Komut metni bir order by yan tümcesi içerir.

dbprop_canscrollbackwards veya dbprop_canfetchbackwards

VARIANT_TRUE

Cant'güncelleştirmek SQL Serversatır kümesi verilerine. Satır kaydırma ve her iki yönde getiriliyor destekler. Göreceli satır konumlandırma desteklenir. Komut metni bir order by yan tümcesi içerir.

dbprop_bookmarks veya DBPROP_LITERALBOOKMARKS

VARIANT_TRUE

Cant'güncelleştirmek SQL Serversatır kümesi verilerine. Satır kümesi sıralı, destekleyen ileri kaydırma ve yalnızca getiriliyor. Göreceli satır konumlandırma desteklenir. Komut metni bir order by yan tümcesi içerir.

dbprop_ownupdatedelete veya DBPROP_OWNINSERT veya dbprop_otherupdatedelete

VARIANT_TRUE

Cant'güncelleştirmek SQL Serversatır kümesi verilerine. Satır kaydırma ve her iki yönde getiriliyor destekler. Göreceli satır konumlandırma desteklenir. Komut metni bir order by yan tümcesi içerir.

DBPROP_OTHERINSERT

VARIANT_TRUE

Cant'güncelleştirmek SQL Serversatır kümesi verilerine. Satır kaydırma ve her iki yönde getiriliyor destekler. Göreceli satır konumlandırma desteklenir. Başvurulan sütunları üzerinde bir dizin varsa, komut metni bir order by yan tümcesi içerir.

Yer imleri satır kümesi içeriyorsa, DBPROP_OTHERINSERT varıant_true olamaz. Bu görünürlük özelliğini ve yer imleri ile bir satır kümesi oluşturmaya çalışırken bir hata neden olur.

DBPROP_IRowsetLocate veya DBPROP_IRowsetScroll

VARIANT_TRUE

Cant'güncelleştirmek SQL Serversatır kümesi verilerine. Satır kaydırma ve her iki yönde getiriliyor destekler. Yer imleri ve mutlak konumlandırma ile IRowsetLocate arabirimi kümesi içinde desteklenir. Komut metni bir order by yan tümcesi içerir.

Yer imleri satır kümesi DBPROP_IRowsetLocate ve DBPROP_IRowsetScroll gerektirir. Yer imleri ve varıant_true için ayarlayın DBPROP_OTHERINSERT satır kümesi oluşturmaya çalışırken bir hata neden olur.

DBPROP_IRowsetChange veya DBPROP_IRowsetUpdate

VARIANT_TRUE

Güncelleme SQL Serversatır kümesi verilerine. Satır kümesi sıralı, destekleyen ileri kaydırma ve yalnızca getiriliyor. Göreceli satır konumlandırma desteklenir. Güncelleştirilebilir imleçler destekler tüm komutları bu arabirimleri destekleyebilir.

DBPROP_IRowsetLocate veya DBPROP_IRowsetScroll ve DBPROP_IRowsetChange veya DBPROP_IRowsetUpdate

VARIANT_TRUE

Güncelleme SQL Serversatır kümesi verilerine. Satır kaydırma ve her iki yönde getiriliyor destekler. Yer imleri ve mutlak konumlandırma ile IRowsetLocate kümesi içinde desteklenir. Komut metni bir order by yan tümcesi içerir.

DBPROP_IMMOBILEROWS

VARIANT_FALSE

Cant'güncelleştirmek SQL Serversatır kümesi verilerine. Satır kümesi yalnızca ileri kaydırma destekler. Göreceli satır konumlandırma desteklenir. Başvurulan sütunları üzerinde bir dizin varsa, komut metni bir order by yan tümcesi içerir.

DBPROP_IMMOBILEROWS yalnızca gösterebilirsiniz satır kümeleri kullanılabilir SQL Serverdiğer oturumları komutları veya diğer kullanıcılar tarafından eklenen satır. Özelliği üzerinde herhangi bir satır kümesi için varıant_true DBPROP_OTHERINSERT olamaz VARIANT_FALSE için ayarlanmış bir satır kümesi açmak için çalışırken bir hata neden olur.

DBPROP_REMOVEDELETED

VARIANT_TRUE

Cant'güncelleştirmek SQL Serversatır kümesi verilerine. Satır kümesi yalnızca ileri kaydırma destekler. Göreceli satır konumlandırma desteklenir. Komut metni başka bir özelliği tarafından kısıtlanmış sürece order by yan tümcesi içerir.

A SQL Serversunucu imleç tarafından desteklenen yerel istemci ole db sağlayıcısı satır kümesi kolayca oluşturulabilir üzerinde bir SQL Servertemel tablo veya görünümü kullanarak IOpenRowset::OPENROWSET yöntemi. Tablo veya Görünüm adını belirtmeniz, gerekli satır kümesi geçen özelliğini ayarlar Rgpropertysetsdbpropset_sqlservercolumn parametresi.

Tüketici satır kümesi sunucu imleç tarafından desteklenmesi gerektiğinde satır kümesi oluşturur komut metni sınırlıdır. Özellikle, bir tek satır kümesi sonuç döndüren tek bir select deyimi veya uygulayan bir tek satır kümesi sonucu döndüren tek bir select deyimi saklı yordam için komut metni sınırlıdır.

Bu iki tablo eşlemeleri çeşitli ole db özellikleri ve imleç modelleri göster. Onlar da göstermek hangi satır kümesi özelliklerini imleç modeli belirli bir tür olarak ayarlanmalıdır.

Tablodaki her hücre için belirli imleç modeli satır kümesi özelliği değeri içerir. Bu konuda daha önce listelenen tüm satır kümesi özellikleri veri türü vt_bool ve varsayılan değer VARIANT_FALSE. Aşağıdaki sembolleri tablosunda kullanılır.

F = varsayılan değeri (VARIANT_FALSE)

T = VARIANT_TRUE

-= VARIANT_TRUE veya VARIANT_FALSE

İmleç modeli belirli bir tür için imleç modeli için karşılık gelen sütun bulun ve değere sahip tüm satır kümesi özelliklerini 't bulmak ' sütun. Bu satır kümesi özellikleri belirli imleç modeli varıant_true için ayarlayın. Satır kümesi özellikleri ile '-' VARIANT_TRUE veya VARIANT_FALSE için bir değer olarak ayarlanabilir.

Satır kümesi özelliklerini/imleç modelleri

Default

result

ayarla

(RO)

Hızlı

İlet-

yalnızca

(RO)

Statik

(RO)

Anahtar kümesi

tahrik

(RO)

DBPROP_SERVERCURSOR

F

T

T

T

DBPROP_DEFERRED

F

F

-

-

DBPROP_IRowsetChange

F

F

F

F

DBPROP_IRowsetLocate

F

F

-

-

DBPROP_IRowsetScroll

F

F

-

-

DBPROP_IRowsetUpdate

F

F

F

F

DBPROP_BOOKMARKS

F

F

-

-

DBPROP_CANFETCHBACKWARDS

F

F

-

-

DBPROP_CANSRCOLLBACKWARDS

F

F

-

-

DBPROP_CANHOLDROWS

F

F

-

-

DBPROP_LITERALBOOKMARKS

F

F

-

-

DBPROP_OTHERINSERT

F

T

F

F

DBPROP_OTHERUPDATEDELETE

F

T

F

T

DBPROP_OWNINSERT

F

T

F

T

DBPROP_OWNUPDATEDELETE

F

T

F

T

DBPROP_QUICKSTART

F

F

-

-

DBPROP_REMOVEDELETED

F

F

F

-

DBPROP_IrowsetResynch

F

F

F

-

DBPROP_CHANGEINSERTEDROWS

F

F

F

F

DBPROP_SERVERDATAONINSERT

F

F

F

-

DBPROP_UNIQUEROWS

-

F

F

F

DBPROP_IMMOBILEROWS

-

-

-

T

Satır kümesi özelliklerini/imleç modelleri

Dinamik (ro)

Anahtar kümesi (r/w)

Dinamik (r/w)

DBPROP_SERVERCURSOR

T

T

T

DBPROP_DEFERRED

-

-

-

DBPROP_IRowsetChange

F

-

-

DBPROP_IRowsetLocate

F

-

F

DBPROP_IRowsetScroll

F

-

F

DBPROP_IRowsetUpdate

F

-

-

DBPROP_BOOKMARKS

F

-

F

DBPROP_CANFETCHBACKWARDS

-

-

-

DBPROP_CANSRCOLLBACKWARDS

-

-

-

DBPROP_CANHOLDROWS

F

-

F

DBPROP_LITERALBOOKMARKS

F

-

F

DBPROP_OTHERINSERT

T

F

T

DBPROP_OTHERUPDATEDELETE

T

T

T

DBPROP_OWNINSERT

T

T

T

DBPROP_OWNUPDATEDELETE

T

T

T

DBPROP_QUICKSTART

-

-

-

DBPROP_REMOVEDELETED

T

-

T

DBPROP_IrowsetResynch

-

-

-

DBPROP_CHANGEINSERTEDROWS

F

-

F

DBPROP_SERVERDATAONINSERT

F

-

F

DBPROP_UNIQUEROWS

F

F

F

DBPROP_IMMOBILEROWS

F

T

F

Satır kümesi özellikleri belirli bir dizi için seçili imleç modeli aşağıdaki şekilde belirlenir.

Satır kümesi özellikleri belirtilen koleksiyonundan bir alt kümesi önceki tabloda listelenen özellikleri edinin. Bu özellikler bayrak değerine bağlı olarak iki alt gruplara ayırın — (t, f) gerekli veya isteğe bağlı (-) — her satır kümesi özelliği. Her bir imleç modeli için ilk tabloda başlatmak ve soldan sağa. taşıma, iki alt grupları özellikleri değerleri ile ilgili özellikleri o sütundaki değerleri karşılaştırın. İmleç modeli gerekli özellikleri ile hiçbir uyumsuzluk ve az olan uyuşmazlıkları isteğe bağlı özellikleri ile sayısı seçilir. Birden fazla imleç modeli ise, en soldaki seçilir.

SQL Server imleç bloğu boyutu

Ne zaman bir SQL Serverimleç desteklediği bir SQL Serveryerel istemci ole db sağlayıcısı satır kümesi satır öğelerini işlemek dizi parametresi IRowset::GetNextRows ya da IRowsetLocate::GetRowsAt yöntemi tanımlar İmlecin blok boyutu. Dizideki kolları tarafından belirtilen satır imleci bloğu üyesidir.

Yer imlerini destekleyici satır için satır tutamaçları adresinden alındı kullanarak IRowsetLocate::GetRowsByBookmark yöntemi tanımlar üyeleri İmlecin blok.

Satır kümesi ve formu doldurmak için kullanılan yöntem bakılmaksızın SQL Serverİmleç bloğu, imlecin blok kadar etkin satır kümesi üzerinde sonraki satır getiriliyor yöntemi yürütülür.

Ayrıca bkz.

Kavramlar

Satır kümeleri

Diğer Kaynaklar

Using Block Cursors with APIs