SQLSetStmtAttr İşlevi

Uygunluk
Tanıtılan Sürüm: ODBC 3.0 Standartlarına Uyum: ISO 92

Özet
SQLSetStmtAttr , bir ifadeyle ilgili öznitelikleri ayarlar.

Note

Sürücü Yöneticisi'nin bu fonksiyonu ODBC 3.x uygulaması ODBC 2.x sürücüsüyle çalışırken neye eşlediği hakkında daha fazla bilgi için Uygulamaların Geriye Doğru Uyumluluğu için Eşleme Değiştirme Fonksiyonları sayfasına bakınız.

Syntax

  
SQLRETURN SQLSetStmtAttr(  
     SQLHSTMT      StatementHandle,  
     SQLINTEGER    Attribute,  
     SQLPOINTER    ValuePtr,  
     SQLINTEGER    StringLength);  

Arguments

StatementHandle
[Giriş] Deyim tanıtıcısı.

Öznitelik
[Giriş] "Yorumlar" bölümünde ayarlama seçeneği var.

Valueptr
[Giriş] Öznitelik ile ilişkilendirilecek değer. Özniteliğin değerine bağlı olarak, ValuePtr aşağıdakilerden biri olacaktır:

  • ODBC tanımlayıcı kullanıcı adı.

  • Bir SQLUINTeger değeri.

  • A SQLULEN değeri.

  • Aşağıdakilerden birine işaret eder:

    • Null-sonlu bir karakter dizisi.

    • İkili bir tampon.

    • SQLLEN, SQLULEN veya SQLUSMALLINT tipinde bir değer veya dizi.

    • Sürücü tarafından tanımlanan bir değer.

Attribute argümanı sürücüye özgü bir değerse, ValuePtr imzalı bir tam sayı olabilir.

StringLength
[Giriş] Eğer Attribute ODBC tarafından tanımlanmış bir öznitelikse ve ValuePtr bir karakter dizisine veya ikili tampona işaret ediyorsa, bu argüman *ValuePtr uzunluğu olmalıdır. Attribute ODBC ile tanımlanmış bir öznitelikse ve ValuePtr bir tam sayıysa, StringLength göz ardı edilir.

Eğer Attribute sürücü tarafından tanımlanan bir öznitelikse, uygulama StringLength argümanını ayarlayarak Driver Manager'a özniteliğin niteliğini gösterir. StringLength aşağıdaki değerlere sahip olabilir:

  • Eğer ValuePtr bir karakter dizisine işaret eden bir işaret ise, StringLength dizinin veya SQL_NTS'nin uzunluğudur.

  • Eğer ValuePtr ikili tampona işaret eden bir işaretçiyse, uygulama SQL_LEN_BINARY_ATTR(uzunluk) makrosunun sonucunu StringLength'e yerleştirir. Bu, StringLength değerinde negatif bir değer verir.

  • Eğer ValuePtr, karakter dizisi veya ikili bir dizi dışındaki bir değere işaret ediyorsa, StringLength SQL_IS_POINTER değerine sahip olmalıdır.

  • Eğer ValuePtr sabit uzunluklu bir değer içeriyorsa, StringLength uygun şekilde ya SQL_IS_INTEGER ya da SQL_IS_UINTEGER olur.

İadeler

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR veya SQL_INVALID_HANDLE.

Diagnostics

SQLSetStmtAttr SQL_ERROR veya SQL_SUCCESS_WITH_INFO döndürdüğünde, ilişkili bir SQLSTATE değeri, SQL_HANDLE_STMT HandleType ve StatementHandleile SQLGetDiagRec çağrılarak elde edilebilir. Aşağıdaki tablo, SQLSetStmtAttr tarafından sıkça döndürülen SQLSTATE değerlerini listeler; her birini bu fonksiyon bağlamında açıklar; "(DM)" gösterimi, Sürücü Yöneticisi tarafından döndürülen SQLSTATE açıklamalarından önce gelir. Aksi belirtilmediği sürece, her SQLSTATE değeriyle ilişkili dönüş kodu SQL_ERROR.

SQLSTATE Error Description
01000 Genel uyarı Sürücüye özgü bilgilendirici ileti. (İşlev SQL_SUCCESS_WITH_INFO döndürür.)
01S02 Seçenek değeri değiştirildi Sürücü, ValuePtr'de belirtilen değeri desteklemiyordu veya ValuePtr'de belirtilen değer uygulama çalışma koşulları nedeniyle geçersiz olduğundan, sürücü benzer bir değeri değiştirdi. (SQLGetStmtAttr , geçici olarak yerine getirilen değeri belirlemek için çağrılabilir.) İkame değeri, imleç kapanana kadar StatementHandle için geçerlidir; bu noktada ifade özniteliği önceki değerine geri döner. Değiştirilebilen deyim öznitelikleri şunlardır:

SQL_ATTR_CONCURRENCY SQL_ATTR_CURSOR_TYPE SQL_ATTR_KEYSET_SIZE SQL_ATTR_MAX_LENGTH SQL_ATTR_MAX_ROWS SQL_ATTR_QUERY_TIMEOUT SQL_ATTR_ROW_ARRAY_SIZE SQL_ATTR_SIMULATE_CURSOR

(İşlev SQL_SUCCESS_WITH_INFO döndürür.)
08S01 İletişim bağlantısı hatası sürücü ile sürücünün bağlandığı veri kaynağı arasındaki iletişim bağlantısı, işlev işlenmeden önce başarısız oldu.
24000 Geçersiz imleç durumu Özellik SQL_ATTR_CONCURRENCY, SQL_ATTR_CURSOR_TYPE, SQL_ATTR_SIMULATE_CURSOR veya SQL_ATTR_USE_BOOKMARKS idi ve imleç açıktı.
HY000 Genel hata Belirli bir SQLSTATE olmayan ve uygulamaya özgü SQLSTATE tanımlanmayan bir hata oluştu. *MessageText arabelleğinde SQLGetDiagRec tarafından döndürülen hata iletisi, hatayı ve nedenini açıklar.
HY001 Bellek ayırma hatası Sürücü, işlevin yürütülmesini veya tamamlanmasını desteklemek için gereken belleği ayıramadı.
HY009 Geçersiz null işaretçi kullanımı Attribute argümanı, bir string özniteliği gerektiren bir ifade özniteliği tanımlardı ve ValuePtr argümanı bir null işaretçiydi.
HY010 İşlev dizisi hatası (DM) StatementHandle ile ilişkili bağlantı tanıtıcısı için zaman uyumsuz olarak yürütülen bir işlev çağrıldı. Bu asenkron fonksiyon, SQLSetStmtAttr fonksiyonu çağrıldığında hâlâ çalışıyordu.

(DM) SQLExecute, SQLExecDirect veya SQLMoreResults, StatementHandle için çağrıldı ve SQL_PARAM_DATA_AVAILABLE döndürdü. Bu işlev, tüm akış parametreleri için veri alınmadan önce çağrıldı.

(DM) StatementHandle için asenkron olarak çalışan bir fonksiyon çağrıldı ve bu fonksiyon çağrıldığında hâlâ çalışıyordu.

(DM) SQLExecute, SQLExecDirect, SQLBulkOperations veya SQLSetPos, StatementHandle için çağrıldı ve SQL_NEED_DATA döndürdü. Bu işlev, tüm yürütme sırasında veri parametreleri veya sütunları için veri gönderilmeden önce çağrıldı.
HY011 Öznitelik şu anda ayarlanamaz Özellik SQL_ATTR_CONCURRENCY, SQL_ ATTR_CURSOR_TYPE, SQL_ ATTR_SIMULATE_CURSOR veya SQL_ ATTR_USE_BOOKMARKS idi ve ifade hazırlandı.
HY013 Bellek yönetimi hatası Büyük olasılıkla düşük bellek koşulları nedeniyle, temel alınan bellek nesnelerine erişilemediğinden işlev çağrısı işlenemedi.
HY017 Otomatik tahsis edilmiş tanımlayıcı tutamacının geçersiz kullanımı (DM) Özellik argümanı SQL_ATTR_IMP_ROW_DESC ya da SQL_ATTR_IMP_PARAM_DESC.

(DM) Özellik argümanı SQL_ATTR_APP_ROW_DESC veya SQL_ATTR_APP_PARAM_DESC idi ve ValuePtr'deki değer, ARD veya APD için orijinal olarak ayrılan tutamaktan farklı örtük olarak tahsis edilmiş bir tanımlayıcı tutuktu.
HY024 Geçersiz öznitelik değeri Belirtilen Öznitelik değeri verildiğinde, ValuePtr'de geçersiz bir değer belirtilmiştir. (Sürücü Yöneticisi bu SQLSTATE'i yalnızca SQL_ATTR_ACCESS_MODE veya SQL_ ATTR_ASYNC_ENABLE gibi ayrık değerler kümesini kabul eden bağlantı ve ifade öznitelikleri için döndürür. Diğer tüm bağlantı ve ifade özellikleri için, sürücü ValuePtr'de belirtilen değeri doğrulamalıdır.)

Attribute argümanı SQL_ATTR_APP_ROW_DESC veya SQL_ATTR_APP_PARAM_DESC idi ve ValuePtr,StatementHandle argümanıyla aynı bağlantıda olmayan açıkça tahsis edilmiş bir tanımlayıcı tutucuydu.
HY090 Geçersiz dize veya arabellek uzunluğu (DM) *ValuePtr bir karakter dizisidir ve StringLength argümanı 0'dan küçüktü ancak SQL_NTS değildi.
HY092 Geçersiz öznitelik/seçenek tanımlayıcısı (DM) Attribute argümanı için belirtilen değer, sürücünün desteklediği ODBC sürümü için geçerli değildi.

(DM) Argüman Attribute için belirtilen değer, yalnızca okunabilir bir öznitelikti.
HY117 Bilinmeyen işlem durumu nedeniyle bağlantı askıya alındı. Yalnızca bağlantıyı kesme ve salt okunur işlevlere izin verilir. (DM) Askıya alınma durumu hakkında daha fazla bilgi için bkz. SQLEndTran İşlevi.
HYC00 İsteğe bağlı özellik uygulanmadı Argüman Attribute için belirtilen değer, sürücü tarafından desteklenen ODBC sürümü için geçerli bir ODBC ifadesi özniteliğiydi ancak sürücü tarafından desteklenmiyordu.

Attribute argümanı SQL_ATTR_ASYNC_ENABLE ve SQL_ASYNC_MODE InfoTypeile SQLGetInfo çağrısı SQL__CONNECTION döndürür.

Özellik argümanı SQL_ATTR_ENABLE_AUTO_IPD ve bağlantı özelliği SQL_ATTR_AUTO_IPD'nin değeri SQL_FALSE.
HYT01 Bağlantı zaman aşımı süresi doldu Veri kaynağı isteği yanıtlamadan önce bağlantı zaman aşımı süresi doldu. Bağlantı zaman aşımı süresi SQLSetConnectAttr, SQL_ATTR_CONNECTION_TIMEOUT aracılığıyla ayarlanır.
IM001 Sürücü bu işlevi desteklemiyor (DM) StatementHandle ile ilişkili sürücü işlevi desteklemiyor.
S1118 Sürücü asenkron bildirimi desteklemiyor SQLSetStmtAttr çağırılırsa SQL_ATTR_ASYNC_STMT_EVENT; Sürücü asenkron bildirimi desteklemez.

Comments

Bir ifade için özetlikler, başka bir çağrı ile değiştirilene veya SQLFreeHandle çağrısıyla ifade kaldırılana kadar geçerlidir. SQLFreeStmt'yi SQL_CLOSE, SQL_UNBIND veya SQL_RESET_PARAMS seçeneğiyle çağırmak ifade özelliklerini sıfırlamaz.

Bazı ifade öznitelikleri, veri kaynağı ValuePtr'de belirtilen değeri desteklemiyorsa benzer bir değerin değiştirilmesini destekler. Böyle durumlarda, sürücü SQL_SUCCESS_WITH_INFO ve SQLSTATE 01S02 (Seçenek değeri değiştirildi) döndürür. Örneğin, Attribute SQL_ATTR_CONCURRENCY ve ValuePtr SQL_CONCUR_ROWVER ise ve veri kaynağı bunu desteklemiyorsa, sürücü SQL_CONCUR_VALUES yerine koyar ve SQL_SUCCESS_WITH_INFO döndürür. Yerine getirilen değeri belirlemek için bir uygulama SQLGetStmtAttr çağrısını yapar.

ValuePtr ile bilgi setinin formatı, belirtilen Özniteliğe bağlıdır. SQLSetStmtAttr , öznitelik bilgisini iki farklı formattan birinde kabul eder: bir karakter dizisi veya bir tamsayı değeri. Her birinin formatı özniteliğin açıklamasında belirtilmiştir. Bu format, SQLGetStmtAttr'deki her öznitelik için döndürülen bilgiler için geçerlidir. SQLSetStmtAttr'ninValuePtr argümanı tarafından işaretlenen karakter dizileri StringLength uzunluğuna sahiptir.

Note

Bağlantı seviyesinde SQLSetConnectAttr çağrısıyla ifade özniteliklerini ayarlama yeteneği ODBC 3.x'te kullanımdan kaldırılmıştır. ODBC 3.x uygulamaları bağlantı seviyesinde ifade özniteliklerini asla ayarlamamalıdır. ODBC 3.x ifade öznitelikleri, bağlantı seviyesinde ayarlanamaz; SQL_ATTR_METADATA_ID ve SQL_ATTR_ASYNC_ENABLE öznitelikleri hariç; bunlar hem bağlantı hem de ifade öznitelikleridir ve bağlantı düzeyinde veya ifade seviyesinde ayarlanabilir.

Note

ODBC 3.x sürücüleri, bağlantı seviyesinde ODBC 2.x ifade seçeneklerini belirleyen ODBC 2.x uygulamalarıyla çalışmaları gerekiyorsa bu işlevselliği desteklemelidir. Daha fazla bilgi için, Ek G: Geri Uyumluluk İçin Sürücü Kılavuzları bölümünde SQLSetConnectOption Mapping altındaki "Bağlantı Düzeyinde Açıklama Seçeneklerini Ayarlama" bölümüne bakınız.

Tanımlayıcı Alanları Belirleyen Özetleme Özellikleri

Birçok ifade özniteliği, bir tanımlayıcının başlık alanına karşılık gelir. Bu nitelikleri ayarlamak aslında tanımlayıcı alanlarının ayarlanmasına yol açar. Alanları SQLSetStmtAttr çağrısıyla ayarlamak, fonksiyon çağrısı için tanımlayıcı kolunun alınmasına gerek kalmamasıdır.

Caution

Bir ifade için SQLSetStmtAttr çağırmak diğer ifadeleri etkileyebilir. Bu, ifadeyle ilişkili APD veya ARD açıkça tahsis edildiğinde ve diğer ifadelerle de ilişkilendirildiğinde gerçekleşir. SQLSetStmtAttr, APD veya ARD'yi değiştirdiğinden, bu değişiklikler bu tanımlayıcının ilişkilendirildiği tüm iyimlere uygulanır. Eğer bu gerekli davranış değilse, uygulama bu tanımlayıcıyı diğer i'mlerden ayırmalı ( SQLSetStmtAttr çağırarak SQL_ATTR_APP_ROW_DESC veya SQL_ATTR_APP_PARAM_DESC alanını farklı bir tanımlayıcı tutacağına ayarlayarak) ve ardından tekrar SQLSetStmtAttr çağırmalıdır.

Bir tanımlayıcı alan, ilgili ifade özniteliğinin ayarlanması sonucu ayarlandığında, alan yalnızca StatementHandle argümanı tarafından tanımlanan ifadeyle ilişkilendirilen mevcut tanımlayıcılar için ayarlanır ve nitelik ayarı, gelecekte o ifadeyle ilişkilendirilebilecek herhangi bir tanımlayıcıyı etkilemez. Aynı zamanda bir ifade özniteliği olan bir tanımlayıcı alan, SQLSetDescField çağrısıyla ayarlandığında, karşılık gelen ifade özniteliği ayarlanır. Açıkça tahsis edilen bir tanımlayıcı bir ifadeden ayrılırsa, başlık alanına karşılık gelen bir ifade özniteliği, örtük olarak tahsis edilen tanımlayıcıdaki alanın değerine geri dönecektir.

Bir ifade tahsis edildiğinde ( bkz. SQLAllocHandle), dört tanımlayıcı tutamacı otomatik olarak tahsis edilir ve ifadeyle ilişkilendirilir. Açıkça tahsis edilen tanımlayıcı tutamaçları, bir tanımlayıcı tutamacını tahsis etmek için SQLAllocHandle ile fHandleType SQL_HANDLE_DESC çağırarak ve ardından SQLSetStmtAttr çağrılıp, tanımlayıcı tutacağı ile ilişkilendirilerek ifade ile ilişkilendirilebilir.

Aşağıdaki tablodaki ifade öznitelikleri, tanımlayıcı başlık alanlarına karşılık gelir.

Bildirim özniteliği Başlık alanı Desc.
SQL_ATTR_PARAM_BIND_OFFSET_PTR SQL_DESC_BIND_OFFSET_PTR APD
SQL_ATTR_PARAM_BIND_TYPE SQL_DESC_BIND_TYPE APD
SQL_ATTR_PARAM_OPERATION_PTR SQL_DESC_ARRAY_STATUS_PTR APD
SQL_ATTR_PARAM_STATUS_PTR SQL_DESC_ARRAY_STATUS_PTR IPD
SQL_ATTR_PARAMS_PROCESSED_PTR SQL_DESC_ROWS_PROCESSED_PTR IPD
SQL_ATTR_PARAMSET_SIZE SQL_DESC_ARRAY_SIZE APD
SQL_ATTR_ROW_ARRAY_SIZE SQL_DESC_ARRAY_SIZE ARD
SQL_ATTR_ROW_BIND_OFFSET_PTR SQL_DESC_BIND_OFFSET_PTR ARD
SQL_ATTR_ROW_BIND_TYPE SQL_DESC_BIND_TYPE ARD
SQL_ATTR_ROW_OPERATION_PTR SQL_DESC_ARRAY_STATUS_PTR ARD
SQL_ATTR_ROW_STATUS_PTR SQL_DESC_ARRAY_STATUS_PTR IRD
SQL_ATTR_ROWS_FETCHED_PTR SQL_DESC_ROWS_PROCESSED_PTR IRD

Beyan Öznitelikleri

Şu anda tanımlanmış özellikler ve tanıtıldıkları ODBC versiyonu aşağıdaki tabloda gösterilmiştir; Farklı veri kaynaklarından faydalanmak için sürücüler tarafından daha fazla özniteliğin tanımlanması beklenmektedir. ODBC tarafından çeşitli özellikler ayrılmıştır; sürücü geliştiricileri, Open Group'tan kendi sürücüye özgü kullanımları için değerleri ayırmalıdır. Daha fazla bilgi için bkz. Driver-Specific Veri Türleri, Tanımlayıcı Türleri, Bilgi Türleri, Tanılama Türleri ve Öznitelikler.

Attribute ValuePtr içeriği
SQL_ATTR_APP_PARAM_DESC (ODBC 3.0) APD'ye gönderilen sap, sonraki çağrılar için SQL Xecute ve SQLExecDirect için özet tutucu. Bu özniteliğin başlangıç değeri, ifadenin ilk tahsis edildiği anda örtük olarak tahsis edilen tanımlayıcıdır. Bu özniteliğin değeri SQL_NULL_DESC olarak ayarlanmışsa veya tanımlayıcı için orijinal olarak tahsis edilen tutamak, daha önce ifade tutucusuna ilişkilendirilen açıkça tahsis edilmiş APD tutamacı ondan ayrılır ve ifade kopu, örtük olarak tahsis edilen APD tutamacına geri döner.

Bu öznitelik, başka bir ifade için örtük olarak tahsis edilmiş bir tanımlayıcı tutacağa veya aynı ifadede örtük olarak ayarlanmış başka bir tanımlayıcı tutaçağına ayarlanamaz; örtük olarak tahsis edilen tanımlayıcı tutamaçları, birden fazla ifade veya tanımlayıcı tutmakla ilişkilendirilemez.
SQL_ATTR_APP_ROW_DESC (ODBC 3.0) ARD'ye giden kullanıcı adını, sonraki getirmeler için ifade tutucusunda alabilir. Bu özniteliğin başlangıç değeri, ifadenin ilk tahsis edildiği anda örtük olarak tahsis edilen tanımlayıcıdır. Bu özniteliğin değeri SQL_NULL_DESC olarak ayarlanırsa veya tanımlayıcı için orijinal olarak tahsis edilen tutamaç, daha önce ifade tutucusuna ilişkilendirilmiş açıkça tahsis edilmiş ARD tutamacı ondan ayrılır ve ifade kopu, örtük olarak tahsis edilmiş ARD tutamacına geri döner.

Bu öznitelik, başka bir ifade için örtük olarak tahsis edilmiş bir tanımlayıcı tutacağa veya aynı ifadede örtük olarak ayarlanmış başka bir tanımlayıcı tutaçağına ayarlanamaz; örtük olarak tahsis edilen tanımlayıcı tutamaçları, birden fazla ifade veya tanımlayıcı tutmakla ilişkilendirilemez.
SQL_ATTR_ASYNC_ENABLE (ODBC 1.0) Belirtilen ifadeyle çağrılan bir fonksiyonun asenkron olarak çalıştırılıp çalıştırılmadığını belirten bir SQLULEN değeri:

SQL_ASYNC_ENABLE_OFF = Varsayılan olarak ifade düzeyinde asenkron yürütme desteğini devre dışı bırak.

SQL_ASYNC_ENABLE_ON = Statement seviyesinde eşzamansız yürütme desteğini etkinleştir.

Daha fazla bilgi için bkz. Eşzamansız Yürütme (Yoklama Yöntemi).

Statement seviyesinde asenkron yürütme desteğine sahip sürücüler için, ifade özniteliği SQL_ATTR_ASYNC_ENABLE sadece okunabilir. Değeri, ifade tutamacı tahsis edildiği zamandaki aynı isme sahip bağlantı seviyesi özniteliğinin değeriyle aynıdır.

SQLSetStmtAttr'yi SQL_ATTR_ASYNC_ENABLE ayarlamak için çağırılır, SQL_ASYNC_MODE InfoType döndüğünde SQL__CONNECTION SQLSTATE HYC00 döndürürse (Isteğe bağlı özellik uygulanmadı). Daha fazla bilgi için SQLSetConnectAttr Fonksiyonu sayfasına bakınız.
SQL_ATTR_ASYNC_STMT_EVENT (ODBC 3.8) Bir olay tutamacı olan bir SQLPOINTER değeri.

Asenkron fonksiyonların tamamlanması bildirimi, SQLSetStmtAttr çağrılıp SQL_ATTR_ASYNC_STMT_EVENT özniteliğini ayarlayarak ve olay tutamacını belirterek etkinleştirilir.
SQL_ATTR_ASYNC_STMT_PCALLBACK (ODBC 3.8) Asenkron geri çağrı fonksiyonuna bir SQLPOINTER.

Yalnızca Sürücü Yöneticisi, bu öznitelikle bir sürücünün SQLSetStmtAttr fonksiyonunu çağırabilir.
SQL_ATTR_ASYNC_STMT_PCONTEXT (ODBC 3.8) Bağlam yapısına bir SQLPOINTER

Yalnızca Sürücü Yöneticisi, bu öznitelikle bir sürücünün SQLSetStmtAttr fonksiyonunu çağırabilir.
SQL_ATTR_CONCURRENCY (ODBC 2.0) İmleç eşzamanlılığını belirten bir SQLULEN değeri:

SQL_CONCUR_READ_ONLY = İmleç yalnızca okunabilir. Güncelleme yapılmaz.

SQL_CONCUR_LOCK = İmleç, satırın güncellenebilmesi için yeterli olan en düşük kilitleme seviyesini kullanır.

SQL_CONCUR_ROWVER = İmleç, SQLBase ROWID veya Sybase TIMESTAMP gibi satır sürümlerini karşılaştırarak iyimser eşdeğerlik kontrolü kullanır.

SQL_CONCUR_VALUES = İmleç, değerleri karşılaştırarak iyimser eşzamanlılık kontrolü kullanır.

SQL_ATTR_CONCURRENCY için varsayılan değer SQL_CONCUR_READ_ONLY.

Bu öznitelik, açık bir imleç için belirtilemez. Daha fazla bilgi için Bakın Eşdeğer Tipler.

Eğer SQL_ATTR_CURSOR_TYPE Özniteliği mevcut SQL_ATTR_CONCURRENCY değerini desteklemeyen bir türe dönüştürülürse, SQL_ATTR_CONCURRENCY değeri çalışma sırasında değiştirilir ve SQLExecDirect veya SQLPrepare çağrıldığında uyarı verilir.

Sürücü SELECT FOR UPDATE ifadesini destekliyorsa ve böyle bir ifade SQL_ATTR_CONCURRENCY değeri SQL_CONCUR_READ_ONLY olarak ayarlanırken yürütülüyorsa, hata döner. Eğer SQL_ATTR_CONCURRENCY değeri, sürücünün SQL_ATTR_CURSOR_TYPE değeri için desteklediği ancak mevcut SQL_ATTR_CURSOR_TYPE değeri için desteklenmediği bir değere değiştirilirse, SQL_ATTR_CURSOR_TYPE değeri çalışma zamanında değişir ve SQLExecDirect veya SQLPrepare çağrıldığında SQLSTATE 01S02 (Seçenek değeri değiştirildi) verilir.

Belirtilen eşzamanlılık veri kaynağı tarafından desteklenmiyorsa, sürücü farklı bir eşdeğerliliği değiştirir ve SQLSTATE 01S02 (Seçenek değeri değiştirildi) döndürür. SQL_CONCUR_VALUES için sürücü SQL_CONCUR_ROWVER yerine geçer ve tam tersi olur. SQL_CONCUR_LOCK için sürücü, sırayla SQL_CONCUR_ROWVER veya SQL_CONCUR_VALUES değiştirir. Yerine getirilen değerin geçerliliği ancak yürütme zamanına kadar kontrol edilir.

SQL_ATTR_CONCURRENCY ile diğer imleç özellikleri arasındaki ilişki hakkında daha fazla bilgi için İmleç Özellikleri ve İmleç Tipi bölümlerine bakınız.
SQL_ATTR_CURSOR_SCROLLABLE (ODBC 3.0) Uygulamanın ihtiyaç duyduğu destek seviyesini belirten bir SQLULEN değeri. Bu özniteliğin ayarlanması, sonraki çağrıları SQLExecDirect ve SQLExecute etkiler.

SQL_NONSCROLLABLE = Özet tutamacında kaydırılabilir imleç gerekmez. Uygulama bu tutukta SQLFetchScroll çağırırsa, FetchOrientation'ın tek geçerli değeri SQL_FETCH_NEXT. Bu varsayılan seçenektir.

SQL_SCROLLABLE = Özet tutamacında kaydırılabilir imleçler gereklidir. SQLFetchScroll çağrıldığında, uygulama FetchOrientation'ın herhangi bir geçerli değerini belirtebilir ve böylece ardışık mod dışındaki modlarda imleç konumlandırmasını sağlayabilir.

Kaydırılabilir imleçler hakkında daha fazla bilgi için Kaydırılabilir İmleçler sayfasına bakınız. SQL_ATTR_CURSOR_SCROLLABLE ile diğer imleç özellikleri arasındaki ilişki hakkında daha fazla bilgi için bkz. İmleç Özellikleri ve İmleç Tipi
SQL_ATTR_CURSOR_SENSITIVITY (ODBC 3.0) Bir SQLULEN değeri, ifade tutucusundaki imlecin, başka bir imleç tarafından yapılan sonuç kümesinde yapılan değişiklikleri görünür edip etmediğini belirtir. Bu özniteliğin ayarlanması, sonraki çağrıları SQLExecDirect ve SQLExecute etkiler. Bir uygulama, bu özniteliğin değerini okuyarak ilk durumunu veya uygulamanın en son belirlediği durumunu elde edebilir.

SQL_UNSPECIFIED = İmleç türünün ne olduğu ve ifade tutucusundaki imleçlerin başka bir imleç tarafından yapılan sonuç kümesinde yapılan değişiklikleri görünür edip etmediği belirtilmemiştir. Deyim tutamacı üzerindeki imleçler hiçbiri, bazıları veya tüm bu tür değişiklikleri görünür hale getirebilir. Bu varsayılan seçenektir.

SQL_INSENSITIVE = Özet sapındaki tüm imleçler, sonuç kümesini gösterir ve başka hiçbir imleç tarafından yapılan değişiklikleri yansıtmaz. Duyarsız imleçler sadece okunabilir. Bu, yalnızca okunabilir bir eşzamanlılığa sahip statik bir imleçle eşleşir.

SQL_SENSITIVE = Özet tutucundaki tüm imleçler, başka bir imleç tarafından bir sonuç kümesinde yapılan tüm değişiklikleri görünür hale getirir.

SQL_ATTR_CURSOR_SENSITIVITY ile diğer imleç özellikleri arasındaki ilişki hakkında daha fazla bilgi için İmleç Özellikleri ve İmleç Tipi bölümlerine bakınız.
SQL_ATTR_CURSOR_TYPE (ODBC 2.0) İmleç türünü belirten bir SQLULEN değeri:

SQL_CURSOR_FORWARD_ONLY = İmleç sadece ileriye kaydırır.

SQL_CURSOR_STATIC = Sonuç kümesindeki veri statiktir.

SQL_CURSOR_KEYSET_DRIVEN = Sürücü, SQL_ATTR_KEYSET_SIZE ifadesi özniteliğinde belirtilen satır sayısı için anahtarları kaydeder ve kullanır.

SQL_CURSOR_DYNAMIC = Sürücü, satır kümesindeki satır anahtarlarını kaydeder ve kullanır.

Varsayılan değer SQL_CURSOR_FORWARD_ONLY. Bu öznitelik, SQL ifadesi hazırlandıktan sonra belirtilemez.

Belirtilen imleç türü veri kaynağı tarafından desteklenmiyorsa, sürücü farklı bir imleç tipini değiştirir ve SQLSTATE 01S02 (Seçenek değeri değiştirilmiştir) döner. Karışık veya dinamik bir imleç için, sürücü sırasına göre tuş setiyle veya statik bir imleç değiştirir. Tuş setiyle ilgili bir imleç için, sürücü statik bir imleç kullanır.

Kaydırılabilir imleç türleri hakkında daha fazla bilgi için Kaydırılabilir İmleç Türleri sayfasına bakınız. SQL_ATTR_CURSOR_TYPE ile diğer imleç özellikleri arasındaki ilişki hakkında daha fazla bilgi için İmleç Özellikleri ve İmleç Tipi bölümlerine bakınız.
SQL_ATTR_ENABLE_AUTO_IPD (ODBC 3.0) IPD'nin otomatik popülasyonunun yapılıp yapılmadığını belirten bir SQLULEN değeri:

SQL_TRUE = SQLPrepare çağrısından sonra IPD'nin otomatik olarak popülasyonu açılır. SQL_FALSE = SQLPrepare çağrısından sonra IPD'nin otomatik popülasyonunu kapatır. (Bir uygulama, destekleniyorsa SQLDescribeParam çağırarak IPD alan bilgisini yine de elde edebilir.) Özetleme özniteliği SQL_ATTR_ENABLE_AUTO_IPD'nin varsayılan değeri SQL_FALSE'tir. Daha fazla bilgi için IPD'nin Otomatik Nüfusu (IPD) bölümüne bakınız.
SQL_ATTR_FETCH_BOOKMARK_PTR (ODBC 3.0) Bir SQLLEN * ve bu ikili yer imi değerine işaret eder. SQLFetchScrollfFetchOrientation SQL_FETCH_BOOKMARK'ye eşit olarak çağrıldığında, sürücü bu alandan yer imi değerini alır. Bu alan varsayılan olarak null işaretçisi olur. Daha fazla bilgi için Kaydırma ile Yer İmparatı sayfasına bakınız.

Bu alanda belirtilen değer, yer imiyle silmek, yer imiyle güncellemek veya SQLBulkOperations'ta yer imi işlemleriyle getirme işlemleri için kullanılmaz; bu işlemler sıralı küme tamponlarında önbelleklenen yer imlerini kullanır.
SQL_ATTR_IMP_PARAM_DESC (ODBC 3.0) IPD'nin tutamacı. Bu özniteliğin değeri, ifadenin ilk tahsis edildiğinde tahsis edilen tanımlayıcıdır. Uygulama bu özniteliği ayarlayamaz.

Bu öznitelik, SQLGetStmtAttr çağrısıyla alınabilir ancak SQLSetStmtAttr çağrısıyla ayarlanamaz.
SQL_ATTR_IMP_ROW_DESC (ODBC 3.0) IRD'nin tutamacı. Bu özniteliğin değeri, ifadenin ilk tahsis edildiğinde tahsis edilen tanımlayıcıdır. Uygulama bu özniteliği ayarlayamaz.

Bu öznitelik, SQLGetStmtAttr çağrısıyla alınabilir ancak SQLSetStmtAttr çağrısıyla ayarlanamaz.
SQL_ATTR_KEYSET_SIZE (ODBC 2.0) Anahtar seti odaklı bir imleç için anahtar setindeki satır sayısını belirten bir SQLULEN. Anahtar seti boyutu 0 ise (varsayılan olarak), imleç tamamen tuş seti tarafından yönlendirilir. Anahtar seti boyutu 0'dan büyükse, imleç karıştırılır (tuş seti içinde ve tuş seti dışında dinamik). Varsayılan tuş seti boyutu 0'dır. Tuş seti odaklı imlecatlar hakkında daha fazla bilgi için Keyset-Driven İmleçler bölümüne bakınız.

Belirtilen boyut maksimum anahtar seti boyutunu aşarsa, sürücü bu boyutu değiştirir ve SQLSTATE 01S02 (Seçenek değeri değiştirildi) döner.

SQLFetch veya SQLFetchScroll , anahtar kümesi boyutu 0'dan büyük ve satır kümesi boyutundan küçükse hata döndürür.
SQL_ATTR_MAX_LENGTH (ODBC 1.0) Sürücünün bir karakter veya ikili sütundan döndüreceği maksimum veri miktarını belirten bir SQLULEN değeri. Eğer ValuePtr mevcut verinin uzunluğundan küçükse, SQLFetch veya SQLGetData veriyi kısaltır ve SQL_SUCCESS döndürür. ValuePtr 0 ise (varsayılan olarak), sürücü tüm mevcut verileri geri getirmeye çalışır.

Belirtilen uzunluk, veri kaynağının döndürebileceği minimum veri miktarından az veya veri kaynağının döndürebileceği maksimum veri miktarından daha büyükse, sürücü bu değeri değiştirir ve SQLSTATE 01S02 (Seçenek değeri değiştirildi) döndürür.

Bu özniteliğin değeri açık bir imleç üzerinde ayarlanabilir; ancak bu ayar hemen etkiye girmeyebilir; bu durumda sürücü SQLSTATE 01S02 (Seçenek değeri değiştirildi) döndürür ve özniteliği orijinal değerine sıfırlar.

Bu özellik, ağ trafiğini azaltmak için tasarlanmıştır ve yalnızca çok katmanlı sürücüdeki veri kaynağı (sürücü değil) bunu uygulayabildiğinde desteklenmelidir. Bu mekanizma, uygulamalar tarafından verileri kısaltmak için kullanılmamalıdır; alınan veriyi kısaltmak için, bir uygulama SQLBindCol veya SQLGetData'dakiBufferLength argümanında maksimum tampon uzunluğunu belirtmelidir.
SQL_ATTR_MAX_ROWS (ODBC 1.0) SELECT ifadesi için uygulamaya geri dönecek maksimum satır sayısına karşılık gelen bir SQLULEN değeri. *ValuePtr 0'a eşitse (varsayılan), sürücü tüm satırları döndürür.

Bu özellik, ağ trafiğini azaltmak için tasarlanmıştır. Kavramsal olarak, sonuç kümesi oluşturulduğunda uygulanır ve sonuç kümesini ilk ValuePtr satırlarıyla sınırlar. Sonuçlar kümesindeki satır sayısı ValuePtr'den büyükse, sonuç kümesi kısaltılır.

SQL_ATTR_MAX_ROWS, katalog fonksiyonları tarafından döndürülenler dahil olmak üzere Statement'taki tüm sonuç kümeleri için geçerlidir. SQL_ATTR_MAX_ROWS, imleç satır sayısının değeri için maksimum bir sınır belirler.

Bir sürücü, veri kaynağında sonuç kümesi boyutu sınırlamaları uygulanamazsa, SQL_ATTR_MAX_ROWS davranışı SQLFetch veya SQLFetchScroll için emüle etmemelidir (eğer veri kaynağında sonuç kümesi boyutu sınırlamaları uygulanamazsa), eğer SQL_ATTR_MAX_ROWS doğru şekilde uygulanacağını garanti edemezse.

SQL_ATTR_MAX_ROWS SELECT ifadeleri dışındaki ifadelere (örneğin katalog fonksiyonları) uygulanıp uygulanmadığı sürücü tarafından tanımlanır.

Bu özniteliğin değeri açık bir imleç üzerinde ayarlanabilir; ancak bu ayar hemen etkiye girmeyebilir; bu durumda sürücü SQLSTATE 01S02 (Seçenek değeri değiştirildi) döndürür ve özniteliği orijinal değerine sıfırlar.
SQL_ATTR_METADATA_ID (ODBC 3.0) Katalog fonksiyonlarının string argümanlarının nasıl işlenildiğini belirleyen bir SQLULEN değeri.

Eğer SQL_TRUE ise, katalog fonksiyonlarının dizi argümanı tanımlayıcı olarak kabul edilir. Dava önemli değil. Sınırlandırılmamış dişimler için, sürücü takip eden boşlukları kaldırır ve ip büyük harflere katlanır. Belirlenmiş dizilerle ilgili olarak, sürücü önde veya sonraki boşlukları kaldırır ve sınırlayıcılar arasındaki boşlukları kelimenin tam anlamıyla alır. Bu argümanlardan biri null işaretçiye ayarlandığında, fonksiyon SQL_ERROR ve SQLSTATE HY009 (Null pointer'ın geçersiz kullanımı) döner.

Eğer SQL_FALSE ise, katalog fonksiyonlarının string argümanları tanımlayıcı olarak kabul edilmez. Dava önemli. Argümana bağlı olarak ya bir dizi arama deseni içerebilirler ya da içermeyebilirler.

Varsayılan değer SQL_FALSE.

SQLTables'ınTableType argümanı, bir değer listesi alır ve bu öznitelikten etkilenmez.

SQL_ATTR_METADATA_ID bağlantı seviyesinde de ayarlanabilir. (It ve SQL_ATTR_ASYNC_ENABLE, bağlantı özniteliği olan tek ifade öznitelikleridir.)

Daha fazla bilgi için bkz. Katalog İşlevleri'ndeki Bağımsız Değişkenler.
SQL_ATTR_NOSCAN (ODBC 1.0) Sürücünün SQL dizileri kaçış dizilerini taramaması gerektiğini gösteren bir SQLULEN değeri:

SQL_NOSCAN_OFF = Sürücü, SQL dizileri kaçış dizileri için tarar (varsayılan olarak).

SQL_NOSCAN_ON = Sürücü, SQL dizileri kaçış dizileri için taramaz. Bunun yerine, sürücü ifadeyi doğrudan veri kaynağına gönderir.

Daha fazla bilgi için ODBC'deki Kaçış Dizileri'ne bakınız.
SQL_ATTR_PARAM_BIND_OFFSET_PTR (ODBC 3.0) Dinamik parametrelerin bağlanmasını değiştirmek için işaretçilere eklenen bir ofseti gösteren bir SQLULEN * değeri. Eğer bu alan null değilse, sürücü işaretçiyi referanstan çıkarır, tanımlayıcı kaydındaki her bir ertelenmiş alana (SQL_DESC_DATA_PTR, SQL_DESC_INDICATOR_PTR ve SQL_DESC_OCTET_LENGTH_PTR) referansı dereferences değerini ekler ve bağlama sırasında yeni işaretçi değerlerini kullanır. Varsayılan olarak null olarak ayarlanmıştır.

Bağlama ofseti her zaman doğrudan SQL_DESC_DATA_PTR, SQL_DESC_INDICATOR_PTR ve SQL_DESC_OCTET_LENGTH_PTR alanlarına eklenir. Eğer ofset farklı bir değere değiştirilirse, yeni değer yine de tanımlayıcı alanındaki değere doğrudan eklenir. Yeni ofset, alan değerine ve önceki ofsetlere eklenmez.

Daha fazla bilgi için Parametre Bağlama Ofsetleri sayfasına bakınız.

Bu ifade özniteliği ayarlandığında, APD başlığında SQL_DESC_BIND_OFFSET_PTR alanını ayarlar.
SQL_ATTR_PARAM_BIND_TYPE (ODBC 3.0) Dinamik parametreler için kullanılacak bağlama yönelimini gösteren bir SQLULEN değeri.

Bu alan, sütun bazında bağlama seçmek için SQL_PARAM_BIND_BY_COLUMN (varsayılan olan) olarak ayarlanmıştır.

Satır bazında bağlama seçmek için, bu alan yapının uzunluğuna veya dinamik parametreler kümesine bağlı olacak bir tampon örneğine ayarlanır. Bu uzunluk, tüm sınırlı parametreler ve yapının veya tamponunun herhangi bir dolgusu için boşluk içermelidir; böylece bir sınır parametresinin adresi belirlenen uzunlukla artırıldığında, sonuç aynı parametrin bir sonraki parametre setindeki başlangıcına işaret eder. ANSI C'de sizeof operatörü kullanıldığında bu davranış garanti edilir.

Daha fazla bilgi için bkz. Parametrelerin Bağlanma Dizileri.

Bu ifade özniteliği ayarlandığında, APD başlığında SQL_DESC_ BIND_TYPE alanını ayarlar.
SQL_ATTR_PARAM_OPERATION_PTR (ODBC 3.0) SQL ifadesi çalıştırılırken bir parametreyi görmezden gelmek için kullanılan SQLUSMALLINT değerlerinden oluşan bir diziyi gösteren bir SQLUSMALLINT * değeri. Her değer ya SQL_PARAM_PROCEED (parametrenin çalıştırılması için) ya da SQL_PARAM_IGNORE (parametrenin göz ardı edilmesi için) olarak ayarlanır.

İşlem sırasında bir dizi parametre, APD'de SQL_DESC_ARRAY_STATUS_PTR tarafından işaret edilen dizideki durum değeri SQL_PARAM_IGNORE olarak ayarlanarak göz ardı edilebilir. Bir parametre kümesi, durum değeri SQL_PARAM_PROCEED olarak ayarlanmışsa veya dizideki hiçbir eleman ayarlanmamışsa işlenir.

Bu ifade özniteliği null işaretçiye ayarlanabilir, bu durumda sürücü parametre durum değerlerini döndürmez. Bu öznitelik herhangi bir zamanda ayarlanabilir, ancak yeni değer SQLExecDirect veya SQLExecute bir sonraki çağrılana kadar kullanılmaz.

Bu öznitelik, bağlı parametre olmadığında göz ardı edilir.

Daha fazla bilgi için bkz. Parametreler Dizilerini Kullanmak.

Bu ifade niteliğini ayarladığınızda, APD başlığında SQL_DESC_ARRAY_STATUS_PTR alanı ayar.
SQL_ATTR_PARAM_STATUS_PTR (ODBC 3.0) SQLExecute veya SQLExecDirect çağrısından sonra her satırlık parametre değeri için durum bilgisi içeren SQLUSMALLINT değerlerinden oluşan bir diziyi gösteren bir SQLUSMALLINT * değeri. Bu alan yalnızca PARAMSET_SIZE 1'den büyük ise gereklidir.

Durum değerleri aşağıdaki değerleri içerebilir:

SQL_PARAM_SUCCESS: SQL ifadesi bu parametre seti için başarıyla çalıştırıldı.

SQL_PARAM_SUCCESS_WITH_INFO: SQL ifadesi bu parametre seti için başarıyla çalıştırıldı; Ancak, uyarı bilgileri tanı veri yapısında mevcuttur.

SQL_PARAM_ERROR: Bu parametre setini işlemede bir hata vardı. Ek hata bilgisi tanı veri yapısında mevcuttur.

SQL_PARAM_UNUSED: Bu parametre kümesi kullanılmadı; muhtemelen önceki bazı parametre kümelerinin daha fazla işlemeyi durduran bir hata yaratması ya da SQL_ATTR_PARAM_OPERATION_PTR tarafından belirtilen dizideki o parametre seti için SQL_PARAM_IGNORE ayarlanmış olması nedeniyle.

SQL_PARAM_DIAG_UNAVAILABLE: Sürücü, parametre dizilerini monolit bir birim olarak ele alır ve bu nedenle bu seviyede hata bilgisi üretmez.

Bu ifade özniteliği null işaretçiye ayarlanabilir, bu durumda sürücü parametre durum değerlerini döndürmez. Bu öznitelik herhangi bir zamanda ayarlanabilir, ancak yeni değer SQLExecute veya SQLExecDirect bir sonraki çağrılana kadar kullanılmaz. Bu özniteliğin ayarlanması, sürücünün uyguladığı çıktı parametre davranışını etkileyebilir.

Daha fazla bilgi için bkz. Parametreler Dizilerini Kullanmak.

Bu ifade niteliğini ayarladığınızda, IPD başlığında SQL_DESC_ARRAY_STATUS_PTR alanını ayar.
SQL_ATTR_PARAMS_PROCESSED_PTR (ODBC 3.0) Hata kümeleri dahil işlenmiş parametre kümelerinin döndürülmesi için bir tampon gösteren bir SQLULEN * kayıt alanıdır. Bu null işaretçiyse hiçbir sayı geri dönmez.

Bu ifade özniteliği ayarlandığında IPD başlığında SQL_DESC_ROWS_PROCESSED_PTR alanı ayar.

Bu öznitelikle işaret edilen tamponu dolduran SQLExecDirect veya SQLExecute çağrısı SQL_SUCCESS veya SQL_SUCCESS_WITH_INFO döndürmezse, tamponun içeriği tanımlanmamıştır.

Daha fazla bilgi için bkz. Parametreler Dizilerini Kullanmak.
SQL_ATTR_PARAMSET_SIZE (ODBC 3.0) Her parametre için değer sayısını belirten bir SQLULEN değeri. Eğer SQL_ATTR_PARAMSET_SIZE 1'den büyükse, APD'nin SQL_DESC_DATA_PTR, SQL_DESC_INDICATOR_PTR ve SQL_DESC_OCTET_LENGTH_PTR'i dizilere işaret eder. Her dizinin kardinalitesi bu alanın değerine eşittir.

Bu öznitelik, bağlı parametre olmadığında göz ardı edilir.

Daha fazla bilgi için bkz. Parametreler Dizilerini Kullanmak.

Bu ifade niteliğini ayarladığınızda, APD başlığında SQL_DESC_ARRAY_SIZE alanını ayarlar.
SQL_ATTR_QUERY_TIMEOUT (ODBC 1.0) Uygulamaya geri dönmeden önce bir SQL ifadesinin çalıştırılmasını bekleme saniye sayısına karşılık gelen bir SQLULEN değeri. ValuePtr 0'a eşitse (varsayılan), zaman aşımı yoktur.

Belirtilen zaman aşımı, veri kaynağında maksimum zaman aşımını aşıyorsa veya minimum zaman aşımından küçükse, SQLSetStmtAttr bu değeri değiştirir ve SQLSTATE 01S02 (Seçenek değeri değiştirildi) döndürür.

Unutmayın, bir SELECT ifadesi zamanlamışsa, uygulamanın ifadeyi tekrar kullanmak için SQLCloseCursor'u çağırmasına gerek yoktur.

Bu ifade özniteliğindeki sorgu zaman aşımına göre belirlenen soru hem eşzamanlı hem de asenkron modlarda geçerlidir.
SQL_ATTR_RETRIEVE_DATA (ODBC 2.0) An SQLULEN değeri:

SQL_RD_ON = SQLFetchScroll ve ODBC 3.x'teSQLFetch , imleci belirtilen konuma yerleştirdikten sonra verileri alır. Bu varsayılan seçenektir.

SQL_RD_OFF = SQLFetchScroll ve ODBC 3.x'teSQLFetch imleci konumlandırdıktan sonra veri almaz.

SQL_RETRIEVE_DATA'yi SQL_RD_OFF olarak ayarlayarak, bir uygulama bir satırın var olduğunu doğrulayabilir veya satır için bir yer imimi alabilir, böylece satır alma yükü olmaz. Daha fazla bilgi için Kaydırma ve Getirme Sıraları bölümlerine bakınız.

Bu özniteliğin değeri açık bir imleç üzerinde ayarlanabilir; ancak bu ayar hemen etkiye girmeyebilir; bu durumda sürücü SQLSTATE 01S02 (Seçenek değeri değiştirildi) döndürür ve özniteliği orijinal değerine sıfırlar.
SQL_ATTR_ROW_ARRAY_SIZE (ODBC 3.0) SQLFetch veya SQLFetchScroll'a yapılan her çağrıda döndürülen satır sayısını belirten bir SQLULEN değeri. Ayrıca, SQLBulkOperations'ta toplu yer imi işlemi sırasında kullanılan bir yer imi dizisinde satır sayısıdır. Varsayılan değer 1'dir.

Belirtilen sıra kümesi boyutu, veri kaynağı tarafından desteklenen maksimum sıralar kümesi boyutunu aşarsa, sürücü bu değeri değiştirir ve SQLSTATE 01S02 (Seçenek değeri değiştirildi) döner.

Daha fazla bilgi için Sıra Kümesi Boyutu'na bakınız.

Bu ifade özniteliği ayarlandığında, ARD başlığında SQL_DESC_ARRAY_SIZE alanını ayar.
SQL_ATTR_ROW_BIND_OFFSET_PTR (ODBC 3.0) Column verilerinin bağlanmasını değiştirmek için işaretçilere eklenen bir ofseti gösteren bir SQLULEN * değeri. Eğer bu alan null değilse, sürücü işaretçiyi referanstan çıkarır, tanımlayıcı kaydındaki her bir ertelenmiş alana (SQL_DESC_DATA_PTR, SQL_DESC_INDICATOR_PTR ve SQL_DESC_OCTET_LENGTH_PTR) referansı dereferences değerini ekler ve bağlama sırasında yeni işaretçi değerlerini kullanır. Varsayılan olarak null olarak ayarlanmıştır.

Bu ifade özniteliği ayarlandığında ARD başlığında SQL_DESC_BIND_OFFSET_PTR alanı ayar.
SQL_ATTR_ROW_BIND_TYPE (ODBC 1.0) İlgili ifadede SQLFetch veya SQLFetchScroll çağrıldığında kullanılacak bağlama yönelimini belirleyen bir SQLULEN değeri. Sütun bazında bağlama, değeri SQL_BIND_BY_COLUMN olarak ayarlanarak seçilir. Satır bazında bağlama, değerin bir yapının veya sonuç sütunlarının bağlanacağı bir tampon örneğinin uzunluğuna ayarlanmasıyla seçilir.

Bir uzunluk belirtilmişse, tüm bağlı sütunlar ve yapının veya tamponunun herhangi bir dolgusu için boşluk içermelidir; böylece bir bağlı sütunun adresi belirlenen uzunlukla artırıldığında, sonuç aynı sütunun bir sonraki satırdaki başlangıcına işaret eder. ANSI C'de yapılar veya birleşimlerle operatörün boyutu kullanıldığında, bu davranış garanti edilir.

Column-wise bağlama, SQLFetch ve SQLFetchScroll için varsayılan bağlama yönelimidir.

Daha fazla bilgi için Blok İmleçleriyle Kullanım için Bağlama Sütunları bölümünü inceleyebilirsiniz.

Bu ifade özniteliği ayarlandığında, ARD başlığında SQL_DESC_BIND_TYPE alanını ayarlar.
SQL_ATTR_ROW_NUMBER (ODBC 2.0) Tüm sonuç kümesindeki mevcut satırın sayısı olan bir SQLULEN değeri. Mevcut satırın sayısı belirlenemezse veya mevcut satır yoksa, sürücü 0 döndürür.

Bu öznitelik, SQLGetStmtAttr çağrısıyla alınabilir ancak SQLSetStmtAttr çağrısıyla ayarlanamaz.
SQL_ATTR_ROW_OPERATION_PTR (ODBC 3.0) SQLSetPos kullanılarak toplu işlem sırasında bir satırı görmezden gelmek için kullanılan SQLUSMALLINT değerlerinden oluşan bir diziyi gösteren bir SQLUSMALLINT * değeri. Her değer ya SQL_ROW_PROCEED (satırın toplu işleme dahil edilmesi için) ya da SQL_ROW_IGNORE (satırın toplu işlemden dışlanması için) olarak ayarlanır. (Bu dizi SQLBulkOperations çağrıları sırasında kullanılarak satırlar göz ardı edilemez.)

Bu ifade özniteliği bir null işaretçiye ayarlanabilir, bu durumda sürücü satır durum değerlerini döndürmez. Bu öznitelik herhangi bir zamanda ayarlanabilir, ancak yeni değer SQLSetPos bir sonraki çağrılana kadar kullanılmaz.

Daha fazla bilgi için, SQLSetPos ile Sıralar Kümesinde Satır Günlerleme ve SQLSetPos ile Sıralar Setinde Satır Silme bölümlerine bakınız.

Bu ifade özniteliği ayarlandığında ARD'deki SQL_DESC_ARRAY_STATUS_PTR alanını ayar.
SQL_ATTR_ROW_STATUS_PTR (ODBC 3.0) SQLFetch veya SQLFetchScroll çağrısından sonra satır durum değerlerini içeren SQLUSMALLINT değerlerinden oluşan bir diziye işaret eden bir SQLUSMALLINT * değeri. Dizide, satır setindeki satır sayısı kadar çok öğeye sahiptir.

Bu ifade özniteliği bir null işaretçiye ayarlanabilir, bu durumda sürücü satır durum değerlerini döndürmez. Bu öznitelik herhangi bir zamanda ayarlanabilir, ancak yeni değer SQLBulkOperations, SQLFetch, SQLFetchScroll veya SQLSetPos çağrılana kadar kullanılmaz.

Daha fazla bilgi için Getirilen Sıra Sayısı ve Durum bölümlerine bakınız.

Bu ifade niteliğini ayarladığınızda IRD başlığında SQL_DESC_ARRAY_STATUS_PTR alanı ayar.

Bu öznitelik, ODBC 2.x sürücüsü tarafından SQLExtendedFetch çağrısıyla rgbRowStatus dizisine eşlenir.
SQL_ATTR_ROWS_FETCHED_PTR (ODBC 3.0) SQLFetch veya SQLFetchScroll çağrısından sonra alınan satır sayısını döndürmek için bir tampon gösteren bir SQLULEN * değeri; SQL_REFRESH Operasyon argümanı olan SQLSetPos çağrısıyla yapılan toplu işlemden etkilenen satır sayısı; veya SQLBulkOperations tarafından yapılan toplu işlemden etkilenen satır sayısı. Bu sayı, hata satırlarını da kapsar.

Daha fazla bilgi için Getirilen Sıra Sayısı ve Durum bölümlerine bakınız.

Bu ifade özniteliği ayarlandığında, IRD başlığında SQL_DESC_ROWS_PROCESSED_PTR alanını ayar.

Bu öznitelikle işaret edilen tamponu dolduran SQLFetch veya SQLFetchScroll çağrısı SQL_SUCCESS veya SQL_SUCCESS_WITH_INFO döndürmezse, tamponun içeriği tanımlanmamıştır.
SQL_ATTR_SIMULATE_CURSOR (ODBC 2.0) Konumlandırılmış güncelleme ve silme ifadelerini simüle eden sürücülerin bu ifadelerin yalnızca tek bir satırı etkilediğini garanti edip etmediğini belirten bir SQLULEN değeri.

Konumlanmış güncelleme ve silme ibetlerini simüle etmek için, çoğu sürücü mevcut satırdaki her sütunun değerini belirten bir WHERE maddesi içeren bir aranan UPDATE veya DELETE ifade oluşturur. Bu sütunlar benzersiz bir anahtar oluşturmadıkça, böyle bir ifade birden fazla satırı etkileyebilir.

Bu tür ifadelerin yalnızca bir satırı etkilemesini sağlamak için, sürücü benzersiz bir anahtardaki sütunları belirler ve bu sütunları sonuç kümesine ekler. Bir uygulama, sonuç kümesindeki sütunların benzersiz bir anahtar oluşturduğunu garanti ederse, sürücünün bunu yapması gerekmez. Bu, uygulama süresini azaltabilir.

SQL_SC_NON_UNIQUE = Sürücü, simüle edilmiş konumlanmış güncelleme veya silme ifadelerinin yalnızca bir satırı etkileyeceğini garanti etmez; bunu yapmak uygulamanın sorumluluğudur. Bir ifade birden fazla satırı etkilerse, SQLExecute, SQLExecDirect veya SQLSetPos SQLSTATE 01001 (İmleç işlemi çakışması) döner.

SQL_SC_TRY_UNIQUE = Sürücü, simüle edilmiş konumlanmış güncelleme veya silme ifadelerinin yalnızca bir satırı etkilediğini garanti etmeye çalışır. Sürücü, benzersiz anahtar olmaması gibi birden fazla satırı etkilese bile bu tür deyimleri her zaman yürütür. Bir ifade birden fazla satırı etkilerse, SQLExecute, SQLExecDirect veya SQLSetPos SQLSTATE 01001 (İmleç işlemi çakışması) döner.

SQL_SC_UNIQUE = Sürücü, simüle edilmiş konumlanmış güncelleme veya silme ifadelerinin yalnızca bir satırı etkilediğini garanti eder. Sürücü belirli bir ifade için bunu garanti edemezse, SQLExecDirect veya SQLPrepare hata döndürür.

Veri kaynağı, konumlanmış güncelleme ve silme ifadeleri için yerel SQL desteği sağlıyorsa ve sürücü imleci simüle etmiyorsa, SQL_SIMULATE_CURSOR için SQL_SC_UNIQUE istendiğinde SQL_SUCCESS geri döner. SQL_SUCCESS_WITH_INFO SQL_SC_TRY_UNIQUE veya SQL_SC_NON_UNIQUE istendiğinde iade edilir. Eğer veri kaynağı SQL_SC_TRY_UNIQUE destek seviyesini sağlarken sürücü sağlamıyorsa, SQL_SUCCESS SQL_SC_TRY_UNIQUE için döner, SQL_SUCCESS_WITH_INFO ise SQL_SC_NON_UNIQUE için döner.

Belirtilen imleç simülasyon tipi veri kaynağı tarafından desteklenmiyorsa, sürücü farklı bir simülasyon tipini değiştirir ve SQLSTATE 01S02 (Seçenek değeri değiştirildi) döner. SQL_SC_UNIQUE için sürücü, sırayla SQL_SC_TRY_UNIQUE veya SQL_SC_NON_UNIQUE değiştirir. SQL_SC_TRY_UNIQUE için sürücü SQL_SC_NON_UNIQUE yerine koyar.

Varsayılan SQL_SC_UNIQUE.

Daha fazla bilgi için Konumlanmış Güncelleme ve Silme Bildirimlerini Simülasyon Bölümüne bakınız.
SQL_ATTR_USE_BOOKMARKS (ODBC 2.0) Bir uygulamanın imleciyle yer imleci kullanıp kullanmayacağını belirten SQLULEN değeri:

SQL_UB_OFF = Kapalı (varsayılan)

SQL_UB_VARIABLE = Bir uygulama, imleçli yer imi kullanır ve sürücü, destekleniyorsa değişken uzunlukta yer imimi sağlar. SQL_UB_FIXED, ODBC 3.x'te kullanımdan kaldırılmıştır. ODBC 3.x uygulamaları, ODBC 2.x sürücüleriyle çalışırken bile her zaman değişken boyluklu yer imleri kullanmalıdır (bu sürücüler sadece 4 baytlık, sabit boy yer ayımlarını destekler). Bunun nedeni, sabit boy yer iminin değişken uzunlukta yer iminin özel bir durumu olmasıdır. ODBC 2.x sürücüsüyle çalışırken, Driver Manager SQL_UB_VARIABLE SQL_UB_FIXED'a eşledi.

İmleçle yer imimci kullanmak için uygulama, imleci açmadan önce bu özniteliği SQL_UB_VARIABLE değeriyle belirtmelidir.

Daha fazla bilgi için bkz. Yer imlerini almak.

[1] Bu fonksiyonlar, tanımlayıcı uygulama tanımlayıcısı değil, uygulama tanımlayıcısı ise asenkron olarak çağrılabilir.

Bkz. Column-Wise Bağlama ve Row-Wise Bağlama.

Hakkında bilgi için Bkz:
Deyim işlemeyi iptal etme SQLCancel İşlevi
Bağlantı özniteliğinin ayarını döndürme SQLGetConnectAttr İşlevi
Deyim özniteliğinin ayarını döndürme SQLGetStmtAttr İşlevi
Bağlantı özelliği ayarı SQLSetConnectAttr İşlevi
Tanımlayıcının tek bir alanını ayarlamak SQLSetDescField Fonksiyonu

Ayrıca Bkz.

ODBC API Referansı
ODBC Üst Bilgi Dosyaları