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.
uyumluluk
Sunulan Sürüm: ODBC 3.0 Standartları Uyumluluğu: ISO 92
Özeti
SQLGetDiagField
Sözdizimi
SQLRETURN SQLGetDiagField(
SQLSMALLINT HandleType,
SQLHANDLE Handle,
SQLSMALLINT RecNumber,
SQLSMALLINT DiagIdentifier,
SQLPOINTER DiagInfoPtr,
SQLSMALLINT BufferLength,
SQLSMALLINT * StringLengthPtr);
Bağımsız değişken
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 Connection-Pool Farkındalığı Geliştirme.
İşle
[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.
DiagIdentifier bağımsız değişkeni tanılama üst bilgisinin herhangi bir alanını gösteriyorsa, RecNumber yoksayılır. Değilse, 0'dan fazla olmalıdır.
DiagIdentifier
[Giriş] Değeri döndürülecek tanılama alanını gösterir. Daha fazla bilgi için "Açıklamalar" bölümündeki "DiagIdentifier Argument" bölümüne bakın.
DiagInfoPtr
[Çıkış] Tanılama bilgilerinin döndürüleceği arabelleğe ilişkin işaretçi. Veri türü, DiagIdentifierdeğerine bağlıdır.
DiagInfoPtr bir tamsayı türündeyse, bazı sürücüler yalnızca alt 32 bit veya 16 bit arabelleği yazabileceği ve daha yüksek sıralı biti değişmeden bırakabileceği için, uygulamaların SQLULEN arabelleği kullanması ve bu işlevi çağırmadan önce değeri 0 olarak başlatması gerekir.
DiagInfoPtr NULL ise, StringLengthPtr, DiagInfoPtrtarafından işaret edilen arabellekte döndürülecek toplam bayt sayısını (karakter verileri için null sonlandırma karakteri hariç) döndürmeye devam eder.
BufferLength
[Giriş] DiagIdentifier ODBC tanımlı bir tanılama ve DiagInfoPtr bir karakter dizesine veya ikili arabelleğe işaret ederse, bu bağımsız değişken *DiagInfoPtruzunluğu olmalıdır.
DiagIdentifier ODBC tanımlı bir alansa ve *DiagInfoPtr bir tamsayıysa BufferLength yoksayılır.
DiagIdentifier sürücü tanımlı bir alansa, uygulama BufferLength bağımsız değişkenini ayarlayarak alanın niteliğini Driver Manager'a gösterir. BufferLength aşağıdaki değerlere sahip olabilir:
DiagInfoPtr bir karakter dizesinin işaretçisiyse, BufferLengthdizenin veya SQL_NTS uzunluğudur. DiagInfoPtr ikili arabelleğe işaretçiyse, uygulama BufferLengthSQL_LEN_BINARY_ATTR(uzunluk) makrosunun sonucunu yerleştirir. Bu, BufferLengthnegatif bir değer yerleştirir.
DiagInfoPtr karakter dizesi veya ikili dize dışında bir değerin işaretçisiyse BufferLength değeri SQL_IS_POINTER olmalıdır.
*DiagInfoPtr
sabit uzunlukta bir veri türü içeriyorsa BufferLength uygun şekilde SQL_IS_INTEGER, SQL_IS_UINTEGER, SQL_IS_SMALLINT veya SQL_IS_USMALLINT.
StringLengthPtr
[Çıkış] Karakter verileri için *DiagInfoPtriçinde döndürülebilen toplam bayt sayısını (null sonlandırma karakteri için gereken bayt sayısı hariç) döndürecek arabelleğe yönelik işaretçi. Döndürülecek bayt sayısı BufferLengthdeğerinden büyük veya buna eşitse, *DiagInfoPtr içindeki metin BufferLength olarak kesilir null sonlandırma karakterinin uzunluğu çıkarılır.
Döndürür
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR, SQL_INVALID_HANDLE veya SQL_NO_DATA.
Tanılama
SQLGetDiagField kendisi için tanılama kayıtlarını göndermez. 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: *DiagInfoPtr istenen tanılama alanını tutamayacak kadar küçük. Bu nedenle, tanılama alanındaki veriler kesildi. Bir kesme işleminin gerçekleştiğini belirlemek için, uygulamanın BufferLength değerini*StringLengthPtrolarak yazılan kullanılabilir gerçek bayt sayısıyla karşılaştırması gerekir.
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:
DiagIdentifier bağımsız değişkeni geçerli değerlerden biri değildi.
DiagIdentifier bağımsız değişkeni SQL_DIAG_CURSOR_ROW_COUNT, SQL_DIAG_DYNAMIC_FUNCTION, SQL_DIAG_DYNAMIC_FUNCTION_CODE veya SQL_DIAG_ROW_COUNT, ancak Tanıtıcı bir deyim tutamacı değildi. (Sürücü Yöneticisi bu tanılamayı döndürür.)
DiagIdentifier tanılama kaydındaki bir alanı gösterdiğinde RecNumber bağımsız değişkeni negatif veya 0'dı. RecNumber üst bilgi alanları için yoksayılır.
İstenen değer bir karakter dizesiydi ve bufferlength
sıfırdan küçük. 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.
Yorum
Bir uygulama genellikle üç hedeflerden birini gerçekleştirmek için SQLGetDiagField çağırır:
İşlev çağrısı SQL_ERROR veya SQL_SUCCESS_WITH_INFO döndürdügünde (veya SQLBrowseConnect işlevi için SQL_NEED_DATA) belirli hata veya uyarı bilgilerini almak için.
SqlExecute,
SQLExecDirect ,SQLBulkOperations veyaSQLSetPos (SQL_DIAG_ROW_COUNT üst bilgi alanından)çağrısıyla veri kaynağındaki satırların sayısını belirlemek veya geçerli açık imleçte var olan satır sayısını belirlemek için, sürücü bu bilgileri sağlayabilirse (SQL_DIAG_CURSOR_ROW_COUNT üst bilgi alanından). SQLExecDirect
veya SQLExecute (SQL_DIAG_DYNAMIC_FUNCTION ve SQL_DIAG_DYNAMIC_FUNCTION_CODE üst bilgi alanlarından) bir çağrı tarafından yürütülen işlevi belirlemek için.
Herhangi bir ODBC işlevi her çağrıldığında sıfır veya daha fazla tanılama kaydı gönderebilir, böylece bir uygulama herhangi bir ODBC işlev çağrısının ardından SQLGetDiagField çağırabilir. Herhangi bir zamanda depolanabilecek tanılama kayıtlarının sayısıyla ilgili bir sınır yoktur.
SQLGetDiagField yalnızca Tanıtıcı bağımsız değişkeninde belirtilen tanılama veri yapısıyla en son ilişkili tanılama bilgilerini alır. Uygulama SQLGetDiagField veya sqlGetDiagRec
Bir uygulama,
Bir uygulama SQLGetDiagField çağırarak SQL_DIAG_CURSOR_ROW_COUNT veya SQL_DIAG_ROW_COUNT dışında herhangi bir tanılama alanını döndürebilir ve Tanıtıcı bir deyim tutamacı değilse SQL_ERROR döndürür. Başka bir tanılama alanı tanımlanmamışsa, SQLGetDiagField çağrısı SQL_SUCCESS döndürür (başka bir tanılamayla karşılaşılmazsa) ve alan için tanımlanmamış bir değer döndürülür.
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 bağımsız değişkeni, Handletanıtıcı türünü 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 geçerli olmadığı tutamaçlar, aşağıdaki "Üst Bilgi Alanları" ve "Kayıt Alanları" bölümlerinde belirtilir.
HandleType SQL_HANDLE_ENV ise, Tanıtıcı paylaşılan veya paylaşılmayan bir ortam tutamacı olabilir.
Bir ortam tanıtıcısıyla sürücüye özgü üst bilgi tanılama alanları ilişkilendirilmemelidir.
Tanımlayıcı tutamacı için tanımlanan tek tanılama üst bilgisi alanları SQL_DIAG_NUMBER ve SQL_DIAG_RETURNCODE.
DiagIdentifier Bağımsız Değişkeni
Bu bağımsız değişken, tanılama veri yapısından gereken alanın tanımlayıcısını gösterir. RecNumber 1'den büyük veya buna eşitse, alandaki veriler bir işlev tarafından döndürülen tanılama bilgilerini açıklar. RecNumber 0 ise, alan tanılama veri yapısının üst bilgisindedir ve bu nedenle belirli bilgilerle değil tanılama bilgilerini döndüren işlev çağrısıyla ilgili verileri içerir.
Sürücüler, tanılama veri yapısında sürücüye özgü üst bilgi ve kayıt alanları tanımlayabilir.
ODBC 2*.x* sürücüsüyle çalışan bir ODBC 3*.x* uygulaması SQLGetDiagField yalnızca SQL_DIAG_CLASS_ORIGIN, SQL_DIAG_CLASS_SUBCLASS_ORIGIN, SQL_DIAG_CONNECTION_NAME, SQL_DIAG_MESSAGE_TEXT, SQL_DIAG_NATIVE, SQL_DIAG_NUMBER, SQL_DIAG_RETURNCODE, SQL_DIAG_SERVER_NAME, DiagIdentifier bağımsız değişkeniyle çağırabilir. veya SQL_DIAG_SQLSTATE. Diğer tüm tanılama alanları SQL_ERROR döndürür.
Üst Bilgi Alanları
Aşağıdaki tabloda listelenen üst bilgi alanları DiagIdentifier bağımsız değişkenine eklenebilir.
| DiagIdentifier | Dönüş türü | Döndürür |
|---|---|---|
| SQL_DIAG_CURSOR_ROW_COUNT | SQLLEN | Bu alan, imleçteki satır sayısını içerir. Semantiği, SQLGetInfo SQL_DYNAMIC_CURSOR_ATTRIBUTES2, SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2, SQL_KEYSET_CURSOR_ATTRIBUTES2 ve SQL_STATIC_CURSOR_ATTRIBUTES2 bilgi türlerine bağlıdır. Bu, her imleç türü için hangi satır sayılarının kullanılabilir olduğunu gösterir (SQL_CA2_CRC_EXACT ve SQL_CA2_CRC_APPROXIMATE bitlerde). Bu alanın içeriği yalnızca deyim tanıtıcıları için tanımlanır ve yalnızca SQLExecute |
| SQL_DIAG_DYNAMIC_FUNCTION | SQLCHAR * | Bu, temel alınan işlevin yürüttüğü SQL deyimini açıklayan bir dizedir. (Belirli değerler için bu bölümün devamında yer alan "Dinamik İşlev alanlarının değerleri" bölümüne bakın.) Bu alanın içeriği yalnızca deyim tanıtıcıları için tanımlanır ve yalnızca SQLExecute, |
| SQL_DIAG_DYNAMIC_FUNCTION_CODE | SQLINTEGER | Bu, temel alınan işlev tarafından yürütülen SQL deyimini açıklayan sayısal bir koddur. (Belirli bir değer için bu bölümün devamında yer alan "Dinamik İşlev Alanlarının Değerleri" bölümüne bakın.) Bu alanın içeriği yalnızca deyim tanıtıcıları için tanımlanır ve yalnızca SQLExecute, |
| SQL_DIAG_NUMBER | SQLINTEGER | Belirtilen tanıtıcı için kullanılabilen durum kayıtlarının sayısı. |
| SQL_DIAG_RETURNCODE | SQLRETURN | İşlev tarafından döndürülen kodu döndürür. İade kodlarının listesi için bkz. İade Kodları |
| SQL_DIAG_ROW_COUNT | SQLLEN |
Kayıt Alanları
Aşağıdaki tabloda listelenen kayıt alanları DiagIdentifier bağımsız değişkenine eklenebilir.
| DiagIdentifier | Dönüş türü | Döndürür |
|---|---|---|
| SQL_DIAG_CLASS_ORIGIN | SQLCHAR * | Bu kayıttaki SQLSTATE değerinin sınıf bölümünü tanımlayan belgeyi gösteren dize. Open Group ve ISO çağrı düzeyi arabirimi tarafından tanımlanan tüm SQLSTATEs için değeri "ISO 9075"tir. ODBC'ye özgü SQLSTAT'lar (SQLSTATE sınıfı "IM" olan herkes) için değeri "ODBC 3.0"dır. |
| SQL_DIAG_COLUMN_NUMBER | SQLINTEGER | SQL_DIAG_ROW_NUMBER alanı bir satır kümesinde veya parametre kümesinde geçerli bir satır numarasıysa, bu alan sonuç kümesindeki sütun numarasını veya parametre kümesindeki parametre numarasını temsil eden değeri içerir. Sonuç kümesi sütun numaraları her zaman 1'de başlar; Bu durum kaydı bir yer işareti sütunuyla ilgiliyse, alan sıfır olabilir. Parametre numaraları 1'de başlar. Durum kaydı bir sütun numarası veya parametre numarasıyla ilişkilendirilmemişse SQL_NO_COLUMN_NUMBER değerine sahiptir. Sürücü, bu kaydın ilişkili olduğu sütun numarasını veya parametre numarasını belirleyemezse, bu alanın değeri SQL_COLUMN_NUMBER_UNKNOWN. Bu alanın içeriği yalnızca deyim tanıtıcıları için tanımlanır. |
| SQL_DIAG_CONNECTION_NAME | SQLCHAR * | Tanılama kaydının ilişkili olduğu bağlantının adını gösteren dize. Bu alan sürücü tanımlıdır. Ortam tanıtıcısıyla ilişkili tanılama veri yapıları ve herhangi bir bağlantıyla ilişkili olmayan tanılamalar için bu alan sıfır uzunlukta bir dizedir. |
| SQL_DIAG_MESSAGE_TEXT | SQLCHAR * | Hata veya uyarıyla ilgili bilgilendirme iletisi. Bu alan, Tanılama İletileri'nde açıklandığı gibi biçimlendirilir. Tanılama iletisi metni için uzunluk üst sınırı yoktur. |
| SQL_DIAG_NATIVE | SQLINTEGER | Sürücüye/veri kaynağına özgü yerel hata kodu. Yerel hata kodu yoksa, sürücü 0 döndürür. |
| SQL_DIAG_ROW_NUMBER | SQLLEN | Bu alan, satır kümesindeki satır numarasını veya durum kaydının ilişkilendirildiği parametre kümesindeki parametre numarasını içerir. Satır numaraları ve parametre numaraları 1 ile başlar. Bu durum kaydı bir satır numarası veya parametre numarasıyla ilişkilendirilmemişse, bu alan SQL_NO_ROW_NUMBER değerine sahiptir. Sürücü, bu kaydın ilişkili olduğu satır numarasını veya parametre numarasını belirleyemezse, bu alanın değeri SQL_ROW_NUMBER_UNKNOWN. Bu alanın içeriği yalnızca deyim tanıtıcıları için tanımlanır. |
| SQL_DIAG_SERVER_NAME | SQLCHAR * | Tanılama kaydının ilişkili olduğu sunucu adını gösteren dize. SQL_DATA_SOURCE_NAME seçeneğiyle SQLGetInfo |
| SQL_DIAG_SQLSTATE | SQLCHAR * | Beş karakterli bir SQLSTATE tanılama kodu. Daha fazla bilgi için bkz. sqlstates |
| SQL_DIAG_SUBCLASS_ORIGIN | SQLCHAR * | SQL_DIAG_CLASS_ORIGIN ile aynı biçime ve geçerli değerlere sahip, SQLSTATE kodunun alt sınıf bölümünün tanımlama bölümünü tanımlayan bir dize. "ODBC 3.0" döndürülen ODBC'ye özgü SQLSTATES şunları içerir: 01S00, 01S01, 01S02, 01S06, 01S07, 07S01, 08S01, 21S01, 21S02, 25S01, 25S02, 25S03, 42S01, 42S02, 42S11, 42S12, 42S21, 42S22, HY095, HY097, HY098, HY099, HY100, HY101, HY105, HY107, HY109, HY110, HY111, HYT00, HYT01, IM001, IM002, IM003, IM004, IM005, IM006, IM007, IM008, IM010, IM011, IM012. |
Dinamik İşlev Alanlarının Değerleri
Aşağıdaki tabloda, sqlexecute veya sqlexecdirect
| SQL deyimi Yürütülen |
Değeri SQL_DIAG_DYNAMIC_FUNCTION |
Değeri SQL_DIAG_DYNAMIC_FUNCTION_CODE |
|---|---|---|
| alter-domain-statement | "ALTER DOMAIN" | SQL_DIAG_ALTER_DOMAIN |
| alter-table-statement | "ALTER TABLE" | SQL_DIAG_ALTER_TABLE |
| onay-tanım |
"ONAY OLUŞTURMA" | SQL_DIAG_CREATE_ASSERTION |
| Karakter kümesi tanımı |
"KARAKTER KÜMESI OLUŞTUR" | SQL_DIAG_CREATE_CHARACTER_SET |
| harmanlama tanımı |
"CREATE COLLATION" | SQL_DIAG_CREATE_COLLATION |
| etki alanı tanımı |
"ETKI ALANı OLUŞTUR" | SQL_DIAG_CREATE_DOMAIN |
| create-index-statement |
"CREATE INDEX" | SQL_DIAG_CREATE_INDEX |
| create-table-statement |
"CREATE TABLE" | SQL_DIAG_CREATE_TABLE |
| create-view-statement |
"GÖRÜNÜM OLUŞTUR" | SQL_DIAG_CREATE_VIEW |
| İmleç belirtimi |
"İMLEÇ SEÇ" | SQL_DIAG_SELECT_CURSOR |
| delete-statement-positioned |
"DINAMIK SILME İMLECI" | SQL_DIAG_DYNAMIC_DELETE_CURSOR |
| delete-statement-searched |
"DELETE WHERE" | SQL_DIAG_DELETE_WHERE |
| drop-assertion-statement |
"DROP ASSERTION" | SQL_DIAG_DROP_ASSERTION |
| drop-character-set-stmt | "KARAKTER KÜMESINI BıRAK" | SQL_DIAG_DROP_CHARACTER_SET |
| drop-collation-statement |
"DROP HARMANLAMA" | SQL_DIAG_DROP_COLLATION |
| drop-domain-statement |
"DROP DOMAIN" | SQL_DIAG_DROP_DOMAIN |
| drop-index-statement |
"DROP INDEX" | SQL_DIAG_DROP_INDEX |
| drop-schema-statement | "ŞEMAYı BıRAK" | SQL_DIAG_DROP_SCHEMA |
| drop-table-statement |
"DROP TABLE" | SQL_DIAG_DROP_TABLE |
| drop-translation-statement |
"DROP TRANSLATION" | SQL_DIAG_DROP_TRANSLATION |
| drop-view-statement |
"DROP VIEW" | SQL_DIAG_DROP_VIEW |
| grantstatement | "GRANT" | SQL_DIAG_GRANT |
| insert-statement | "INSERT" | SQL_DIAG_INSERT |
| ODBC-procedure-extension |
"ARA" | arama SQL_DIAG_ |
| revoke-statement | "İPTAL ET" | SQL_DIAG_REVOKE |
| Şema tanımı |
"ŞEMA OLUŞTUR" | SQL_DIAG_CREATE_SCHEMA |
| Çeviri tanımı |
"ÇEVIRI OLUŞTUR" | SQL_DIAG_CREATE_TRANSLATION |
| update-statement-positioned |
"DINAMIK GÜNCELLEŞTIRME İMLECI" | SQL_DIAG_DYNAMIC_UPDATE_CURSOR |
| update-statement-searched |
"UPDATE WHERE" | SQL_DIAG_UPDATE_WHERE |
| Bilinmeyen | Boş dize |
SQL_DIAG_UNKNOWN_STATEMENT |
Durum Kayıtlarının Sırası
Durum kayıtları, satır numarasına ve tanılama türüne göre bir sırayla konumlandırılır. Sürücü Yöneticisi, oluşturduğu durum kayıtlarının döndürüleceği son sırayı belirler. Sürücü, oluşturduğu durum kayıtlarının döndürüleceği son sırayı belirler.
Tanılama kayıtları hem Sürücü Yöneticisi hem de sürücü tarafından gönderiliyorsa, bunları sıralamaktan Sürücü Yöneticisi sorumludur.
İki veya daha fazla durum kaydı varsa, kayıtların sırası ilk olarak satır numarasına göre belirlenir. Aşağıdaki kurallar, tanılama kayıtlarının satıra göre sırasını belirlemek için geçerlidir:
Herhangi bir satıra karşılık olmayan kayıtlar, belirli bir satıra karşılık gelen kayıtların önünde görünür, çünkü SQL_NO_ROW_NUMBER -1 olarak tanımlanır.
Satır numarasının bilinmediği kayıtlar, SQL_ROW_NUMBER_UNKNOWN -2 olarak tanımlandığından diğer tüm kayıtların önünde görünür.
Belirli satırlara ait tüm kayıtlar için kayıtlar SQL_DIAG_ROW_NUMBER alanındaki değere göre sıralanır. Etkilenen ilk satırın tüm hataları ve uyarıları listelenir ve ardından etkilenen sonraki satırla ilgili tüm hatalar ve uyarılar vb. listelenir.
Not
SQLSTATE 01S01 (Satırda hata) bir ODBC 2*.x* sürücüsü tarafından döndürülürse veya SQLSTATE 01S01 (Satırda hata) döndürülürse ODBC 3*.x* Sürücü Yöneticisi tanılama kuyruğundaki durum kayıtlarını sıralamaz SQLExtendedFetch
Her satırın içinde veya bir satıra karşılık olmayan veya satır numarasının bilinmediği tüm kayıtlar için ya da SQL_NO_ROW_NUMBER eşit bir satır numarasına sahip tüm kayıtlar için, listelenen ilk kayıt bir dizi sıralama kuralı kullanılarak belirlenir. İlk kayıt sonrasında, bir satırı etkileyen diğer kayıtların sırası tanımlanmamıştır. Bir uygulama, hataların ilk kayıt sonrasındaki uyarılardan önce geldiğini varsayamaz. Uygulamalar, bir işleve başarısız çağrı hakkında tam bilgi edinmek için tüm tanılama veri yapısını taramalıdır.
Aşağıdaki kurallar, bir satırdaki ilk kaydı belirlemek için kullanılır. En yüksek dereceye sahip kayıt ilk kayıttır. Kayıtları sıralarken kaydın kaynağı (Driver Manager, sürücü, ağ geçidi vb.) dikkate alınmaz.
Hataları Hataları açıklayan Durum kayıtları en yüksek dereceye sahiptir. Hataları sıralamak için aşağıdaki kurallar uygulanır:
bir işlem hatası veya olası işlem hatasının diğer tüm kayıtlara göre daha büyük olduğunu belirten kayıtlar.
İki veya daha fazla kayıt aynı hata koşulunu açıklıyorsa, Open Group CLI belirtimi (sınıf 03 ile HZ arası) tarafından tanımlanan SQLSTAT'lar ODBC ve sürücü tanımlı SQLSTAT'ların üzerine çıkar.
Uygulama Tanımlı Veri Değeri Yok Sürücü tanımlı Veri Yok değerlerini açıklayan Durum kayıtları (sınıf 02) en yüksek ikinci dereceye sahiptir.
Uyarıları açıklayan Uyarılar Durum kayıtları (sınıf 01) en düşük dereceye sahiptir. İki veya daha fazla kayıt aynı uyarı koşulunu açıklıyorsa, Open Group CLI belirtimi tarafından tanımlanan uyarı SQLSTAT'ları ODBC tanımlı ve sürücü tanımlı SQLSTAT'ları aşıyor.
İlgili İşlevler
| Hakkında bilgi için | Görmek |
|---|---|
| Tanılama veri yapısının birden çok alanını alma | SQLGetDiagRec İşlevi |
Ayrıca Bkz.
ODBC API Başvurusu
ODBC Üst Bilgi Dosyaları