Aracılığıyla paylaş


Dönüş Kodları ODBC

ODBC'deki her işlev, işlevin genel başarısını veya başarısızlığını gösteren dönüş kodu olarak bilinen bir kod döndürür. Program mantığı genellikle dönüş kodlarını temel alır.

Örneğin, aşağıdaki kod SQLFetch'i çağırarak bir sonuç kümesindeki satırları alır. Sonuç kümesinin sonuna ulaşılıp ulaşılamadığını (SQL_NO_DATA), herhangi bir uyarı bilgisi döndürüldüyse (SQL_SUCCESS_WITH_INFO) veya bir hata oluşup oluşmadığını (SQL_ERROR) belirlemek için işlevin dönüş kodunu denetler.

SQLRETURN   rc;  
SQLHSTMT    hstmt;  
  
while ((rc=SQLFetch(hstmt)) != SQL_NO_DATA) {  
   if (rc == SQL_SUCCESS_WITH_INFO) {  
      // Call function to display warning information.  
   } else if (rc == SQL_ERROR) {  
      // Call function to display error information.  
      break;  
   }  
   // Process row.  
}  

dönüş kodu SQL_INVALID_HANDLE her zaman bir programlama hatası gösterir ve çalışma zamanında hiçbir zaman karşılaşılmamalıdır. Diğer tüm dönüş kodları çalışma zamanı bilgilerini sağlar, ancak SQL_ERROR bir programlama hatası gösterebilir.

Aşağıdaki tabloda dönüş kodları tanımlenmektedir.

İade kodu Description
SQL_SUCCESS İşlev başarıyla tamamlandı. Uygulama, üst bilgi kaydından ek bilgi almak için SQLGetDiagField'i çağırır.
SQL_SUCCESS_WITH_INFO İşlev, büyük olasılıkla önemli olmayan bir hatayla (uyarı) başarıyla tamamlandı. Uygulama ek bilgi almak için SQLGetDiagRec veya SQLGetDiagField'i çağırır.
SQL_ERROR (SQL Hatası) İşlev başarısız oldu. Uygulama ek bilgi almak için SQLGetDiagRec veya SQLGetDiagField'i çağırır. Fonksiyona ait çıktı bağımsız değişkenlerinin içeriği tanımlanmamıştır.
SQL_INVALID_HANDLE İşlev geçersiz bir ortam, bağlantı, deyim veya tanımlayıcı tanıtıcı nedeniyle başarısız oldu. Bu, bir programlama hatası olduğunu gösterir. SQLGetDiagRec veya SQLGetDiagField'dan ek bilgi yok. Bu kod yalnızca tanıtıcı bir null işaretçi olduğunda veya yanlış türde bir tanıtıcı olduğunda geri döndürülür; örneğin, bağlantı tutamacı gerektiren bir bağımsız değişken için deyim tutamacı geçirildiğinde.
SQL_VERİ_YOK Başka veri yoktu. Uygulama ek bilgi almak için SQLGetDiagRec veya SQLGetDiagField'i çağırır. 02xxx sınıfında bir veya daha fazla sürücü tanımlı durum kaydı döndürülebilir. Not: ODBC 2'de. x, bu dönüş kodu SQL_NO_DATA_FOUND olarak adlandırıldı.
SQL_NEED_DATA Parametre verilerinin yürütme zamanında gönderilmesi veya ek bağlantı bilgilerinin gerekli olması gibi daha fazla veri gerekir. Uygulama, varsa ek bilgileri almak için SQLGetDiagRec veya SQLGetDiagField'i çağırır.
SQL_STILL_EXECUTING Zaman uyumsuz olarak başlatılan bir işlev hala yürütülüyor. Uygulama, varsa ek bilgileri almak için SQLGetDiagRec veya SQLGetDiagField'i çağırır.