Aracılığıyla paylaş


SQLDisconnect İşlevi

uyumluluk
Kullanıma Sunulan Sürüm: ODBC 1.0 Standartları Uyumluluğu: ISO 92

Özeti
sqldisconnect , belirli bir bağlantı tutamacıyla ilişkili bağlantıyı kapatır.

Sözdizimi

  
SQLRETURN SQLDisconnect(  
     SQLHDBC     ConnectionHandle);  

Bağımsız değişken

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

Döndürür

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR, SQL_INVALID_HANDLE veya SQL_STILL_EXECUTING.

Tanılama

SQLDisconnect SQL_ERROR veya SQL_SUCCESS_WITH_INFO döndürdüğünde, SQL_HANDLE_DBC HandleType ve ConnectionHandleHandle ile SQLGetDiagRec çağrılarak ilişkili bir SQLSTATE değeri elde edilebilir. Aşağıdaki tabloda, SQLDisconnect tarafından yaygın olarak döndürülen SQLSTATE değerleri listelenmektedir ve her biri bu işlev bağlamında açıklanmaktadır; "(DM)" gösterimi, Sürücü Yöneticisi tarafından döndürülen SQLSTATEs açıklamalarından önce gelir. Aksi belirtilmediği sürece, her SQLSTATE değeriyle ilişkili dönüş kodu SQL_ERROR.

SQLSTATE Hata Açıklama
01000 Genel uyarı Sürücüye özgü bilgilendirici ileti. (İşlev SQL_SUCCESS_WITH_INFO döndürür.)
01002 Bağlantıyı kes hatası Bağlantı kesilmesi sırasında bir hata oluştu. Ancak bağlantı kesilmesi başarılı oldu. (İşlev SQL_SUCCESS_WITH_INFO döndürür.)
08003 Bağlantı açık değil (DM) ConnectionHandle bağımsız değişkeninde belirtilen bağlantı açık değildi.
25000 Geçersiz işlem durumu ConnectionHandlebağımsız değişkeni tarafından belirtilen bağlantı üzerinde bir işlem yapıldı. İşlem etkin kalır.
HY000 Genel hata Belirli bir SQLSTATE olmayan ve uygulamaya özgü SQLSTATE tanımlanmayan bir hata oluştu. *MessageText arabelleğindeki 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 ConnectionHandleiçin zaman uyumsuz işleme etkinleştirildi. İşlev çağrıldı ve SQLCancelHandle İşlevi yürütülmeden önce ConnectionHandleüzerinde çağrıldı. Ardından işlev ConnectionHandleüzerinde yeniden çağrıldı.

İşlev çağrıldı ve SQLCancelHandle yürütmeyi tamamlamadan önce, çok iş parçacıklı bir uygulamadaki farklı bir iş parçacığından ConnectionHandle çağrıldı.
HY010 İşlev dizisi hatası (DM) ConnectionHandle ile ilişkili bir StatementHandle için zaman uyumsuz olarak yürütülen bir işlev çağrıldı ve SQLDisconnect çağrıldığında hala yürütülüyordu.

(DM) ConnectionHandle için zaman uyumsuz olarak yürütülen bir işlev (bu işlev değil) çağrıldı ve bu işlev çağrıldığında hala yürütülüyordu.

(DM) SQLExecute, SQLExecDirect, SQLBulkOperationsveya SQLSetPos, ConnectionHandle ile ilişkili 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ı.
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.
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 alma durumu hakkında daha fazla bilgi için bkz. SQLEndTran İşlevi.
HYT01 Bağlantı zaman aşımı süresi doldu Veri kaynağı isteği yanıtlamadan önce bağlantı zaman aşımı süresi doldu ve bağlantı hala etkin. Bağlantı zaman aşımı süresi SQLSetConnectAttrSQL_ATTR_CONNECTION_TIMEOUT üzerinden ayarlanır.
IM001 Sürücü bu işlevi desteklemiyor (DM) ConnectionHandle ile ilişkilendirilmiş sürücü işlevi desteklemez.
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 etkinse, SQLCompleteAsync işlem sonrası işlem yapmak ve işlemi tamamlamak için tanıtıcıda çağrılmalıdır.

Yorum

Bir uygulama SQLBrowseConnect sonra SQLDisconnect çağırırsa SQL_NEED_DATA döndürür ve farklı bir dönüş kodu döndürmeden önce sürücü bağlantı gözatma işlemini iptal eder ve bağlantıyı bağlı olmayan bir duruma döndürür.

Bağlantı tanıtıcısıyla ilişkili tamamlanmamış bir işlem varken bir uygulama SQLDisconnect çağırırsa, sürücü SQLSTATE 25000 (Geçersiz işlem durumu) döndürür ve işlemin değişmediğini ve bağlantının açık olduğunu gösterir. Tamamlanmamış bir işlem, SQLEndTranile işlenmemiş veya geri alınmamış bir işlemdir.

Bir uygulama bağlantıyla ilişkili tüm deyimleri serbest bırakamadan önce sqldisconnect çağırırsa, sürücü veri kaynağı bağlantısını başarıyla kestikten sonra bu deyimleri ve bağlantıda açıkça ayrılmış olan tüm tanımlayıcıları serbest bırakmıştır. Ancak, bağlantıyla ilişkili deyimlerden biri veya daha fazlası zaman uyumsuz olarak yürütülüyorsa SQLDisconnect, HY010 SQLSTATE değeriyle SQL_ERROR döndürür (İşlev dizisi hatası). Ayrıca SQLDisconnect, bağlantı askıya alınmış durumdaysa veya SQLDisconnect SQLCancelHandletarafından başarıyla iptal edildiyse, bağlantıda açıkça ayrılmış tüm ilişkili deyimleri ve tüm tanımlayıcıları serbest bırakacaktır.

Bir uygulamanın sqldisconnectnasıl kullandığı hakkında bilgi için bkz. Veri Kaynağı bağlantısını kesme veya Sürücü.

Havuza Alınan Bağlantı bağlantısını kesme

Paylaşılan bir ortam için bağlantı havuzu etkinleştirildiyse ve bir uygulama bu ortamdaki bir bağlantıda SQLDisconnect çağırırsa, bağlantı bağlantı havuzuna döndürülür ve aynı paylaşılan ortamı kullanan diğer bileşenler tarafından kullanılabilir.

Kod Örneği

bkz. Örnek ODBC Programı, SQLBrowseConnect İşlevive SQLConnect İşlevi.

Hakkında bilgi için Görmek
Tanıtıcı ayırma SQLAllocHandle İşlevi
Veri kaynağına bağlanma SQLConnect İşlevi
Bağlantı dizesi veya iletişim kutusu kullanarak veri kaynağına bağlanma SQLDriverConnect İşlevi
İşleme veya geri alma işlemini yürütme SQLEndTran İşlevi
Bağlantı tutamacını boşaltma SQLFreeConnect İşlevi

Ayrıca Bkz.

ODBC API Başvurusu
ODBC Üst Bilgi Dosyaları