Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uygunluk
Tanıtılan Sürüm: ODBC 3.0 Standartlarına Uyum: ISO 92
Summary
SQLGetConnectAttr , bir bağlantı özniteliğinin mevcut ayarını döndürür.
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 SQLGetConnectAttr(
SQLHDBC ConnectionHandle,
SQLINTEGER Attribute,
SQLPOINTER ValuePtr,
SQLINTEGER BufferLength,
SQLINTEGER * StringLengthPtr);
Arguments
ConnectionHandle
[Giriş] Bağlantı tutamacı.
Öznitelik
[Giriş] Özniteliği almak için alınıyor.
Valueptr
[Çıkış] Attribute tarafından belirtilen özelliğin mevcut değerini döndürmek için belleğe işaret edilen bir işaretçi. Tam sayı tipi özellikler için, bazı sürücüler yalnızca alt 32-bit veya 16-bit tamponu yazabilir ve üst dereceden biti değiştirmeden bırakabilir. Bu nedenle, uygulamalar SQLULEN tamponu kullanmalı ve bu fonksiyonu çağırmadan önce değeri 0'a başlatmalıdır.
ValuePtr NULL ise, StringLengthPtr yine de ValuePtr tarafından işaret edilen tamponda döndürülebilecek toplam bayt sayısını (karakter verisi için null-sonlandırma karakteri hariç) döndürecektir.
BufferLength
[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 tanımlı bir öznitelikse ve *ValuePtr bir tamsaydı, BufferLength göz ardı edilir.
*ValuePtr'deki değer bir Unicode dizisi ise (SQLGetConnectAttrW çağrıldığında), BufferLength argümanı çift sayı olmalıdır.
Attribute sürücü tarafından tanımlanan bir öznitelikse, uygulama özniteliğin niteliğini Driver Manager'a BufferLength argümanını ayarlayarak gösterir. BufferLength aşağıdaki değerlere sahip olabilir:
Eğer *ValuePtr bir karakter dizesine işaret eden bir işaretse, BufferLength dizinin uzunluğudur.
Eğer *ValuePtr ikili bir tampona işaret ise, uygulama SQL_LEN_BINARY_ATTR(uzunluk) makrosunun sonucunu BufferLength içine yerleştirir. Bu, BufferLength içinde negatif bir değer verir.
Eğer *ValuePtr, karakter dizisi veya ikili dizi dışında bir değere işaret ise, BufferLength SQL_IS_POINTER değerine sahip olmalıdır.
Eğer *ValuePtr sabit uzunluklu bir veri tipi içeriyorsa, BufferLength uygun şekilde SQL_IS_INTEGER veya SQL_IS_UINTEGER olur.
StringLengthPtr
[Çıkış] *ValuePtr'de döndürülebilecek toplam bayt sayısını (null-terminasyon karakteri hariç) döndürmek için bir tampon işaretçisi. Eğer öznitelik değeri bir karakter dizisi ise ve döndürülebilecek bayt sayısı BufferLength'den çıkarılmış null-son karakterinin uzunluğundan büyükse, *ValuePtr'deki veri BufferLength olarak null-sonlandırma karakterinin uzunluğu çıkar olarak kısılır ve sürücü tarafından null-sonlandırılır.
İadeler
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA, SQL_ERROR ya da SQL_INVALID_HANDLE.
Diagnostics
SQLGetConnectAttr SQL_ERROR veya SQL_SUCCESS_WITH_INFO döndürdüğünde, tanı veri yapısından ilişkili bir SQLSTATE değeri, SQL_HANDLE_DBC HandleType ve ConnectionHandle ile SQLGetDiagRec çağrılarak elde edilebilir. Aşağıdaki tablo, genellikle SQLGetConnectAttr tarafından duygulanan SQLSTATE değerlerini listeler ve her birini bu fonksiyonun 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.) |
| 01004 | Dize verileri, sağ kesilmiş | *ValuePtr içinde döndürülen veri, BufferLength olarak null-sonlandırma karakterinin uzunluğu olarak kısaltıldı. Kısmamış dizi değerinin uzunluğu *StringLengthPtr'de döner. (İşlev SQL_SUCCESS_WITH_INFO döndürür.) |
| 08003 | Bağlantı açık değil | (DM) Açık bağlantı gerektiren bir Özellik değeri belirtildi. |
| 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. |
| HY000 | Genel hata | Belirli bir SQLSTATE olmayan ve uygulamaya özgü SQLSTATE tanımlanmayan bir hata oluştu. SQLGetDiagField'dakiMessageText argümanı tarafından tanı veri yapısından geri dönen hata mesajı, hatayı ve nedenini tanımlar. |
| 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ı. |
| HY010 | İşlev dizisi hatası | (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. (DM) ConnectionHandle için SQLExecute, SQLExecDirect veya SQLMoreResults ç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ı. |
| 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. |
| HY090 | Geçersiz dize veya arabellek uzunluğu | (DM) *ValuePtr bir karakter dizisidir ve BufferLength sıfırdan küçüktü ancak SQL_NTS'ye eşit değildi. |
| HY092 | Geçersiz öznitelik/seçenek tanımlayıcısı | Argüman Attribute için belirtilen değer, sürücünün desteklediği ODBC sürümü için geçerli değildi. |
| 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ı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ünün desteklediği ODBC sürümü için geçerli bir ODBC bağlantı niteliğiydi, ancak sürücü tarafından desteklenmedi. |
| 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'a karşılık gelen sürücü işlevi desteklemez. |
Comments
Bağlantı özellikleri hakkında genel bilgi için Bağlantı Nitelikleri sayfasına bakınız.
Ayarlanabilen özniteliklerin listesi için SQLSetConnectAttr'a bakınız. Eğer Attribute bir özellik dize döndüren bir öznitelik belirtiyorsa, ValuePtr'nin dizinin bir tamponu işaretçisi olması gerekir. Geri dönen dizinin maksimum uzunluğu, null-terminasyon karakteri dahil, BufferLength baytları olacaktır.
Özniteliğe bağlı olarak, bir uygulamanın SQLGetConnectAttr çağırmadan önce bağlantı kurması gerekmez. Ancak, SQLGetConnectAttr çağrıldığında ve belirtilen özniteliğin varsayılan bir özelliği yoksa ve önceki bir çağrı tarafından SQLSetConnectAttr tarafından ayarlanmamışsa, SQLGetConnectAttr SQL_NO_DATA döndürecektir.
Attribute SQL_ATTR_ TRACE veya SQL_ATTR_ TRACEFILE ise, ConnectionHandle geçerli olmak zorunda değildir ve ConnectionHandle geçersiz ise SQLGetConnectAttr SQL_ERROR veya SQL_INVALID_HANDLE döndürmez. Bu özellikler tüm bağlantılar için geçerlidir. SQLGetConnectAttr , başka bir argüman geçersizse SQL_ERROR veya SQL_INVALID_HANDLE döndürür.
Bir uygulama, SQLSetConnectAttr kullanarak ifade özniteliklerini ayarlayabilse de, bir uygulama SQLGetConnectAttr'i kullanarak ifade öznitelik değerlerini alamaz; özetleme ayarını almak için SQLGetStmtAttr çağırmalıdır.
Hem SQL_ATTR_AUTO_IPD hem de SQL_ATTR_CONNECTION_DEAD bağlantı öznitelikleri SQLGetConnectAttr çağrısıyla geri döndürülebilir ancak SQLSetConnectAttr çağrısıyla ayarlanamaz.
Note
SQLGetConnectAttr için asenkron destek yoktur. SQLGetConnectAttr uygulandığında, bir sürücü sunucudan bilginin gönderilme veya istenme sayısını en aza indirerek performansı artırabilir.
İlgili Fonksiyonlar
| Hakkında bilgi için | Bkz: |
|---|---|
| Deyim özniteliğinin ayarını döndürme | SQLGetStmtAttr İşlevi |
| Bağlantı özelliği ayarı | SQLSetConnectAttr İşlevi |
| Bir ortam özniteliği ayarlama | SQLSetEnvAttr Function |
| Deyim özniteliğini ayarlama | SQLSetStmtAttr İşlevi |