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
SQLGetDiagRec , hata, uyarı ve durum bilgisi içeren bir tanı kaydının birden fazla alanının mevcut değerlerini döndürür. Her çağrı için bir tanı alanı döndüren SQLGetDiagField'in aksine, SQLGetDiagRec tanı kaydında SQLSTATE, yerel hata kodu ve tanı mesajı metni dahil olmak üzere yaygın kullanılan birkaç tanı kaydı alanını döndürür.
Syntax
SQLRETURN SQLGetDiagRec(
SQLSMALLINT HandleType,
SQLHANDLE Handle,
SQLSMALLINT RecNumber,
SQLCHAR * SQLState,
SQLINTEGER * NativeErrorPtr,
SQLCHAR * MessageText,
SQLSMALLINT BufferLength,
SQLSMALLINT * TextLengthPtr);
Arguments
HandleType
[Giriş] Tanılamanın gerekli olduğu tanıtıcı türünü açıklayan tanıtıcı türü tanımlayıcısı. Aşağıdakilerden biri olmalıdır:
SQL_HANDLE_DBC
SQL_HANDLE_DBC_INFO_TOKEN
SQL_HANDLE_DESC
SQL_HANDLE_ENV
SQL_HANDLE_STMT
SQL_HANDLE_DBC_INFO_TOKEN tutamacı yalnızca Sürücü Yöneticisi ve sürücüsü tarafından kullanılır. Uygulamalar bu tanıtıcı türünü kullanmamalıdır. SQL_HANDLE_DBC_INFO_TOKEN hakkında daha fazla bilgi için bkz. ODBC Sürücüsünde Farkındalık Connection-Pool Geliştirme.
Kulp
[Giriş] HandleTypetarafından belirtilen türdeki tanılama veri yapısı için bir tanıtıcı.
HandleType SQL_HANDLE_ENV ise, Tanıtıcı paylaşılan veya paylaşılmayan bir ortam tanıtıcısı olabilir.
RecNumber
[Giriş] Uygulamanın bilgi aradığı durum kaydını gösterir. Durum kayıtları 1'den numaralandırılır.
SQLState
[Çıkış] RecNumber tanı kaydı için beş karakterli SQLSTATE kodunu (ve sonlandıran NULL'u) döndürmek üzere bir tampon işareti. İlk iki karakter sınıfı gösterir; sonraki üçü alt sınıfı gösterir. Bu bilgiler SQL_DIAG_SQLSTATE tanı alanında yer alır. Daha fazla bilgi için bkz. sqlstates
NativeErrorPtr
[Çıkış] Veri kaynağına özgü yerel hata kodunu döndürmek için bir tampona işaret edin. Bu bilgiler SQL_DIAG_NATIVE tanı alanında yer alır.
İleti Metni
[Çıkış] Tanı mesajı metin dizesini döndürmek için bir tampona işaret edin. Bu bilgiler SQL_DIAG_MESSAGE_TEXT tanı alanında yer alır. Dizinin formatı için Tanısal Mesajlar bölümüne bakınız.
MessageText NULL ise, TextLengthPtr yine de MessageText 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ş] *MessageText buffer'ın uzunluğu karakter cinsinden. Tanısal mesaj metninin maksimum uzunluğu yoktur.
TextLengthPtr
[Çıkış] * MessageText'te döndürülebilecek toplam karakter sayısını (null-sonlandırma karakteri için gereken karakter sayısı hariç) döndürmek için bir tampon işaretçisi. Eğer döndürülebilecek karakter sayısı BufferLength'den fazlaysa, *MessageText'teki tanı mesajı metni BufferLength olarak kısaltılır, null-sonlandırma karakterinin uzunluğu çıkarılır.
İadeler
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR, SQL_NO_DATA ya da SQL_INVALID_HANDLE.
Diagnostics
SQLGetDiagRec kendisi için tanı kayıtları paylaşmaz. Kendi yürütmesinin sonucunu raporlamak için aşağıdaki dönüş değerlerini kullanır:
SQL_SUCCESS: İşlev, tanılama bilgilerini başarıyla döndürdü.
SQL_SUCCESS_WITH_INFO: *MessageText tamponu istenen tanı mesajını tutmak için çok küçüktü. Herhangi bir tanı kaydı oluşturulmadı. Bir kesintinin gerçekleşip gerçekleşmediğini belirlemek için uygulama, BufferLength'i mevcut bayt sayısıyla karşılaştırmalıdır; bu sayı *TextLengthPtr'de yazılır.
SQL_INVALID_HANDLE: HandleType ve Tanıtıcı tarafından belirtilen tanıtıcı geçerli bir tanıtıcı değildi.
SQL_ERROR: Aşağıdakilerden biri oluştu:
RecNumber negatif ya da 0 idi.
BufferLength sıfırdan küçüktü.
Zaman uyumsuz bildirim kullanılırken, tanıtıcıdaki zaman uyumsuz işlem tamamlanmadı.
SQL_NO_DATA:
RecNumber ,Tanıtıcı'da belirtilen tanıtıcı için var olan tanılama kayıtlarının sayısından fazlaydı. İşlev,Tanıtıcı için tanılama kaydı yoksa RecNumber pozitifiçin de SQL_NO_DATA döndürür.
Comments
Bir uygulama genellikle bir ODBC fonksiyonuna önceki çağrı SQL_ERROR veya SQL_SUCCESS_WITH_INFO döndürdüğünde SQLGetDiagRec çağrısını yapar. Ancak, herhangi bir ODBC fonksiyonu her çağrıldığında sıfır veya daha fazla tanı kaydı gönderebildiğinden, bir uygulama herhangi bir ODBC fonksiyon çağrısından sonra SQLGetDiagRec'i çağırabilir. Bir uygulama, tanı veri yapısındaki bazı veya tüm kayıtları döndürmek için SQLGetDiagRec'i birden fazla kez çağırabilir. ODBC, aynı anda depolanabilecek tanı kayıt sayısına bir sınır koymaz.
SQLGetDiagRec , tanı veri yapısının başlığından alanları döndürmek için kullanılamaz. ( RecNumber argümanı 0'dan büyük olmalıdır.) Uygulama bu amaçla SQLGetDiagField çağırmalıdır.
SQLGetDiagRec , yalnızca Handle argümanında belirtilen tutamaçla en son ilişkili tanı bilgilerini alır. Uygulama, SQLGetDiagRec, SQLGetDiagField veya SQLErrror dışında başka bir ODBC fonksiyonu çağırırsa, aynı tutuktaki önceki çağrılardan alınan tanı bilgileri kaybolur.
Bir uygulama, SQLGetDiagRec SQL_SUCCESS döndürdüğü sürece, RecNumber'ı döngüye alarak tüm tanı kayıtlarını tarabiliyor. SQLGetDiagRec çağrıları başlık ve kayıt alanlarına zarar vermez. Uygulama, bu arada SQLGetDiagRec, SQLGetDiagField veya SQLError dışında başka bir fonksiyon çağrılmadığı sürece, bir kayıttan alan almak için daha sonra tekrar çağırabilir. Uygulama ayrıca SQLGetDiagField çağırarak SQL_DIAG_NUMBER alanının değerini alabilir ve ardından SQLGetDiagRec'i bu kadar kez çağırarak toplam tanı kayıtlarının sayını da elde edebilir.
Tanı veri yapısının alanlarının tanımı için SQLGetDiagField sayfasına bakınız. Daha fazla bilgi için bkz. SQLGetDiagRec ve SQLGetDiagField kullanma ve SQLGetDiagRec ve SQLGetDiagFieldUygulama
Zaman uyumsuz olarak yürütülen API dışında bir API çağrılması HY010 "İşlev dizisi hatası" oluşturur. Ancak, zaman uyumsuz işlem tamamlanmadan önce hata kaydı alınamaz.
HandleType Bağımsız Değişkeni
Her tanıtıcı türüyle ilişkilendirilmiş tanılama bilgileri olabilir. HandleType argümanı, Handle argümanının tutmaç tipini gösterir.
Bazı üst bilgi ve kayıt alanları ortam, bağlantı, deyim ve tanımlayıcı tanıtıcıları için döndürülemez. Bir alanın uygulanmadığı bu tutamaçlar, SQLGetDiagField içindeki "Başlık Alanları" ve "Kayıt Alanları" bölümlerinde belirtilmiştir.
SQLGetDiagRec çağrısı, HandleType SQL_HANDLE_SENV ise SQL_INVALID_HANDLE döner; bu da paylaşılan bir ortam tutalı anlamına gelir. Ancak , HandleType SQL_HANDLE_ENV ise, Handle paylaşılan veya paylaşılmayan bir ortam tutalı olabilir.
İlgili Fonksiyonlar
| Hakkında bilgi için | Bkz: |
|---|---|
| Tanı kaydının bir alanını veya tanı başlığının bir alanını elde etmek | SQLGetDiagField Fonksiyonu |