Aracılığıyla paylaş


sp_cursorfetch (Transact-SQL)

Veritabanından bir veya daha fazla satır arabellek getirir.Bu arabelleğindeki satır grubunu imleç's denir alma arabelleği.sp_cursorfetch is invoked by specifying ID = 7 in a tabular data stream (TDS) packet.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

sp_cursorfetch cursor 
    [ , fetchtype [ , rownum [ , nrows ] ] ] 

Bağımsız değişkenler

  • cursor
    Olan bir ele tarafından üretilen değer SQL Server ve tarafından döndürülen sp_cursoropen.cursorçağıran için gerekli bir parametre bir int Giriş değeri.Daha fazla bilgi için bu konunun ilerisinde açıklamalar bölümüne bakın.

  • fetchtype
    Getirmek için hangi imleç arabelleği belirtir.fetchtypeAşağıdaki tamsayı girdi değerlerden birini gerektiren bir isteğe bağlı parametredir.

    Değer

    Ad

    Açıklama

    0x0001

    İLK

    İlk arabelleği getirir nrows satır.nrows Eşittir 0, sonuç kümesi önce imleç konumlandırılmış ve hiçbir satır döndürdü.

    0X0002

    SONRAKİ

    Sonraki arabelleği getirir nrows satır.

    0X0004

    ÖNCEKİ

    Önceki arabelleği getirir nrows satır.

    NotNot
    forward_only yalnızca tek yönde kaydırma desteklediğinden önceki için forward_only imleç kullanarak bir hata iletisi döndürür.

    0X0008

    SON

    Son arabellek getirir nrows satır.nrows Eşittir 0, sonuç kümesi sonra imleç konumlandırılmış ve hiçbir satır döndürdü.

    NotNot
    forward_only yalnızca tek yönde kaydırma desteklediğinden son için forward_only imleç kullanarak bir hata iletisi döndürür.

    0x10

    MUTLAK

    Bir arabelleğin getirir nrows ile başlayan satırlar rownum satır.

    NotNot
    forward_only yalnızca tek yönde kaydırma desteklediğinden dinamik bir imleç veya imleç forward_only için mutlak kullanarak bir hata iletisi döndürür.

    0x20 değerli

    GÖRELİ

    Arabelleğin getirir nrows olarak belirtilen satır ile başlayan satırlar rownum ilk satırın geçerli bloksatır değerinin.Bu durum rownum olabilir negatif bir sayı.

    NotNot
    forward_only yalnızca tek yönde kaydırma desteklediğinden forward_only imleç için GÖRELİ kullanarak bir hata iletisi döndürür.

    0x80

    YENİLEME

    Alttaki tablodan arabellek refills.

    0x100

    INFO

    imleçhakkındaki bilgileri alır.Bu bilgileri kullanarak döndürülen rownum ve nrows parametreleri.Bu nedenle, ne zaman bilgi belirtildiyse, rownum ve nrows haline çıkış parametreleri.

    0x200

    PREV_NOADJUST

    Devir gibi kullanılırsonuç kümesi üstündeki zamanından önce ortaya çıkarsa, ancak sonuçlar değişebilir.

    0x400

    SKIP_UPDT_CNCY

    Biri diğeri ile kullanılması gereken fetchtype , dışındaki değerleri CAD.

    Not

    0X40 değeri için destek yoktur.

    Daha fazla bilgi için bu konunun ilerisinde açıklamalar bölümüne bakın.

  • rownum
    MUTLAK ve bilgi için satır konumu belirtmek için kullanılan isteğe bağlı bir parametredir fetchtype giriş ve çıkış veya her ikisi de yalnızca tamsayı değerleri kullanarak değerleri.rownumSatır kaydırma için görevi gören fetchtype bit değeri GÖRELİ.rownumdiğer tüm değerleri göz ardı edilir.Daha fazla bilgi için bu konunun ilerisinde açıklamalar bölümüne bakın.

  • nrows
    Getirmek için satır sayısını belirtmek için kullanılan isteğe bağlı bir parametre olduğu.nrows Belirtilmezse, varsayılan değer olan 20 satır.Pozisyon veriyor, olmadan küme için0 değerini belirtin.Zaman nrows uygulandığı fetchtype bilgi sorgu verdiği toplam satır sayısını öğrenmek bu sorgu.

    Not

       nrowsYENİLEYEREK göz ardı fetchtype bit değer.

    Daha fazla bilgi için bu konunun ilerisinde açıklamalar bölümüne bakın.

Dönüş Kodu Değerleri

BİLGİ bit değeri belirttiğinizde, döndürülebilir değerler aşağıdaki tabloda gösterilmiştir.

Not

: Hiçbir satır döndürmezse, arabellek içeriği oldukları gibi kalır.

<rownum>

Ayarlamak

Aksi takdirde açın

0

sonuç kümesiönce konumlandırdıysanız

0

sonuç kümesisonra konumlandırdıysanız

-1

Anahtar KÜMESİ ve statik imleçler için

sonuç kümesigeçerli konumu mutlak satır sayısı

DİNAMİK imleçler için

1

İçin mutlak

-1, bir kümeiçinde son satır döndürür.

-2 saniye son satırda bir kümevb. döndürür.

NotNot
Bu durumda getirilmesi için birden fazla satır isteniyorsa son iki satırdaki sonuç kümesi döndürülür.

<nrows>

Ayarlamak

Aksi takdirde açın

0

Anahtar KÜMESİ ve statik imleçler için

Genellikle, geçerli anahtar kümesi boyutu.

–m imleç ile zaman uyumsuz oluşturma ise m satırlar Bu noktaya bulundu.

DİNAMİK imleçler için

-1

Açıklamalar

imleç Parametre

Edilmiştir önce getirme işlemleri, varsayılan imleç sonuç kümesiilk satırın öncesine konumudur.

fetchtype parametresi

Haricinde, SKIP_UPD_CNCY, fetchtype değerler birbirini özel.

SKIP_UPDT_CNCY belirtildiğinde, bir satır getirilen ya da yenilenmesi zaman damgası sütun değerlerini anahtar kümesi tablo yazılmaz.Anahtar kümesi satırı güncelleştirilirse, zaman damgası sütun değerleri önceki değeri olarak kalır.Anahtar kümesi satır eklenirse, zaman damgası sütunları değerleri tanımsızdır.

Biri yapıldıysa anahtar KÜMESİ imleç için bu anahtar kümesi tablo değerleri küme getirme, son nonskip sırasında sahip olduğu anlamına gelir.Aksi takdirde, değerleri küme popülasyonsırasında yoktur.

DİNAMİK imleçler için Atla ile yenileme gerçekleştirilirse, bu anahtar KÜMESİ aynı sonuçlar üretir yani.Diğer getirme türü için anahtar kümesi tablo kesirli kısmı atılır.Başka bir deyişle, satır eklenir ve zaman damgası sütun(s) değerleri tanımsızdır.Bu nedenle, çalıştırdığınızda sp_cursorfetch dinamik imleçler için kaçının dışında herhangi bir işlem için SKIP_UPDT_CNCY kullanmayenileme.

kümesonuç kümesiönce istenen imleç konumu yerleştirilmiş olduğundan getirme işlemi başarısız olursa, imleç ilk satırın önce küme konumdur.

ile belirtilen parametre

Kullandığınızda, rownum, arabellek başlayarak doldurulurbelirtilen satır.

fetchtype Konumunu başvurduğu mutlak değeri rownum tam sonuç kümesiiçinde.İşlem satır sonundan sonuç kümesisayılır mutlak ile negatif bir sayı belirtir.

fetchtype Değeri GÖRELİ konumunu gösterir rownum başlangıcında imleç konumuna bağlı olarakgeçerli arabellek.imleç geçerli imleç konumundan geri gitmek göreli negatif bir sayı belirtir.

nrows parametresi

fetchtype Yenileme ve bilgi değerleri göz ardı Bu parametre.

Ne zaman sizin belirlediğiniz bir fetchtype olan ilk değeri bir nrow sonuç kümesi , hiçbir satır getirme arabellek önce değeri 0, imleç konumlandırılmış

Ne zaman sizin belirlediğiniz bir fetchtype değeri olan son bir nrow sonuç kümesi , hiçbir satır geçerli getirme arabellek sonra değeri 0, imleç konumlandırılmış

İçin fetchtype sonraki, önceki, mutlak, GÖRECELİ ve prev_noadjust, bir nrow 0 değeri geçerli değil.

rpc dikkat edilmesi gereken noktalar

rpc dönüş durumu anahtar kümesi boyutu parametresi, diğer bir deyişle anahtar kümesi veya geçici tablo zaman uyumsuz olarak doldurulurken, son olup olmadığını gösterir.

rpc durum küme için aşağıdaki tablogösterilen değerlere parametresidir.

Değer

Açıklama

0

Yordam başarıyla yürütüldü.

0x0001

Yordamı başarısız oldu.

0X0002

Getirme negatif yönde küme sonuç kümesi, başlangıcına getirme mantıksal olarak önce sonuçlarolacaktı zaman edilecek imleç konumu nedeniyle.

0x10

Bir ileri sarma imleç otomatik olarak kapatıldı.

Satırları bir tipik sonuç kümesiolarak, yani döndürülür: sütun biçimi (0x2a) satır (0xd1) ve ardından Bitti'yi (0xfd) tarafından.Meta veri belirteçleri için belirtildiği gibi aynı biçimde gönderilen sp_cursoropen, yani: 0x81 0xa5 ve SQL Server 7.0 kullanıcıları, vb. 0xa4.Satır durumu göstergelerini gizli sütunları, sütun adı ile her satır sonunda Gözat moduna benzer olarak gönderilen rowstat ve veri türü INT4.Bu rowstat sütun aşağıdaki tablogösterilen değerlere biri vardır.

Değer

Açıklama

0x0001

FETCH_SUCCEEDED

0X0002

FETCH_MISSING

Sonunda durum sütun olmadan gönderilemez TDSprotokol sağlar çünkü önceki sütun, göstermelik veri gönderme eksik satırları (nullable alanlar küme alanlarını uzunluğu küme için 0, boş, sabit nullveya sütun, uygun varsayılan) gönderilir.

done rowcount her zaman sıfır olacak.Gerçek sonuç kümesi rowcount done iletiyi içerir ve hata veya bilgi iletilerinin günlüğünün arasında herhangi bir TDS iletisi görüntülenebilir.

Bu imleçhakkındaki meta veriler istemek için 's seçim listesi döndürülmesi TDS akış olarak küme rpc return_metadata giriş bayrağı 1 olarak.

Örnekler

A.ÖNCEKİ bir imleç konumu değiştirmek için kullanma

Bir imleç h2 gösterilen geçerli konumu ile aşağıdaki içeriğe sahip bir sonuç kümesi üretir varsayılmaktadır:

row 1 contents    
row 2 contents
row 3 contents
row 4 contents  <-- current position
row 5 contents 
row 6 contents

İleri bir sp_cursorfetch olan önceki bir nrows değeri 5 mantıksal olarak konumlandırmak imleç iki satır sonuç kümesiilk satırı önce.Bu gibi durumlarda, imleç ilk satır sonunda başlatın ve istenen satır sayısını döndürmek için ayarlanır.Bu, sık sık önceki getirme arabellekte olan satırlar dönmek anlamına gelir.

Not

rpc durum parametresi küme 2 olduğu tam durum budur.

B.Önceki'den daha az satır dönmek için prev_noadjust kullanma

prev_noadjust hiçbir zaman herhangi bir at veya geçerli imleç konumu döndürdüğü satır blok sonra satırları içerir.Burada önceki verir satır geçerli konumdan sonrasını durumlarda, prev_noadjust, istenenden daha az sayıda satır döndürür nrows.Verilen örnek geçerli konumu önceki, ne zaman önceki uygulanır, a sp_cursorfetch(h2, 4, 1, 5), aşağıdaki satırları getirir:

row1 contents 
row2 contents
row3 contents
row4 contents
row5 contents

Ancak, ne zaman prev_noadjust uygulanır, sp_cursorfetch(h2, 512, 6, 5) yalnızca aşağıdaki satırları getirir:

row1 contents 
row2 contents
row3 contents