SQLSetConnectAttr İşlevi

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

Summary
SQLSetConnectAttr , bağlantıların yönlerini yöneten ö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 Geri Uyumluluğu için Mapping Replacement Functions sayfasına bakınız.

Syntax

  
SQLRETURN SQLSetConnectAttr(  
     SQLHDBC       ConnectionHandle,  
     SQLINTEGER    Attribute,  
     SQLPOINTER    ValuePtr,  
     SQLINTEGER    StringLength);  

Arguments

ConnectionHandle
[Giriş] Bağlantı tutamacı.

Öznitelik
[Giriş] Setin atribeği, "Yorumlar" bölümünde listelenmiştir.

Valueptr
[Giriş] Öznitelik ile ilişkilendirilecek değere işaret edin. Attribute'un değerine bağlı olarak, ValuePtr işaretsiz bir tam sayı değeri olur veya null-sonlanmış bir karakter dizisine işaret eder. Özellik argümanının integral tipi sabit uzunlukta olmayabilir, detay için Yorumlar bölümüne bakınız.

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. Karakter dizisi verileri için, bu argüman dizide bayt sayısını içermelidir.

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, SQL_INVALID_HANDLE ya da SQL_STILL_EXECUTING.

Diagnostics

SQLSetConnectAttr SQL_ERROR veya SQL_SUCCESS_WITH_INFO döndürdüğünde, ilişkili bir SQLSTATE değeri SQLGetDiagRec çağrılıp, SQL_HANDLE_DBC HandleType ve ConnectionHandle Handle ile elde edilebilir. Aşağıdaki tablo, SQLSetConnectAttr tarafından sıkça duygulanan SQLSTATE değerlerini listeler; "(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.

Sürücü, bir seçeneği ayarlamanın sonucu hakkında bilgi vermek için SQL_SUCCESS_WITH_INFO geri dönebilir.

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 desteklemedi ve benzer bir değeri değiştirdi. (İşlev SQL_SUCCESS_WITH_INFO döndürür.)
08002 Bağlantının adı kullanımda Attribute argümanı SQL_ATTR_ODBC_CURSORS ve sürücü zaten veri kaynağına bağlıydı.
08003 Bağlantı açık değil (DM) Açık bağlantı gerektiren bir Öznitelik değeri belirtildi, ancak ConnectionHandle bağlı durumda değildi.
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 argümanı SQL_ATTR_CURRENT_CATALOG ve bir sonuç seti bekleniyordu.
25000 Yerel bir işlem sırasında yasa dışı işletme Bir bağlantı, dağıtık işlem bağlantısına (DTC) katılmaya çalışırken bağlantı özniteliği SQL_ATTR_ENLIST_IN_DTC ayarlanarak yerel bir işlemdeydi.

Bir bağlantı zaten bir DTC'ye kayıtlı durumda.

Dağıtık işlem bağlantısına bir bağlantı kaydedildi ve SQL_ATTR_AUTOCOMMIT SQL_AUTOCOMMIT_OFF olarak ayarlanarak yerel bir işlem başlatıldı.
3D000 Geçersiz katalog adı Attribute argümanı SQL_CURRENT_CATALOG ve belirtilen katalog adı geçersizdi.
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ı.
HY008 İşlem iptal edildi ConnectionHandle için asenkron işlem etkinleştirildi. SQLSetConnectAttr fonksiyonu çağrıldı ve çalıştırma tamamlanmadan önce ConnectionHandle üzerinde SQLCancelHandle fonksiyonu çağrıldı, ardından ConnectionHandle üzerinde tekrar SQLSetConnectAttr fonksiyonu çağrıldı.

Ya da SQLSetConnectAttr fonksiyonu çağrılır ve çalıştırma tamamlanmadan önce, çok iş parçacıklı bir uygulamada farklı bir iş parçacığından ConnectionHandleüzerinde SQLCancelHandle çağrılmıştır.
HY009 Geçersiz null işaretçi kullanımı Attribute argümanı, bir dizi değeri gerektiren bir bağlantı özniteliğini tanımlarken, ValuePtr argümanı ise bir null işaretçiydi.
HY010 İşlev dizisi hatası (DM) ConnectionHandle ile ilişkili bir StatementHandle için asenkron olarak çalışan bir fonksiyon çağrıldı ve SQLSetConnectAttr çağrıldığında hâlâ çalışıyordu.

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

(DM) SQLExecute, SQLExecDirect veya SQLMoreResultsConnectionHandle ile ilişkili bir ifade tutamacı için çağrıldı ve SQL_PARAM_DATA_AVAILABLE dönerdi. Bu işlev, tüm akış parametreleri için veri alınmadan önce çağrıldı.

(DM) SQLExecute, SQLExecDirect, SQLBulkOperations veya SQLSetPos, ConnectionHandle ile ilişkilendirilen bir StatementHandle için çağrıldı ve SQL_NEED_DATA dönerdi. 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ı.

(DM) ConnectionHandle için SQLBrowseConnect çağrıldı ve SQL_NEED_DATA dönerdi. Bu fonksiyon, SQLBrowseConnect SQL_SUCCESS_WITH_INFO veya SQL_SUCCESS dönmeden önce çağrılmıştır.
HY011 Öznitelik şu anda ayarlanamaz Özellik argümanı SQL_ATTR_TXN_ISOLATION ve bir işlem açıktı.
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.
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.)

Özellik argümanı SQL_ATTR_TRACEFILE veya SQL_ATTR_TRANSLATE_LIB idi ve ValuePtr boş bir dizeydi.
HY090 Geçersiz dize veya arabellek uzunluğu (DM) *ValuePtr bir karakter dizisi 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.
HY114 Sürücü, bağlantı düzeyinde asenkron fonksiyon yürütmesini desteklemez (DM) Bir uygulama, asenkron bağlantı işlemlerini desteklemeyen bir sürücü için SQL_ATTR_ASYNC_DBC_FUNCTIONS_ENABLE ile asenkron fonksiyon çalıştırmayı etkinleştirmeye çalıştı.
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ınmış durum hakkında daha fazla bilgi için SQLEndTran Fonksiyonu'na bakınız.
HY121 İmleç Kütüphanesi ve Driver-Aware Havuzlama aynı anda etkinleştirilemiyor Daha fazla bilgi için bkz Driver-Aware Bağlantı Havuzlaması.
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 bağlantısı veya ifade özniteliğiydi ancak sürücü tarafından desteklenmiyordu.
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) ConnectionHandle ile ilişkili sürücü bu fonksiyonu desteklemez.
IM009 Çeviri DLL'i yüklenemez Sürücü, bağlantı için belirlenen çeviri DLL'sini yükleyemedi. Bu hata yalnızca Öznitelik SQL_ATTR_TRANSLATE_LIB olduğunda geri dönebilir.
IM017 Yoklama zaman uyumsuz bildirim modunda devre dışı bırakıldı Bildirim modeli her kullanıldığında yoklama devre dışı bırakılır.
IM018 SQLCompleteAsync , bu tanıtıcıda önceki zaman uyumsuz işlemi tamamlamak için çağrılmadı. Tanıtıcıdaki önceki işlev çağrısı SQL_STILL_EXECUTING döndürüyorsa ve bildirim modu etkinleştirildiyse, son işlemeyi yapmak ve işlemi tamamlamak için tanıtıcıda SQLCompleteAsync çağrılmalıdır.
S1118 Sürücü asenkron bildirimi desteklemiyor SQL_ATTR_ASYNC_DBC_EVENT ayarlandı (bağlantı kurulduktan sonra) ama sürücü asenkron bildirimi desteklemiyor.

Öznitelik bir ifade özniteliği olduğunda, SQLSetConnectAttr tarafından döndürülen herhangi bir SQLSTATE'i döndürebilir.

Comments

Bağlantı özellikleri hakkında genel bilgi için Bağlantı Nitelikleri sayfasına bakınız.

Şu anda tanımlanmış öznitelikler ve tanıtıldıkları ODBC versiyonu bu bölümün ilerleyen bölümlerinde gösterilmiştir; farklı veri kaynaklarından faydalanmak için 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.

Note

SQLSetConnectAttr çağrısıyla bağlantı seviyesinde ifade özniteliklerini ayarlama yeteneği ODBC 3*.x* içinde 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.

ODBC 3*.x* sürücüleri, bağlantı seviyesinde ODBC 2*.x* ifadesi seçeneklerini belirleyen ODBC 2*.x* uygulamalarıyla çalışması gerekiyorsa bu işlevselliği desteklemelidir. Daha fazla bilgi için bkz. Ek G: Geriye Dönük Uyumluluk için Sürücü Yönergeleri'nde SQLSetConnectOption Eşlemesi .

Bir uygulama, bağlantının tahsis edilip serbest bırakılması arasında herhangi bir zamanda SQLSetConnectAttr'yi çağırabilir. Uygulama tarafından bağlantı için başarıyla belirlenen tüm bağlantı ve ifade nitelikleri, bağlantıda SQLFreeHandle çağrılana kadar devam eder. Örneğin, bir uygulama bir veri kaynağına bağlanmadan önce SQLSetConnectAttr çağırırsa, öznitelik uygulama veri kaynağına bağlandığında sürücüde SQLSetConnectAttr hatasız olsa bile devam eder; Bir uygulama sürücüye özgü bir öznitelik belirlerse, bu özellik uygulama bağlantıdaki farklı bir sürücüye bağlansa bile devam eder.

Bazı bağlantı özellikleri ancak bağlantı kurulmadan önce ayarlanabilir; diğerleri ise bağlantı kurulduktan sonra ayarlanabilir. Aşağıdaki tablo, bağlantı kurulmadan önce veya sonra ayarlanması gereken bağlantı niteliklerini gösterir. Ya da, özniteliğin bağlantıdan önce veya sonra ayarlanabileceğini gösterir.

Attribute Bağlantıdan önce mi yoksa sonra mı ayarlandı?
SQL_ATTR_ACCESS_MODE Ya da[1]
SQL_ATTR_ASYNC_DBC_EVENT Herhangi biri
SQL_ATTR_ASYNC_DBC_FUNCTIONS_ENABLE Ya da[4]
SQL_ATTR_ASYNC_DBC_PCALLBACK Herhangi biri
SQL_ATTR_ASYNC_DBC_PCONTEXT Herhangi biri
SQL_ATTR_ASYNC_ENABLE Ya da[2]
SQL_ATTR_AUTO_IPD Herhangi biri
SQL_ATTR_AUTOCOMMIT Ya da[5]
SQL_ATTR_CONNECTION_DEAD Sonra
SQL_ATTR_CONNECTION_TIMEOUT Herhangi biri
SQL_ATTR_MEVCUT_KÜTÜPHANE Ya da[1]
SQL_ATTR_DBC_INFO_TOKEN Sonra
SQL_ATTR_ENLIST_IN_DTC Sonra
SQL_ATTR_LOGIN_TIMEOUT Önce
SQL_ATTR_METADATA_ID Herhangi biri
SQL_ATTR_ODBC_CURSORS Önce
SQL_ATTR_PACKET_SIZE Önce
SQL_ATTR_QUIET_MODE Herhangi biri
SQL_ATTR_TRACE Herhangi biri
SQL_ATTR_TRACEFILE Herhangi biri
SQL_ATTR_TRANSLATE_LIB Sonra
SQL_ATTR_TRANSLATE_OPTION Sonra
SQL_ATTR_TXN_ISOLATION Ya da[3]

[1] SQL_ATTR_ACCESS_MODE ve SQL_ATTR_CURRENT_CATALOG, sürücüye bağlı olarak bağlanmadan önce veya sonra ayarlanabilir. Ancak, bazı sürücüler bağlandıktan sonra bunların değiştirilmesini desteklemediğinden, birlikte çalışabilen uygulamalar bağlanmadan önce bunları ayarlar.

[2] SQL_ATTR_ASYNC_ENABLE aktif bir ifade olmadan önce ayarlanmalıdır.

[3] SQL_ATTR_TXN_ISOLATION yalnızca bağlantıda açık işlem yoksa ayarlanabilir. Bazı bağlantı özellikleri, 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, Öznitelik SQL_ATTR_PACKET_SIZE ise ve *ValuePtr maksimum paket boyutunu aşarsa, sürücü maksimum boyutu değiştirir. Yerine getirilen değeri belirlemek için bir uygulama SQLGetConnectAttr'i çağırır.

[4] Bağlantı açılmadan önce SQL_ATTR_ASYNC_DBC_FUNCTIONS_ENABLE ayarlanmışsa, Sürücü Yöneticisi sürücünün özelliğini SQLBrowseConnect, SQLConnect veya SQLDriverConnect çağrısı sırasında yüklendiğinde ayarlar. SQLBrowseConnect, SQLConnect veya SQLDriverConnect çağrısından önce, Sürücü Yöneticisi hangi sürücüye bağlanacağını bilmez ve sürücünün asenkron bağlantı işlemlerini destekleyip desteklemediğini bilmez. Bu nedenle, Sürücü Yöneticisi her zaman SQL_SUCCESS döner. Ancak, sürücü asenkron bağlantı işlemlerini desteklemiyorsa, SQLBrowseConnect, SQLConnect veya SQLDriverConnect çağrısı başarısız olur.

[5] SQL_ATTR_AUTOCOMMIT FALSE olarak ayarlandığında, işlemlerin tutarlılığını sağlamak için herhangi bir API SQL_ERROR dönerse uygulamalar SQLEndTran(SQL_ROLLBACK) çağırmalıdır.

*ValuePtr tamponundaki bilgi setinin formatı, belirtilen Özniteliğe bağlıdır. SQLSetConnectAttr , öznitelik bilgisini iki farklı formattan birinde kabul eder: null-sonlu karakter dizisi veya tam sayı değeri. Her birinin formatı özniteliğin açıklamasında belirtilmiştir. SQLSetConnectAttr'ninValuePtr argümanı tarafından işaretlenen karakter dizileri StringLength baytlarından oluşan uzunluğa sahiptir.

Uzunluk öznitelik tarafından tanımlanıyorsa, ODBC 2*.x* veya daha öncesinde tanıtılan tüm öznitelikler için olduğu gibi , StringLength argümanı göz ardı edilir.

Öznitelik ValuePtr içeriği
SQL_ATTR_ACCESS_MODE (ODBC 1.0) Bir SQLUINTeger değeri. SQL_MODE_READ_ONLY, sürücü veya veri kaynağı tarafından, bağlantının güncellemelere neden olan SQL ifadelerini desteklemek için gerekli olmadığını gösteren bir gösterge olarak kullanılır. Bu mod, sürücü veya veri kaynağına uygun kilitleme stratejileri, işlem yönetimi veya diğer alanları optimize etmek için kullanılabilir. Sürücü, bu tür ifadelerin veri kaynağına gönderilmesini engellemek zorunda değildir. Sürücü ve veri kaynağının, yalnızca okunan bağlantı sırasında yalnızca okunan olmayan SQL ifadelerini işlemesi istendiğinde davranışı uygulama tarafından tanımlanır. SQL_MODE_READ_WRITE varsayılan yöntemdir.
SQL_ATTR_ASYNC_DBC_EVENT (ODBC 3.8) Bir olay tutamacı olan bir SQLPOINTER değeri.

Asenkron fonksiyonların tamamlandığına dair bildirim, SQLSetConnectAttr ile SQL_ATTR_ASYNC_STMT_EVENT özniteliği çağrılıp olay tutamacını belirterek etkinleştirilir. Not: Bildirim yöntemi imleç kütüphanesinde desteklenmez. Uygulama, bildirim yöntemi etkinleştirildiğinde SQLSetConnectAttr aracılığıyla imleç kitaplığını etkinleştirmeye çalışırsa hata iletisi alır.
SQL_ATTR_ASYNC_DBC_FUNCTIONS_ENABLE (ODBC 3.8) Bağlantı kolunda seçilen fonksiyonların asenkron çalıştırılmasını etkinleştiren veya devre dışı bırakan bir SQLUINTeger değeri. Daha fazla bilgi için bkz. Eşzamansız Yürütme (Yoklama Yöntemi).

SQL_ASYNC_DBC_ENABLE_ON = Belirli bağlantıyla ilgili fonksiyonlar için asenkron işlemi etkinleştirin.

SQL_ASYNC_DBC_ENABLE_OFF = (Varsayılan) Belirli bağlantı bağlantılı fonksiyonlar için asenkron işlemi devre dışı bırakın.

SQL_ATTR_ASYNC_DBC_FUNCTIONS_ENABLE ayarlamak her zaman senkron (yani, asla geri dönmez SQL_STILL_EXECUTING).

Statement işlemlerinin asenkron yürütülmesi SQL_ATTR_ASYNC_ENABLE ile etkinleştirilir.
SQL_ATTR_ASYNC_DBC_PCALLBACK (ODBC 3.8) Bağlam yapısına işaret eden bir SQLPOINTER değeri.

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

Yalnızca Sürücü Yöneticisi, bu öznitelikle bir sürücünün SQLSetStmtAttr fonksiyonunu çağırabilir.
SQL_ATTR_ASYNC_ENABLE (ODBC 3.0) Belirtilen bağlantıda bir ifade ile ç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 = Statement işlemleri için bağlantı seviyesindeki eşzamansız yürütme desteğini devre dışı bırak (varsayılan).

SQL_ASYNC_ENABLE_ON = Statement işlemleri için bağlantı düzeyinde eşzamansız yürütme desteğini etkinleştirin.

Bu öznitelik, SQLGetInfo'nun SQL_ASYNC_MODE bilgi tipiyle SQL__CONNECTION veya SQL__STATEMENT döndürmesine bağlı olarak ayarlanabilir.
SQL_ATTR_AUTO_IPD (ODBC 3.0) SQLPrepare çağrısından sonra IPD'nin otomatik popülasyonunun desteklenip desteklenmediğini belirten tek okuma için SQLUINTEGER değeri:

SQL_TRUE = SQLPrepare çağrısından sonra IPD'nin otomatik popülasyonu sürücü tarafından desteklenir.

SQL_FALSE = SQLPrepare çağrısından sonra IPD'nin otomatik popülasyonu sürücü tarafından desteklenmez. Hazırlanmış ifadeyi desteklemeyen sunucular, IPD'yi otomatik olarak dolduramayacak.

SQL_ATTR_AUTO_IPD bağlantı özniteliği için SQL_TRUE dönerse, ifade niteliği SQL_ATTR_ENABLE_AUTO_IPD IPD'nin otomatik popülasyonunu açıp kapatacak şekilde ayarlanabilir. Eğer SQL_ATTR_AUTO_IPD SQL_FALSE ise, SQL_ATTR_ENABLE_AUTO_IPD SQL_TRUE olarak ayarlanamaz. SQL_ATTR_ENABLE_AUTO_IPD'in varsayılan değeri, SQL_ATTR_AUTO_IPD'nin değerine eşittir.

Bu bağlantı özniteliği SQLGetConnectAttr tarafından döndürülebilir ancak SQLSetConnectAttr tarafından ayarlanamaz.
SQL_ATTR_AUTOCOMMIT (ODBC 1.0) Otomatik commit mi yoksa manuel commit modunun mı kullanılacağını belirten bir SQLUINTEGER değeri:

SQL_AUTOCOMMIT_OFF = Sürücü manuel commit modunu kullanır ve uygulama, SQLEndTran ile işlemleri açıkça commit veya geri almalıdır.

SQL_AUTOCOMMIT_ON = Sürücü otomatik commit modunu kullanır. Her ilan, uygulandıktan hemen sonra gerçekleşir. Bu varsayılan seçenektir. Bağlantıdaki açık işlemler SQL_ATTR_AUTOCOMMIT manuel commit modundan otomatik commit moduna SQL_AUTOCOMMIT_ON ayarlandığında bağlanır.

Daha fazla bilgi için Commit Modu'na bakınız. Önemli: Bazı veri kaynakları, bir ifade bağlandığında erişim planlarını siler ve bağlantıdaki tüm ifadeler için imleçleri kapatır; Otomatik commit modu, her sorgusuz imalı çalıştırıldıktan sonra veya bir sorgu için imleç kapandığında bunun ortaya çıkmasına neden olabilir. Daha fazla bilgi için SQLGetInfo ve İşlemlerin İmleçler ve Hazırlanmış Cümleler üzerindeki SQL_CURSOR_COMMIT_BEHAVIOR ve SQL_CURSOR_ROLLBACK_BEHAVIOR bilgi türlerine bakınız.

Bir toplu otomatik commit modunda yürütüldüğünde, iki şey mümkündür. Tüm parti otomatik birleştirilebilir bir birim olarak ele alınabilir veya bir partideki her ifade otomatik bağlanabilir bir birim olarak kabul edilir. Bazı veri kaynakları bu davranışları da destekleyebilir ve birini seçmenin bir yolunu sağlayabilir. Bir partinin otomatik birleştirilebilir bir birim olarak mı mu mu yoksa toplu içindeki her bireysel ifadenin otomatik olarak belirlenebilir mi olduğu sürücü tarafından tanımlanır.
SQL_ATTR_CONNECTION_DEAD

(ODBC 3.5)
Bağlantının durumunu gösteren yalnızca okunabilir bir SQLUINTeger değeri. Eğer SQL_CD_TRUE ise bağlantı kaybolmuş demektir. Eğer SQL_CD_FALSE varsa, bağlantı hâlâ aktif.
SQL_ATTR_CONNECTION_TIMEOUT (ODBC 3.0) Bağlantıdaki herhangi bir isteğin tamamlanması için bekleme sayısına karşılık gelen bir SQLUINTeger değeri. Sürücü, sorgu çalıştırma veya giriş ile ilişkili olmayan durumlarda zaman aşımına ulaşmak mümkün olduğunda SQLSTATE HYT00 (Zaman aşımının süresi dolmuş) döndürmelidir.

ValuePtr 0'a eşitse (varsayılan olarak), zaman aşımı yoktur.
SQL_ATTR_CURRENT_CATALOG (ODBC 2.0) Veri kaynağı tarafından kullanılacak kataloğun adını içeren bir karakter dizisi. Örneğin, SQL Server'da katalog bir veritabanıdır, bu yüzden sürücü veri kaynağına USEveritabanı ifadesi gönderir; burada veritabanı *ValuePtr'de belirtilen veritabanıdır. Tek katmanlı bir sürücü için katalog bir dizin olabilir, bu yüzden sürücü mevcut dizinini *ValuePtr'de belirtilen dizine değiştirir.
SQL_ATTR_DBC_INFO_TOKEN (ODBC 3.8 SQLRateConnection'ın (*pRating) parametresi 100'e eşit olmadığında bağlantı bilgi belirtetörünü DBC tutamacına geri almak için kullanılan bir SQLPOINTER değeri.

SQL_ATTR_DBC_INFO_TOKEN sadece set için. Bu değeri almak için SQLGetConnectAttr veya SQLGetConnectOption kullanmak mümkün değildir. Sürücü Yöneticisi'nin SQLSetConnectAttr uygulaması SQL_ATTR_DBC_INFO_TOKEN kabul etmeyecektir, çünkü bir uygulama bu özniteliği ayarlamamalıdır.

Bir sürücü SQL_ATTR_DBC_INFO_TOKEN ayarladıktan sonra SQL_ERROR dönerse, havuzdan yeni alınan bağlantı serbest bırakılır. Sürücü Yöneticisi daha sonra havuzdan başka bir bağlantı elde etmeye çalışır. Daha fazla bilgi için ODBC Sürücüsünde Farkındalık Geliştirme Connection-Pool bakınız .
SQL_ATTR_ENLIST_IN_DTC (ODBC 3.0) Microsoft Component Services tarafından koordine edilen dağıtık işlemlerde ODBC sürücüsünün kullanılıp kullanılmayacağını belirten bir SQLPOINTER değeri.

Bir DTC OLE işlem nesnesini SQL Server'ye veya bağlantının DTC ilişkisini sonlandıracak SQL_DTC_DONE ile aktarın.

İstemci, Microsoft Dağıtılmış İşlem Düzenleyicisi (MS DTC) OLE ITransactionDispenser::BeginTransaction yöntemini çağırarak MS DTC işlemi başlatır ve işlemi temsil eden bir MS DTC işlem nesnesi oluşturur. Uygulama daha sonra işlem nesnesini ODBC bağlantısıyla ilişkilendirmek için SQL_ATTR_ENLIST_IN_DTC seçeneğiyle SQLSetConnectAttr'yi çağırır. Tüm ilgili veritabanı faaliyetleri, MS DTC işleminin koruması altında gerçekleştirilecektir. Uygulama, bağlantının DTC ilişkisini sonlandırmak için SQL_DTC_DONE ile SQLSetConnectAttr'i çağırır. Daha fazla bilgi için MS DTC belgelerine bakın.
SQL_ATTR_LOGIN_TIMEOUT (ODBC 1.0) Bir SQL integeger değeri, bir giriş isteğinin tamamlanmasını bekleme saniye sayısına karşılık gelir ve sonra uygulamaya geri döner. Varsayılan durum sürücüye bağlıdır. ValuePtr 0 ise, zaman aşımı devre dışı bırakılır ve bağlantı girişimi süresiz olarak bekler.

Belirtilen zaman aşımı veri kaynağında maksimum giriş süresini aşarsa, sürücü bu değeri değiştirir ve SQLSTATE 01S02 döner (Seçenek değeri değiştirilmiştir).
SQL_ATTR_METADATA_ID (ODBC 3.0) Katalog fonksiyonlarının dizi argümanlarının nasıl işlenildiğini belirleyen bir SQLUINTere 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 her alanı 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 ayrıca ifade düzeyinde de ayarlanabilir. (Bu, aynı zamanda bir ifade özniteliği olan tek bağlantı özniteliğidir.)

Daha fazla bilgi için bkz. Katalog İşlevleri'ndeki Bağımsız Değişkenler.
SQL_ATTR_ODBC_CURSORS (ODBC 2.0) Sürücü Menecerinin ODBC imleç kütüphanesini nasıl kullandığını belirten bir SQLULEN değeri:

SQL_CUR_USE_IF_NEEDED = Sürücü Yöneticisi, ODBC imleç kütüphanesini yalnızca gerekli olduğunda kullanır. Sürücü SQLFetchScroll'daki SQL_FETCH_PRIOR seçeneğini destekliyorsa, Sürücü Yöneticisi sürücünün kaydırma yeteneklerini kullanır. Bunun dışında, ODBC imleç kütüphanesini kullanır.

SQL_CUR_USE_ODBC = Sürücü Yöneticisi, ODBC imleç kütüphanesini kullanır.

SQL_CUR_USE_DRIVER = Sürücü Yöneticisi, sürücünün kaydırma yeteneklerini kullanır. Bu varsayılan ayardır.

ODBC imleç kütüphanesi hakkında daha fazla bilgi için Ek F: ODBC İmleç Kütüphanesi sayfasına bakınız. Uyarı: İmleç kütüphanesi gelecekteki bir Windows sürümünde kaldırılacaktır. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın. Microsoft, sürücünün imleç işlevinin kullanılmasını önerir.
SQL_ATTR_PACKET_SIZE (ODBC 2.0) Ağ paket boyutunu bayt cinsinden belirten bir SQLUINTEGER değeri. Not: Birçok veri kaynağı ya bu seçeneği desteklemez ya da sadece ağ paket boyutunu döndürebilir ama ayarlamıyor.

Belirtilen boyut maksimum paket boyutunu aşıyorsa veya minimum paket boyutundan küçükse, sürücü bu değeri değiştirir ve SQLSTATE 01S02 döndürür (Seçenek değeri değiştirilmiştir).

Uygulama bağlantı kurulduktan sonra paket boyutunu ayarlarsa, sürücü SQLSTATE HY011 döndürür (Öznitelik şu anda ayarlanamaz).
SQL_ATTR_QUIET_MODE (ODBC 2.0) Bir pencere kolu (HWND).

Pencere kolu null işaretçi ise, sürücü herhangi bir diyalog kutusu göstermez.

Eğer pencere kolu null işaretçi değilse, uygulamanın ana pencere kolu olmalıdır. Bu varsayılan seçenektir. Sürücü, bu kolu iletişim kutularını görüntülemek için kullanır. Not: SQL_ATTR_QUIET_MODE bağlantı özniteliği, SQLDriverConnect tarafından görüntülenen diyalog kutularına uygulanmaz.
SQL_ATTR_TRACE (ODBC 1.0) Sürücü Yöneticisi'ne takip yapıp yapmayacağını söyleyen bir SQLUINTeger değeri:

SQL_OPT_TRACE_OFF = İzleme (varsayılan)

SQL_OPT_TRACE_ON = İzlemeye devam

İzleme açıkken, Sürücü Yöneticisi her ODBC fonksiyon çağrısını iz dosyasına yazar. Not: İzleme açıkken, Sürücü Yöneticisi herhangi bir fonksiyondan SQLSTATE IM013 (İz dosyası hatası) döndürebilir.

Bir uygulama, SQL_ATTR_TRACEFILE seçeneğiyle bir iz dosyası belirtir. Dosya zaten mevcutsa, Driver Manager dosyaya eklenir. Aksi takdirde, dosya oluşturulur. Eğer takip açıksa ve iz dosyası belirtilmemişse, Sürücü Yöneticisi SQL dosyasına yazar. Kök dizine LOG yap.

Bir uygulama, ODBCSharedTraceFlag değişkenini dinamik takip etmeyi mümkün kılacak şekilde ayarlayabilir. Takip işlemi şu anda çalışan tüm ODBC uygulamaları için etkinleştirilir. Bir uygulama izlemeyi kapatırsa, sadece o uygulama için kapalıdır.

Bir uygulama SQLAllocHandle ile SQL_HANDLE_ENV HandleType ile çağrıdığında sistem bilgisindeki Trace anahtar kelimesi 1 olarak ayarlanmışsa, tüm tutamaçlar için takip etkiyi etkinleştirir. Yalnızca SQLAllocHandle çağrısı yapan uygulama için etkinleştirilmiştir.

SQLSetConnectAttr'yi SQL_ATTR_TRACE Öznitelikle çağırmak, ConnectionHandle argümanının geçerli olmasını gerektirmez ve ConnectionHandle NULL ise SQL_ERROR döndürmez. Bu özellik tüm bağlantılar için geçerlidir.
SQL_ATTR_TRACEFILE (ODBC 1.0) İz dosyasının adını içeren null-sonlu bir karakter dizisi.

SQL_ATTR_TRACEFILE özniteliğinin varsayılan değeri, sistem bilgilerindeki TraceFile anahtar kelimesiyle belirtilir. Daha fazla bilgi için ODBC Alt Anahtarı'na bakınız.

SQL_ATTR_TRACEFILE ÖznitelikleSQLSetConnectAttr çağrısı ConnectionHandle argümanının geçerli olmasını gerektirmez ve ConnectionHandle geçersizse SQL_ERROR dönmez. Bu özellik tüm bağlantılar için geçerlidir.
SQL_ATTR_TRANSLATE_LIB (ODBC 1.0) Sürücünün karakter seti çevirisi gibi görevleri gerçekleştirmek için eriştiği SQLDriverToDataSource ve SQLDataSourceToDriver fonksiyonlarını içeren bir kütüphanenin adını içeren null-sonlu bir karakter dizisi. Bu seçenek, yalnızca sürücünün veri kaynağına bağlanmışsa belirtilebilir. Bu özniteliğin ayarı bağlantılar arasında devam eder. Verinin çevirisi hakkında daha fazla bilgi için Çeviri DLL'leri ve Çeviri DLL Fonksiyon Referansı'na bakınız.
SQL_ATTR_TRANSLATE_OPTION (ODBC 1.0) Çeviri DLL'ye iletilen 32-bitlik bir bayrak değeri. Bu öznitelik yalnızca sürücü veri kaynağına bağlanmışsa belirtilebilir. Verinin çevirisi hakkında bilgi için Çeviri DLL'lerine bakınız.
SQL_ATTR_TXN_ISOLATION (ODBC 1.0) Mevcut bağlantı için işlem izolasyon seviyesini belirleyen 32-bit bir bitmaske. Bir uygulama, bu seçenekle SQLSetConnectAttr'yi çağırmadan önce bağlantıdaki tüm açık işlemleri commit etmek veya geri almak için SQLEndTran'ı çağırmalıdır.

ValuePtr için geçerli değerler, InfoType SQL_TXN_ISOLATION_OPTIONS'a eşit olan SQLGetInfo çağrısı ile belirlenebilir.

İşlem izolasyon seviyelerinin tanımı için, SQLGetInfo ve İşlem İzolasyon Seviyeleri'ndeki SQL_DEFAULT_TXN_ISOLATION bilgi tipinin açıklamasına bakınız.

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

Kod Örneği

SQLConnect'e bakınız.

Hakkında bilgi için Bkz:
Bir tutacağa tahsis etmek SQLAllocHandle Fonksiyonu
Bağlantı özniteliğinin ayarını döndürme SQLGetConnectAttr İşlevi