Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uygunluk
Tanıtılan Sürüm: ODBC 3.0 Standartlarına Uyum: ISO 92
Summary
SQLGetDescRec , tanımlayıcı kaydın mevcut ayarlarını veya birden fazla alanının değerlerini döndürür. Geri dönen alanlar, sütun veya parametre verilerinin adını, veri tipini ve depolanmasını tanımlar.
Syntax
SQLRETURN SQLGetDescRec(
SQLHDESC DescriptorHandle,
SQLSMALLINT RecNumber,
SQLCHAR * Name,
SQLSMALLINT BufferLength,
SQLSMALLINT * StringLengthPtr,
SQLSMALLINT * TypePtr,
SQLSMALLINT * SubTypePtr,
SQLLEN * LengthPtr,
SQLSMALLINT * PrecisionPtr,
SQLSMALLINT * ScalePtr,
SQLSMALLINT * NullablePtr);
Arguments
DescriptorHandle
[Giriş] Tanımlayıcı sapı.
RecNumber
[Giriş] Uygulamanın bilgi aradığı tanımlayıcı kaydı gösterir. Tanımlayıcı kayıtlar 1'den başlayıp numaralandırılır, kayıt numarası 0 ise yer imi kaydıdır.
RecNumber argümanı, SQL_DESC_COUNT değerinden az veya eşit olmalıdır.
RecNumber SQL_DESC_COUNT'den küçük veya eşitse ancak satırda bir sütun veya parametre için veri yoksa, SQLGetDescRec çağrısı alanların varsayılan değerlerini döndürecektir. (Daha fazla bilgi için SQLSetDescField içindeki "Tanımlayıcı Alanların Başlatılması" bölümüne bakınız.)
Name
[Çıkış] Tanımlayıcı kaydı için SQL_DESC_NAME alanını döndürmek için bir tampon işaretçisi.
Eğer Name NULL ise, StringLengthPtr yine de Name'nin işaret ettiği tamponda döndürülebilecek toplam karakter sayısını (karakter verisi için null-sonlama karakteri hariç) döndürecektir.
BufferLength
[Giriş] *Adı tamponunun uzunluğu, karakter cinsinden.
StringLengthPtr
[Çıkış] *Adı tamponunda döndürülebilecek veri sayısını döndürmek için bir işaretçi, null-sonlandırma karakteri hariç olarak. Eğer karakter sayısı BufferLength'den büyük veya eşitse, *Name'deki veri BufferLength olarak null-termination karakterinin uzunluğu çıkarılır ve sürücü tarafından null-sonlandırılır.
TypePtr
[Çıkış] Tanımlayıcı kaydı için SQL_DESC_TYPE alanının değerini döndürmek için bir tampon işaretçisi.
SubTypePtr
[Çıkış] Tipi SQL_DATETIME veya SQL_INTERVAL olan kayıtlar için, bu, SQL_DESC_DATETIME_INTERVAL_CODE alanının değerini döndürmek için bir tampon işaretçisidir.
LengthPtr
[Çıkış] Tanımlayıcı kaydı için SQL_DESC_OCTET_LENGTH alanının değerini döndürmek için bir tampon işaretçisi.
PrecisionPtr
[Çıkış] Tanımlayıcı kaydı için SQL_DESC_PRECISION alanının değerini döndürmek için bir tampon işaretçisi.
ScalePtr
[Çıkış] Tanımlayıcı kaydı için SQL_DESC_SCALE alanının değerini döndürmek için bir tampon işareti.
NullablePtr
[Çıkış] Tanımlayıcı kaydı için SQL_DESC_NULLABLE alanının değerini döndürmek için bir tampon işaretçisi.
İadeler
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR, SQL_NO_DATA ya da SQL_INVALID_HANDLE.
SQL_NO_DATA RecNumber mevcut tanımlayıcı kayıt sayısından büyükse döner.
SQL_NO_DATA DescriptorHandle bir IRD kullanıcı olarak ve ifade hazırlanmış veya çalıştırılmış durumdaysa ancak açık imleç ilişkili değilse döner.
Diagnostics
SQLGetDescRec SQL_ERROR veya SQL_SUCCESS_WITH_INFO döndürdüğünde, ilişkili bir SQLSTATE değeri, SQL_HANDLE_DESC HandleType ve DescriptorHandleile SQLGetDiagRec çağrılarak elde edilebilir. Aşağıdaki tablo, genellikle SQLGetDescRec tarafından duygulanan 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ş | Buffer *Adı tüm tanımlayıcı alanını geri döndürecek kadar büyük değildi. Bu nedenle, alan kısaltıldı. Kıstırılmamış tanımlayıcı alanının uzunluğu *StringLengthPtr. (İşlev SQL_SUCCESS_WITH_INFO döndürür.) |
| 07009 | Geçersiz tanımlayıcı indeksi |
FieldIdentifier argümanı bir kayıt alanıydı, RecNumber argümanı 0 olarak ayarlanmıştı ve DescriptorHandle argümanı bir IPD tutacağıydı. (DM) RecNumber argümanı 0 olarak ayarlanmıştı, SQL_ATTR_USE_BOOKMARKS ifadesi özniteliği SQL_UB_OFF olarak ayarlanmıştı ve DescriptorHandle argümanı bir IRD tutamı. RecNumber argümanı 0'dan küçüktü. |
| 08S01 | İletişim bağlantısı hatası | sürücü ile sürücünün bağlandığı veri kaynağı arasındaki iletişim bağlantısı, işlev işlenmeden önce başarısız oldu. |
| 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 tahsis edemedi. |
| HY007 | İlgili ifade hazırlanmamıştır | DescriptorHandle bir IRD ile ilişkilendirilmişti ve ilgili ifade kullanıcı hazır veya çalıştırılmış durumda değildi. |
| HY010 | İşlev dizisi hatası | (DM) DescriptorHandle , asenkron olarak çalışan bir fonksiyonun çağrıldığı (bu değil) bir StatementHandle ile ilişkilendirilmişti ve bu fonksiyon çağrıldığında hâlâ çalışıyordu. (DM) DescriptorHandle, SQLExecute, SQLExecDirect, SQLBulkOperations veya SQLSetPos çağrılıp SQL_NEED_DATA döndürülen bir StatementHandle ile ilişkilendirildi. 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ı. (DM) DescriptorHandle ile ilişkilendirilen bağlantı kolu için asenkron olarak çalışan bir fonksiyon çağrılmıştır. Bu asenkron fonksiyon SQLGetDescRec çağrıldığında hâlâ çalışıyordu. |
| 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) DescriptorHandle ile ilişkili sürücü bu fonksiyonu desteklemez. |
Comments
Bir uygulama, tek bir sütun veya parametre için aşağıdaki tanımlayıcı alanlarının değerlerini almak üzere SQLGetDescRec'i çağırabilir:
SQL_DESC_NAME
SQL_DESC_TYPE
SQL_DESC_DATETIME_INTERVAL_CODE (tipi SQL_DATETIME veya SQL_INTERVAL olan kayıtlar için)
SQL_DESC_OCTET_LENGTH
SQL_DESC_PRECISION
SQL_DESC_SCALE
SQL_DESC_NULLABLE (SQL Tanımlayıcı Boş Olabilirliği)
SQLGetDescRec , başlık alanlarının değerlerini almaz.
Bir uygulama, alana karşılık gelen argümanı null işaretçiye ayarlayarak bir alanın ayarının geri dönmesini engelleyebilir.
Bir uygulama, belirli bir tanımlayıcı tipi için tanımlanmamış bir alanın değerini almak için SQLGetDescRec çağırdığında, fonksiyon SQL_SUCCESS döndürür ancak alan için geri dönen değer tanımlanmamıştır. Örneğin, bir APD veya ARD'nin SQL_DESC_NAME veya SQL_DESC_NULLABLE alanı için SQLGetDescRec çağrıldığında, alan için tanımsız bir değer SQL_SUCCESS döner.
Bir uygulama, belirli bir tanımlayıcı türü için tanımlanmış ancak varsayılan değeri olmayan ve henüz ayarlanmamış bir alanın değerini almak için SQLGetDescRec çağırdığında, fonksiyon SQL_SUCCESS döndürür ancak alan için döndürülen değer tanımlanmamıştır. Daha fazla bilgi için SQLSetDescField içindeki "Descriptor Fields'ın Başlatılması" bölümüne bakınız.
Alan değerleri ayrıca SQLGetDescField çağrısıyla tek tek elde edilebilir. Tanımlayıcı başlığı veya kayıttaki alanların tanımı için SQLSetDescField sayfasına bakınız. Tanımlayıcılar hakkında daha fazla bilgi için bkz. Tanımlayıcılar.
İlgili Fonksiyonlar
| Hakkında bilgi için | Bkz: |
|---|---|
| Bir sütunun bağlanması | SQLBindCol İşlevi |
| Bir parametre bağlama | SQLBindParameter Fonksiyonu |
| Tanımlayıcı alan elde etmek | SQLGetDescField Fonksiyonu |
| Birden fazla tanımlayıcı alanı ayarlanması | SQLSetDescRec Function |