Aracılığıyla paylaş


İmleçler için sql deyimleri oluşturmak yoluyla

SQL ServerYerel istemci odbc sürücüsü kullanan sunucu imleçler odbc belirtiminde tanımlanan imleç işlevselliğini uygulamak için. Bir odbc uygulaması kullanarak imleç davranışını denetleyen SQLSetStmtAttr farklı deyimi öznitelikleri ayarlamak için. Bu öznitelikler ve değerlerine vardır.

Attribute

Default

SQL_ATTR_CONCURRENCY

SQL_CONCUR_READ_ONLY

SQL_ATTR_CURSOR_TYPE

SQL_CURSOR_FORWARD_ONLY

SQL_ATTR_CURSOR_SCROLLABLE

SQL_NONSCROLLABLE

SQL_ATTR_CURSOR_SENSITIVITY

SQL_UNSPECIFIED

SQL_ATTR_ROW_ARRAY_SIZE

1

Bu seçenekleri varsayılan değerlerine bir sql deyimi yürütüldüğünde, zaman ayarlandığında SQL Serversonuç kümesi; uygulamak için sunucu imleç yerel istemci odbc sürücüsü kullanmaz Bunun yerine varsayılan sonuç kümesi kullanır. Bu seçenekler varsayılan sql deyimi yürütüldüğünde, zaman değiştirdiyseniz SQL Serveryerel istemci odbc sürücüsü girişimleri sonuç kümesi uygulamak için sunucu imleç kullanılacak.

Varsayılan sonuç kümeleri destekleyen tüm Transact-SQLdeyimleri. Herhangi bir kısıtlama kullanarak varsayılan sonuç kümesi yürütülebilecek sql deyimleri türleri vardır.

Sunucu imleçler destek değil tüm Transact-SQLdeyimleri. Herhangi bir sql deyimi birden çok sonuç kümeleri oluşturan sunucu imleçler desteklemez.

Deyimleri aşağıdaki türde sunucu imleçler tarafından desteklenmez:

  • Toplu işlemleri

    Örneğin iki ya da daha fazla bireysel sql select deyimlerini, yerleşik sql deyimleri:

    SELECT * FROM Authors; SELECT * FROM Titles
    
    SELECT * FROM Authors; SELECT * FROM Titles
    
  • Birden çok select deyimi ile saklı yordamları

    Birden çok select deyimi içeren bir saklı yordam yürütme sql deyimleri. Bu, parametre veya değişken dolduran select deyimleri içerir.

  • Anahtar Sözcükler

    for browse veya INTO anahtar kelimeleri içeren sql deyimleri.

De SQL Server, bu Hava eşleşen sunucu imleç ile sunucu imleç yürütüldüğünde bir sql deyimi varsayılan sonuç kümesi için örtülü olarak dönüştürülür. Sonra SQLExecDirect veya SQLExecute SQL_SUCCESS_WITH_INFO, imleç öznitelikleri ayarlanır geri varsayılan ayarlarına döner.

Yukarıdaki kategorilere uymayan sql deyimleri herhangi bir deyimi özniteliği ayarlarla yürütülebilecek; eşit işe varsayılan sonuç kümesi veya sunucu imleç ile iyi.

Hataları

De SQL Server7.0 ve sonraki sürümlerinde, birden çok sonuç kümeleri üretir bir deyimi yürütme denemesi SQL_SUCCESS_WITH bilgi ve aşağıdaki iletiyi oluşturur:

SqlState: 01S02"
pfNative: 0
szErrorMsgString: "[Microsoft][SQL Server Native Client][SQL Server]
               Cursor type changed."

SqlState: 01S02"
pfNative: 0
szErrorMsgString: "[Microsoft][SQL Server Native Client][SQL Server]
               Cursor type changed."

Bu iletiyi alan odbc uygulamaları arayabilir SQLGetStmtAttr geçerli imleç ayarlarını belirlemek için.

Sunucu imleçler kullanırken birden çok select deyimi ile bir yordam yürütme denemesi aşağıdaki hata üretir:

SqlState: 42000
pfNative: 16937
szErrorMsgString: [Microsoft][SQL Server Native Client][SQL Server]
               A server cursor is not allowed on a stored procedure
               with more than one SELECT statement in it. Use a
               default result set or client cursor.

SqlState: 42000
pfNative: 16937
szErrorMsgString: [Microsoft][SQL Server Native Client][SQL Server]
               A server cursor is not allowed on a stored procedure
               with more than one SELECT statement in it. Use a
               default result set or client cursor.

Sunucu imleçler kullanırken birden çok select deyimi ile toplu iş yürütme denemesi aşağıdaki hata üretir:

SqlState: 42000
pfNative: 16938
szErrorMsgString: [Microsoft][SQL Server Native Client][SQL Server]
               sp_cursoropen. The statement parameter can only
               be a single SELECT statement or a single stored 
               procedure.

SqlState: 42000
pfNative: 16938
szErrorMsgString: [Microsoft][SQL Server Native Client][SQL Server]
               sp_cursoropen. The statement parameter can only
               be a single SELECT statement or a single stored 
               procedure.

odbc uygulamaları bu hataları alma varsayılan değerlerine deyimi yürütme denemeden önce tüm imleç deyimi öznitelikleri sıfırlamanız gerekir.

Ayrıca bkz.

Kavramlar

(odbc) sorguları yürütme