Aracılığıyla paylaş


Sp_cursoropen (Transact-SQL)

Bir imleçaçar.sp_cursoropenimleç ve imleç seçenekleri ile ilişkili SQLdeyim tanımlar ve sonra imleçdoldurur. sp_cursoropenbirleşimi için eşdeğer olduğu Transact-SQL declare_cursor ve açık.Kimlik belirterek bu yordamı çağrılır = 2 tablo verisi akışı (TDS) paket.

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

Sözdizimi

sp_cursoropen cursor OUTPUT, stmt 
    [, scrollopt [ OUTPUT ] [ , ccopt [ OUTPUT ] 
    [ ,rowcount OUTPUT [ ,boundparam] [,...n] ] ] ] ] 

Bağımsız değişkenler

  • cursor
    SQL Server tarafından oluşturulan imleç tanıtıcısı.cursorolan bir ele imleçgibi ilgili tüm sonraki yordamlar sağlanması gereken değeri sp_cursorfetch.cursorgerekli bir parametre ile bir int dönüş değeri.

    cursorbir tek veritabanı bağlantısı üzerinde etkin olacak şekilde birden çok imleçler sağlar.

  • stmt
    imleçsonuç kümesitanımlayan bir zorunlu parametredir. Herhangi bir geçerli sorgu dize (sözdizimi ve bağlama) (bakılmaksızın, Unicode, boyut, vs.) herhangi bir dize türü geçerli bir hizmet verebilir stmt değer türü.

  • scrollopt
    Seçenek'e gidin.scrolloptaşağıdakilerden birini gerektirir isteğe bağlı bir parametredir int giriş değerleri.

    Değer

    Açıklama

    0x0001

    ANAHTAR KÜMESİ

    0X0002

    DİNAMİK

    0X0004

    FORWARD_ONLY

    0X0008

    STATİK

    0x10

    FAST_FORWARD

    0x1000

    PARAMETERIZED_STMT

    0x2000

    AUTO_FETCH

    0x4000

    AUTO_CLOSE

    0x8000

    CHECK_ACCEPTED_TYPES

    0x10000

    KEYSET_ACCEPTABLE

    0x20000

    DYNAMIC_ACCEPTABLE

    0x40000

    FORWARD_ONLY_ACCEPTABLE

    0x80000

    STATIC_ACCEPTABLE

    0x100000

    FAST_FORWARD_ACCEPTABLE

    İstenen değer tarafından tanımlanan imleç için uygun değil olasılığı nedeniyle stmt, bu parametre gören olarak, hem girdi hem de çıktı.Bu gibi durumlarda SQL Server uygun bir değer atar.

  • ccopt
    Eşzamanlılık denetim seçeneği.ccoptaşağıdakilerden birini gerektirir isteğe bağlı bir parametredir int giriş değerleri.

    Değer

    Açıklama

    0x0001

    READ_ONLY

    0X0002

    scroll_locks (daha önce lockcc da bilinir)

    0X0004

    İYİMSER (daha önce optcc da bilinir)

    0X0008

    İYİMSER (daha önce optccval da bilinir)

    0x2000

    ALLOW_DIRECT

    0x4000

    UPDT_IN_PLACE

    0x8000

    CHECK_ACCEPTED_OPTS

    0x10000

    READ_ONLY_ACCEPTABLE

    0x20000

    SCROLL_LOCKS_ACCEPTABLE

    0x40000

    OPTIMISTIC_ACCEPTABLE

    0x80000

    OPTIMISITC_ACCEPTABLE

    Olduğu gibi scrollopt, SQL Server Geçersiz istenen ccopt değerler.

  • rowcount
    auto_fetch ile kullanılacak getirme arabellek satır sayısı.20 Satır varsayılandır.rowcountbir girdi değeri dönüş değeri karşılık olarak atanan farklı şekilde davranır.

    Giriş değeri olarak

    Dönüş değeri olarak

    Zaman auto_fetch scrollopt değeri belirtilen rowcount içine yerleştirmek için satır sayısını temsil edergetirme arabellek.

    NotNot
    >auto_fetch belirtilen, ancak Aksi halde göz ardı geçerli bir değer 0'dır.

    sonuç kümesi, ne zaman dışında satır sayısını gösteren scrollopt auto_fetch değer belirtilmişse.

  • boundparam
    Ek parametreler kullanımını gösterir.boundparamvarsa belirtilmesi isteğe bağlı bir parametredir scrollopt PARAMETERIZED_STMT değerdir küme için on.

Dönüş Kodu Değerleri

Herhangi bir hata ortaya çıkar, sp_cursoropen verir birini aşağıdaki değerleri.

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

  • 0x0001
    (Küçük bir hata, işlemde bir hata yükseltmek için değil ciddi yeterince) yürütme sırasında bir hata oluştu.

  • 0X0002
    Zaman uyumsuz işlemi devam ediyor.

  • 0X0002
    İşlemde getirme işlemidir.

  • A
    Bu imleç tarafından ayırmanın SQL Server ve kullanılamaz.

Bir hata ortaya çıktığında dönüş değerlerini tutarsız olabilir ve doğruluğu garanti edilemez.

Zaman rowcount parametresi belirtilen bir dönüş değeri aşağıdaki sonuç kümesi oluşur.

  • -1
    Satır sayısı bilinmiyor veya geçerli değil ise döndürülür.

  • -n
    Bir zaman uyumsuz popülasyon etkin olduğunda döndürdü.Getirme yerleştirilmiş satır sayısını gösteren ne zaman arabellek scrollopt auto_fetch değer belirtilmişse.

rpc kullanılmıyorsa, dönüş değerleri aşağıdaki gibidir.

  • 0
    Yordam başarısız olur.

  • 1
    Yordamı başarısız oldu.

  • 2
    Anahtar kümesi imleç zaman uyumsuz olarak üretiliyor.

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

Not

sp_cursoropen Yordamı yürütür, rpc dönüş parametreleri ve bir sonuç kümesi TDSsütun biçimi bilgilerle (0xa0 & 0xa1 iletileri) gönderilir.Başarısız olursa, bir veya daha fazla TDS hata iletileri gönderilir.Her iki durumda, hiçbir satır verisi döndürülmeyecek ve Bitti ileti sayısı sıfır olacaktır.' In bir sürüm kullanıyorsanız SQL Server 7.0'den önceki 0xa0, 0xa1 (standart select deyimlerinin) dönen ile birlikte 0xa5 ve 0xa4 token akışları.Kullanıyorsanız, SQL Server 7.0 0x81 (standart select deyimleri için) döndürülen 0xa5 ve 0xa4 token akışlarını. ile birlikte

Açıklamalar

stmt parametresi

stmt Yürütme belirtir bir saklı yordam, giriş parametreleri bir parçası olarak sabitler olarak da tanımlanabilir stmtdize, ya da belirtildiği gibi boundparam bağımsız değişkeni.Bu şekilde ilişkili parametre olarak bildirilen değişkenler geçirilebilir.

İzin verilen içeriğini stmt parametresi alınıp alınmayacağını bağımlı ccopt ALLOW_DIRECT dönüş değeri bağlı ya da geri kalanı için ccopt değerler, yani:

  • ALLOW_DIRECT, ya da belirtilmemişse, bir Transact-SQL seçin veya execute deyim tek bir select deyim içeren bir saklı yordam kullanılmalıdır için çağrı.Ayrıca, select deyim imleçolarak nitelemeniz gerekir; yani, select INTO, GÖZATMAK veya compute anahtar sözcükler içeremez.

  • ALLOW_DIRECT belirtilirse, bu bir veya daha fazla neden olabilir Transact-SQL ifadeleri, dahil olanlar, sırasıyla yürütmek diğer saklı yordamlar ile birden çok deyimleri.Non-select deyimleri veya anahtar sözcükleri içeren herhangi bir select deyim Sgöz içine, SEÇMEDİĞİNİZ veya compute basitçe yürütülecek ve imleçoluşturulmasında yol açmayacaktır.Aynı toplu iş birden çok deyimleri dahil herhangi bir select deyim için geçerlidir.Burada bir select deyim yalnızca imleçler için ilgili yan tümceleri içeren durumlarda, bu yan tümceleri dikkate alınmaz.İçin örnek, ne zaman değeri ccopt 0x2002, iş isteği budur:

    • Bir imleç kaydırma kilitler, bir imleçniteleyen yalnızca tek bir select deyim ise veya

    • Birden çok ifade, tek bir select deyimveya imleçolarak nitelemek değil bir select deyim varsa doğrudan deyim yürütme.

scrollopt parametresi

İlk beş scrollopt (keysey, dinamik, forward_only, statik ve fast_forward) değerler birbirini özel.

PARAMETERIZED_STMT ve check_accepted_types ya da ilk beş değerleri için bağlanabilir.

auto_fetch ve auto_close tarafından veya fast_forward bağlanabilir.

check_accepted_types on, son beş en az biri ise scrollopt değerleri (keyset_acceptable, DYNAMIC_ACCEPTABLE, forward_only_acceptable, STATIC_ACCEPTABLE veya fast_forward_acceptable) de açık olmalı.

Statik İmleçler her zaman read_only açılır.Yani, temel tablo bu imleçgüncelleştirilemiyor.

ccopt parametresi

İlk dört ccopt (read_only, scroll_locks ve her ikisi de İYİMSER değerleri) değerler birbirini özel.

Not

İlk dört birini seçerek ccopt imleç salt okunur olup olmadığını veya kilitleme veya iyimser yöntemleri önlemek için kullanılan değerleri kullanılması belirlerkayıp güncelleştirmeleri.Yoksa bir ccopt değer belirtilmezse, varsayılan değer ise İYİMSER.

ALLOW_DIRECT ve check_accepted_types tarafından veya ilk dört değerlerden herhangi birine bağlanabilir.

UPDT_IN_PLACE, read_only, scroll_locks ya da İYİMSER değerlerden birini ya da bağlanabilir.

check_accepted_types on, son dört en az biri olup ccopt (read_only_acceptable, scroll_locks_acceptable ve OPTIMISTIC_ACCEPTABLE değerleri biri) değerleri de olması gerekir açık.

Yalnızca alma arabelleği ve yalnız içinde konumlandırılmış update ve delete İşlevler'in yapılmalıdır ccopt değer eşittir scroll_locks ya da İYİMSER.scroll_locks belirtilen değer, işlemin başarılı olması için sağlanır.İYİMSER belirtilen değeri ise, son getirilen satır değişmişse, işlem başarısız olur.

Bu başarısızlık İYİMSER belirtilen değer olduğunda, İyimser bir para işlev denetlemek için neden tarafından belirlenen zaman damgaları veya sağlama toplamı değeri karşılaştırarak gerçekleştirilir SQL Server.Bu satırlar biriyle eşleşmiyorsa, işlem başarısız olur.

Dönüş değeri UPDT_IN_PLACE belirten aşağıdaki sonuçlaryönetir:

  • Yoksa bir konumlandırılmış güncelleştirme bir tablo ile bir benzersiz dizin imleç gerçekleştirirken küme , iş tablo satırı siler ve sonunda, böylece bu sütunları değiştirme imleçtarafından kullanılan anahtar sütunu ekler.

  • küme on imleç yalnızca özgün çalışma tablosatır anahtar sütunlarında güncelleştirir.

bound_param parametresi

Parametre adı olmalıdır paramdef , PARAMETERIZED_STMT belirtildiğinde, hata iletisinde uyarıncakod.PARAMETERIZED_STMT belirtilmediği durumlarda adı yok hata iletisinde belirtilir.

rpc dikkat edilmesi gereken noktalar

rpc return_metadata giriş bayrağını küme için imleç seçim listesi meta veriler TDS akış döndürülmesi istemek için 0x0001 olabilir.

Örnekler

bound_param parametresi

Beşinci sonra herhangi bir parametre boyunca deyim planı için girdi parametresi olarak iletilir.İlk tür parametresi bir dize biçiminde olması gerekir:

{ yerel değişken adı veri türü} [, …n]

Sıralı parametreler için yerine kullanılacak değerleri geçirmek için kullanılan local variable name deyim.