SQLRowCount İşlevi

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

Özet
SQLRowCount , bir UPDATE, INSERT, veya DELETE ifadenin etkilenen satır sayısını; SQLBulkOperations'ta bir SQL_ADD, SQL_UPDATE_BY_BOOKMARK veya SQL_DELETE_BY_BOOKMARK işlemini; veya SQLSetPos'ta bir SQL_UPDATE veya SQL_DELETE işlemini döndürür.

Syntax

  
SQLRETURN SQLRowCount(  
      SQLHSTMT   StatementHandle,  
      SQLLEN *   RowCountPtr);  

Arguments

StatementHandle
[Giriş] Deyim tanıtıcısı.

RowCountPtr
[Çıkış] Satır sayısını döndürmek için bir tampon işareti. UPDATE, INSERT, ve DELETE ifadeleri için, SQLBulkOperations'taki SQL_ADD, SQL_UPDATE_BY_BOOKMARK ve SQL_DELETE_BY_BOOKMARK işlemleri için ve SQLSetPos'taki SQL_UPDATE veya SQL_DELETE işlemler için, *RowCountPtr'de duygulanan değer ya isteğin etkilenen satır sayısıdır ya da etkilenen satır sayısı mevcut değilse -1 olur.

SQLExecute, SQLExecDirect, SQLBulkOperations, SQLSetPos veya SQLMoreResults çağrıldığında, tanı veri yapısının SQL_DIAG_ROW_COUNT alanı satır sayısına ayarlanır ve satır sayısı uygulamaya bağlı bir şekilde önbelleğe alınır. SQLRowCount önbelleğe alınmış satır sayısı değerini döndürür. Önbelleklenen satır sayısı değeri, ifade tutamacı hazırlanmış veya tahsis edilen duruma geri getirile, ifade yeniden çalıştırılana veya SQLCloseCursor çağrılana kadar geçerlidir. Eğer SQL_DIAG_ROW_COUNT alanı ayarlandığından beri bir fonksiyon çağrılmışsa, SQLRowCount tarafından döndürülen değer, SQL_DIAG_ROW_COUNT alanındaki değerden farklı olabilir çünkü SQL_DIAG_ROW_COUNT alanı herhangi bir fonksiyon çağrısıyla sıfırlanır.

Diğer ifadeler ve fonksiyonlar için, sürücü *RowCountPtr'de döndürülen değeri tanımlayabilir. Örneğin, bazı veri kaynakları, satır getirmeden önce bir SELECT ifadesi veya katalog fonksiyonu tarafından döndürülen satır sayısını döndürebilir.

Note

Birçok veri kaynağı, bir sonuç kümesindeki satır sayısını getirmeden önce döndüremez; Maksimum birlikte çalışabilirlik için uygulamalar bu davranışa güvenmemelidir.

İadeler

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR veya SQL_INVALID_HANDLE.

Diagnostics

SQLRowCount SQL_ERROR veya SQL_SUCCESS_WITH_INFO döndürdüğünde, ilişkili bir SQLSTATE değeri, SQL_HANDLE_STMT HandleType ve HandleType of StatementHandle ile SQLGetDiagRec çağrılarak elde edilebilir. Aşağıdaki tablo, SQLRowCount tarafından sıkça duygulanan SQLSTATE değerlerini listeler ve her birini bu fonksiyon 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.)
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ı.
HY010 İşlev dizisi hatası (DM) StatementHandle ile ilişkili bağlantı tanıtıcısı için zaman uyumsuz olarak yürütülen bir işlev çağrıldı. Bu asenkron fonksiyon, SQLRowCount fonksiyonu çağrıldığında hâlâ çalışıyordu.

(DM) SQLExecute, SQLExecDirect veya SQLMoreResults, StatementHandle için çağrıldı ve SQL_PARAM_DATA_AVAILABLE döndürdü. Bu işlev, tüm akış parametreleri için veri alınmadan önce çağrıldı.

(DM) Fonksiyon, StatementHandle için SQLExecute, SQLExecDirect, SQLBulkOperations veya SQLSetPos çağrılmadan önce çağrılmıştır.

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

(DM) SQLExecute, SQLExecDirect, SQLBulkOperations veya SQLSetPos, 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 alınma 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 SQLSetConnectAttr, SQL_ATTR_CONNECTION_TIMEOUT aracılığıyla ayarlanır.
IM001 Sürücü bu işlevi desteklemiyor (DM) StatementHandle ile ilişkili sürücü işlevi desteklemiyor.

Comments

Eğer ifade kolunda çalıştırılan son SQL ifadesi , INSERT, veya DELETE ifadesi değilse UPDATEya da önceki SQLBulkOperations çağrısındaki Operation argümanı SQL_ADD, SQL_UPDATE_BY_BOOKMARK veya SQL_DELETE_BY_BOOKMARK değilse, ya da önceki SQLSetPos çağrısındaki Operation argümanı SQL_UPDATE veya SQL_DELETE değilse, *RowCountPtr değeri sürücü tarafından tanımlanır. Daha fazla bilgi için bkz. Etkilenen Satır Sayısını Belirleme.

Hakkında bilgi için Bkz:
SQL ifadesinin yürütülmesi SQLExecDirect Fonksiyonu
Hazırlanmış bir SQL deyimini yürütme SQLExecute İşlevi

Ayrıca Bkz.

ODBC API Referansı
ODBC Üst Bilgi Dosyaları