SQLGetCursorName İşlevi

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

Özet
SQLGetCursorName, belirli bir ifadeyle ilişkili imleç adını döndürür.

Syntax

  
SQLRETURN SQLGetCursorName(  
     SQLHSTMT        StatementHandle,  
     SQLCHAR *       CursorName,  
     SQLSMALLINT     BufferLength,  
     SQLSMALLINT *   NameLengthPtr);  

Arguments

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

CursorName
[Çıkış] İmleç adını geri dönmek için bir tampona işaret eder.

Eğer CursorName NULL ise, NameLengthPtr yine de CursorName tarafından işaret edilen tamponda döndürülebilecek toplam karakter sayısını (karakter verisi için null-sonlandırma karakteri hariç) döndürecektir.

BufferLength
[Giriş] *CursorName'in uzunluğu, karakter olarak.

NameLengthPtr
[Çıkış] *CursorName'de döndürülebilecek toplam karakter sayısını (null-sonlandırma karakteri hariç) döndürmek için belleğe işaretçi. Döndürülebilecek karakter sayısı BufferLength'den büyük veya eşitse, *CursorName içindeki imleç adı BufferLength olarak kısaltılır, eksik null-sonlandırma karakterinin uzunluğu.

İadeler

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR veya SQL_INVALID_HANDLE.

Diagnostics

SQLGetCursorName SQL_ERROR veya SQL_SUCCESS_WITH_INFO döndürdüğünde, ilişkili bir SQLSTATE değeri alınabilir; bu değer SQLGetDiagRec ile SQL_HANDLE_STMT HandleType ve HandleType ile StatementHandle ile alınabilir. Aşağıdaki tablo, SQLGetCursorName tarafından sıkça döndürülen 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ş *CursorName tamponu tüm imleç adını geri döndürecek kadar büyük değildi, bu yüzden imleç adı kısaltıldı. Kesitlenmemiş imleç adının uzunluğu *NameLengthPtr. içinde geri döner. (İş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 SQLGetCursorName 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) 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.
HY015 İmleç adı mevcut değil (DM) Sürücü bir ODBC 2*.x* sürücüydü, ifadede açık imleç yoktu ve SQLSetCursorName ile bir imleç adı adanmamıştı.
HY090 Geçersiz dize veya arabellek uzunluğu (DM) BufferLength argümanında belirtilen değer 0'dan küçüktü.
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

İmleç adları yalnızca konumlanmış güncelleme ve silme ifadelerinde kullanılır (örneğin, UPDATEtablo-adı ... WHERE CURRENTİmleç adı). Daha fazla bilgi için Konumlanmış Güncelleme ve Silme Açıklamaları bölümünü inceleyebilirsiniz. Uygulama bir imleç adı tanımlamak için SQLSetCursorName çağırmazsa, sürücü bir isim oluşturur. Bu isim SQL_CUR harfleriyle başlar.

Uyarı

ODBC 2*.x*'de, açık imleç yokken ve SQLSetCursorName çağrısıyla bir isim belirlenmediğinde, SQLGetCursorName çağrısı SQLSTATE HY015 dönerdi (İmleç adı mevcut değil). ODBC 3*.x*'de bu artık geçerli değildir; SQLGetCursorName ne zaman çağrıldığı fark edilsin, sürücü imleç adını döndürür.

SQLGetCursorName , ismin açık ya da örtük olarak oluşturulmasına bakılmaksızın imlecin adını döndürür. SQLSetCursorName çağrılmazsa imleç adı örtük olarak oluşturulur. SQLSetCursorName , bir ifadede imleci tahsis edilmiş veya hazırlanmış durumda olduğu sürece yeniden adlandırmak için çağrılabilir.

Açık veya örtük olarak ayarlanan bir imleç adı, ilişkilendirildiği StatementHandle kaldırılana kadar ayarlı kalır; SQLFreeHandle ile SQL_HANDLE_STMT HandleType kullanılır.

Hakkında bilgi için Bkz:
SQL ifadesinin yürütülmesi SQLExecDirect Fonksiyonu
Hazırlanmış bir SQL deyimini yürütme SQLExecute İşlevi
Bir deyimi yürütme için hazırlama SQLPrepare İşlevi
İmleç adı ayarlama SQLSetCursorName İşlevi

Ayrıca Bkz.

ODBC API Referansı
ODBC Üst Bilgi Dosyaları