Aracılığıyla paylaş


SQLCancelHandle İşlevi

uyumluluk
Sunulan Sürüm: ODBC 3.8 Standartları Uyumluluğu: Yok

Odbc 3.8 (ve üzeri) sürücülerin çoğunun bu işlevi uygulaması beklenir. Bir sürücü bunu yapmazsa, Tanıtıcısı parametresinde bağlantı tutamacı olan sqlcancelHandle çağrısı, IM001 SQLSTATE ile SQL_ERROR döndürür ve 'Sürücü bu işlevi desteklemiyor' iletisini alır sqlcancelHandle için Tanıtıcı parametresi, Driver Manager tarafından SQLCancel çağrısına eşlenir ve sürücü SQLCanceluygular. Bir uygulama, bir sürücünün sqlcancelhandledesteklenip desteklenmediğini belirlemek için SQLGetFunctions kullanabilir.

Özeti
SQLCancelHandle bir bağlantı veya deyim üzerindeki işlemeyi iptal eder. Driver Manager, HandleType SQL_HANDLE_STMT olduğunda sqlcancelhandle SQLCancel çağrısıyla eşler.

Sözdizimi

  
SQLRETURN SQLCancelHandle(  
      SQLSMALLINT  HandleType,  
      SQLHANDLE    Handle);  

Bağımsız değişken

HandleType
[Giriş] İşlemenin iptal edileceği tanıtıcının türü. Geçerli değerler SQL_HANDLE_DBC veya SQL_HANDLE_STMT.

İşle
[Giriş] İşlemenin iptal edileceği tanıtıcı.

Tanıtıcı HandleTypetarafından belirtilen türde geçerli bir tanıtıcı değilse, SQLCancelHandle SQL_INVALID_HANDLE döndürür.

Döndürür

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR veya SQL_INVALID_HANDLE.

Tanılama

SQLCancelHandle SQL_ERROR veya SQL_SUCCESS_WITH_INFO döndürdüğünde, SQL_HANDLE_STMT HandleType SQLGetDiagRec çağrılarak ilişkili bir SQLSTATE değeri ve SQL_HANDLE_DBC Handle tanıtıcısı veya SQL_HANDLE_DBC HandleType vetanıtıcı bağlantı tanıtıcısı elde edilebilir.

Aşağıdaki tabloda, SQLCancelHandle 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.)
HY000 Genel hata Belirli bir SQLSTATE olmayan ve uygulamaya özgü SQLSTATE tanımlanmayan bir hata oluştu. *MessageText arabelleği bağımsız değişkeninde 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ı.
HY010 İşlev dizisi hatası Handleile ilişkili deyim tanıtıcılarından biri için zaman uyumsuz olarak yürütülen, deyimle ilgili bir işlev çağrıldı ve HandleType SQL_HANDLE_DBC olarak ayarlandı. SQLCancelHandle çağrıldığında zaman uyumsuz işlev hala yürütülüyordu.

(DM) HandleType bağımsız değişkeni SQL_HANDLE_STMT; İlişkili bağlantı tanıtıcısında zaman uyumsuz olarak yürütülen bir işlev çağrıldı; ve bu işlev çağrıldığında işlev hala yürütülüyordu.

(DM) SQLExecute, SQLExecDirectveya SQLMoreResults, Handle ile ilişkili deyim tanıtıcılarından biri için çağrıldı ve HandleType SQL_HANDLE_DBC olarak ayarlandı ve SQL_PARAM_DATA_AVAILABLE döndürdü. Bu işlev, tüm akış parametreleri için veri alınmadan önce çağrıldı.

SQLBrowseConnectConnectionHandleiçin çağrıldı ve SQL_NEED_DATA döndürdü. Bu işlev gözatma işlemi tamamlanmadan ö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.
HY092 Geçersiz öznitelik/seçenek tanımlayıcısı HandleType SQL_HANDLE_ENV veya SQL_HANDLE_DESC olarak ayarlandı.
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. Bağlantı zaman aşımı süresi SQLSetConnectAttrSQL_ATTR_CONNECTION_TIMEOUT üzerinden ayarlanır.
IM001 Sürücü bu işlevi desteklemiyor (DM) Tanıtıcı ile ilişkili sürücü işlevi desteklemez.

SQLCancelHandle HandleType SQL_HANDLE_STMT olarak ayarlandıysa, SQLCancelişlevi tarafından döndürülebilecek herhangi bir SQLSTATE döndürebilir.

Yorum

Bu işlev SQLCancel benzer ancak yalnızca deyim tanıtıcısı yerine bir bağlantı veya deyim tutamacını parametre olarak alabilir. Driver Manager, HandleType SQL_HANDLE_STMT olduğunda sqlcancelhandle SQLCancel çağrısıyla eşler. Bu, sürücü SQLCancelHandleuygulamasa bile uygulamaların deyim işlemlerini iptal etmek için SQLCancelHandle kullanmasına olanak tanır.

Deyim işlemini iptal etme hakkında daha fazla bilgi için bkz. SQLCancel İşlevi.

Handle üzerinde devam eden hiçbir işlem yoksa sqlcancelhandle çağrısının hiçbir etkisi.

Bağlantı tanıtıcısında SQLCancelHandle aşağıdaki işlem türlerini iptal edebilir:

  • Bağlantıda zaman uyumsuz olarak çalışan bir işlev.

  • Başka bir iş parçacığındaki bağlantı tutamacı üzerinde çalışan bir işlev.

SqlCancelHandle bir bağlantıda zaman uyumsuz olarak çalışan bir işlevi iptal etmek için çağrıldığında, SQLCancelHandle tarafından gönderilen tanılama kayıtları iptal edilen işlem tarafından döndürülenlere eklenir; SQLCancelHandle, başka bir iş parçacığında bir bağlantı üzerinde çalışan bir işlevi iptal ederken tanılama kayıtlarını döndürmez.

SQLEndTran iptal etmek için SQLCancelHandle kullanılması bağlantıyı askıya alınmış duruma getirebilir. Askıya alınma durumu hakkında daha fazla bilgi için bkz. SQLEndTran İşlevi.

Not

Windows 7'den eski bir Windows işletim sistemine dağıtılacak bir uygulamada SQLCancelHandle kullanma hakkında bilgi için bkz. uyumluluk matrisi.

bir işlev SQL_STILL_EXECUTING döndürürse, bir uygulama işlemi iptal etmek için SQLCancelHandle çağırabilir. İptal isteği başarılı olursa SQLCancelHandle SQL_SUCCESS döndürür. Bu, özgün işlevin iptal edildiği anlamına gelmez; iptal isteğinin işlendiğini gösterir. Sürücü ve veri kaynağı işlemin ne zaman iptal edileceğini veya iptal edileceğini belirler. Dönüş kodu SQL_STILL_EXECUTING kadar uygulamanın özgün işlevi çağırmaya devam etmesi gerekir. Özgün işlev iptal edildiyse, dönüş kodu SQL_ERROR ve SQLSTATE HY008 'dir (İşlem iptal edildi). Özgün işlev normal işlemesini tamamladıysa (iptal edilmediyse), özgün işlev başarısız olduysa dönüş kodu SQL_SUCCESS veya SQL_SUCCESS_WITH_INFO ya da SQL_ERROR ve HY008 dışında bir SQLSTATE (İşlem iptal edildi) olur.

Başka bir İş Parçacığında Yürütülen İşlevleri İptal Etme

Çok iş parçacıklı bir uygulamada, uygulama başka bir iş parçacığında çalışan bir işlemi iptal edebilir. İşlemi iptal etmek için uygulama SQLCancelHandle işlevinin kullandığı tanıtıcıyla ancak farklı bir iş parçacığında çağırır. İşlemin nasıl iptal edileceği sürücü ve işletim sistemi tarafından belirlenir. SQLCancelHandle dönüş kodu, sürücünün isteği işleyip işlemediğini, SQL_SUCCESS veya SQL_ERROR döndürerek (tanılama bilgisi döndürülmedi) gösterir. Özgün işlev üzerinde işleme iptal edilirse, özgün işlev SQL_ERROR ve SQLSTATE HY008 döndürür (İşlem iptal edildi).

sqlcancelhandle işlevi iptal etmek için başka bir iş parçacığında çağrıldığında bir işlev yürütülüyorsa, iptalin etkili olması için önce işlevin başarılı olması ve SQL_SUCCESS döndürmesi mümkündür. SQLCancelHandle çağrısı, sqlcancelhandle işlemi iptal etmeden önce tamamlandıysa hiçbir etkisi olmaz.

Hakkında bilgi için Görmek
Bir deyim tanıtıcısında zaman uyumsuz olarak çalışan bir işlevi iptal etme, veri gerektiren bir deyimdeki bir işlevi iptal etme veya başka bir iş parçacığındaki bir deyim üzerinde çalışan bir işlevi iptal etme. SQLCancel İşlevi

Ayrıca Bkz.

ODBC API Başvurusu
ODBC Üst Bilgi Dosyaları

Zaman Uyumsuz Yürütme (Yoklama Yöntemi)