Aracılığıyla paylaş


Tanılama kayıtlar ve alanlar

ODBC ortam, bağlantı, deyim veya tanımlayıcısı tanıtıcı ile ilgili tanı kayıtlardır.Bir dönüş kodu SQL_SUCCESS veya SQL_INVALID_HANDLE dışındaki herhangi bir ODBC işlevini yükseltmiştir, işlev tarafından adlandırılan tanıtıcı bilgi içeren kayıtları tanılama ya da hata iletilerinin ilişkili.Bu kayıtlar, başka bir işlev, hangi saat atılır, bu işleci kullanılarak kadar korunur.Herhangi bir anda bir tanıtıcı ile ilişkilendirilebilecek tanılama kayıtların sayısı için sınır yoktur.

Tanılama kayıtları iki tür vardır: Başlık ve durum. Üstbilgi kaydının kayıt 0; durum kayıt olduğunda, bunlar 1 ve sonraki kayıtlardır.Tanılama kayıtları farklı alanlar için üstbilgi kaydının ve durum kayıtları içerir.ODBC bileşenleri, kendi tanılama kayıt alanları da tanımlayabilirsiniz.

Başlık kaydındaki alanları gibi dönüş kodu, satır sayısı, durum kayıt sayısını ve türünü yürütülmüş deyimin işlev yürütme ile ilgili genel bilgiler içerir.Üstbilgi kaydı, bir ODBC işlevini SQL_INVALID_HANDLE döndürür sürece her zaman oluşturulur.Başlık kaydındaki alanları tam listesi için bkz: SQLGetDiagField.

Durum kayıtları alanlarında belirli bir hata veya uyarı SQLSTATE, yerel hata numarası, tanılama iletisinin, sütun numarasını ve satır numarası da dahil olmak üzere ODBC Sürücü Yöneticisi, sürücü veya veri kaynağı tarafından döndürülen hakkında bilgi içerir.Yalnızca SQL_ERROR, SQL_SUCCESS_WITH_INFO SQL_NO_DATA SQL_NEED_DATA veya SQL_STILL_EXECUTING işlev # sayı durum kayıt oluşturulur.Durum kayıt alanları tam listesi için bkz: SQLGetDiagField.

SQLGetDiagRec , ODBC SQLSTATE, özgün hata numarasını ve Tanılama ileti alanları ile birlikte tek bir tanılama kayıt alır.This functionality is similar to the ODBC 2.xSQLError function.ODBC 3'te basit hata işleme işlev. x art arda Aranacak olur.SQLGetDiagRec ile başlatmaRecNumber parametre küme 1 ve artırmaRecNumber 1 olarakSQLGetDiagRec SQL_NO_DATA döndürür.Bu, bir ODBC 2'ye eşdeğerdir. x Arama uygulamaSQLError kadar bu SQL_NO_DATA_FOUND döndürür.

odbc (3). x ODBC 2'den çok daha fazla tanı bilgilerini destekler.x.Bu bilgileri kullanarak alınan tanılama kayıtları ek alanlara saklanır SQLGetDiagField.

The SQL Server Native istemci ODBC driver has driver-specific diagnostic fields that can be retrieved with SQLGetDiagField.Bu sürücüye özel alanlar için etiketleri sqlncli.h içinde tanımlanır.Bu etiketleri almanızı SQL Server durumu, önem düzey, sunucu adı, yordam adını ve Tanılama her kayıtla ilişkili bir satır numarası. Ayrıca, sqlncli.h tanımları sürücü uygulama çağırırsa, Transact-SQL deyimleri tanımlamak için kullandığı kodu içerir. SQLGetDiagField with DiagIdentifier SQL_DIAG_DYNAMIC_FUNCTION_CODE için ayarlayın.

SQLGetDiagField ODBC sürücüsü, temel sürücüsünden önbelleğe hata bilgileri kullanarak Yöneticisi tarafından işlenir.Başarılı bir bağlantı sağlandıktan sonra ODBC Sürücü Yöneticisi sürücüye özgü tanı alanları kadar önbelleğe almaz.SQLGetDiagField başarılı bir bağlantı tamamlandı önce sürücüye özgü tanı alanları almak için adlı SQL_ERROR verir.Bir ODBC bağlantı işlev SQL_SUCCESS_WITH_INFO dönerse, sürücüye özgü tanı alanları bağlantı işlev için henüz kullanılabilir değil.Arama Başlat SQLGetDiagField yalnızca başka bir ODBC yaptıktan sonra sürücüye özgü tanı alanları sonra bağlantı işlevi çağrısını işlev.

Çoğu hataları tarafından bildirilen SQL Server Tanı yerel istemci ODBC sürücüsü etkin yalnızca tarafından döndürülen bilgileri kullanarak koydu SQLGetDiagRec.Bazı durumlarda, ancak, sürücüye özgü tanı alanları tarafından döndürülen bilgiler hata tanılama de önemlidir.Bir ODBC hata işleyicisi kullanan uygulamalar için kodlama, SQL Server Yerel istemci ODBC sürücüsü, bu da kullanmak iyi bir fikirdir SQLGetDiagField en az SQL_DIAG_SS_MSGSTATE ve SQL_DIAG_SS_SEVERITY sürücüye özel alanları almak için.Belirli bir hata çeşitli konumlarda yükseltilebilir, SQL Server kod, özellikle burada hata, bazen sorun tanılama yardımcı yükseltilmiş bir Microsoft Destek mühendisine SQL_DIAG_SS_MSGSTATE gösterir.

See Also

Concepts