Aracılığıyla paylaş


Tanılama kayıtlar ve alanlar

Tanılama kayıtlar, odbc ortamı, bağlantı, deyimi veya tanımlayıcısı kolları ile ilişkilidir. Ne zaman bir dönüş kodu sql_success veya SQL_INVALID_HANDLE dışında herhangi bir odbc işlevini yükseltir, işlevi tarafından adlandırılan tanıtıcı bilgi içeren tanılama kayıtları veya hata iletileri ilişkilendirildi. Bu kayıtlar, hangi zaman onlar atılır, bu işleci kullanılarak başka bir işlevi kadar korunur. Herhangi bir zamanda bir kolu ile ilişkilendirilebilecek tanılama kayıt sayısı için bir sınır yoktur.

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

Başlık kaydındaki alanları dahil dönüş kodu, satır sayısı, durumu kayıt sayısını ve türünü yürütülen deyimi, bir işlevin yürütme hakkında genel bilgiler içerir. Üstbilgi kaydı, SQL_INVALID_HANDLE odbc işlevini verir sürece her zaman oluşturulur. Başlık kaydındaki alanları tam bir listesi için bkz: SQLGetDiagField.

Alanları durum kayıtlarında belirli hataları veya uyarıları sqlstate, yerel hata numarası, tanılama iletisini, sütun sayısı ve satır sayısı 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. Sadece sql_error, SQL_SUCCESS_WITH_INFO, sql_no_data, sırasında veri sql_need_data veya SQL_STILL_EXECUTING işlevi durum kaydı oluşturulur. Alanları durum kayıtlarında tam bir listesi için bkz: SQLGetDiagField.

SQLGetDiagRec , odbc sqlstate, yerel hata numarası ve tanılama iletisi alanları ile birlikte tek tanılama kaydı alır. Bu işlevsellik, odbc 2'ye benzer. xSQLError işlevi. odbc 3 basit hata işleme fonksiyonu. x tekrar tekrar aramak için SQLGetDiagRec ile başlayan RecNumber parametre 1 ve artan RecNumber 1 kadar SQLGetDiagRec sql_no_data döndürür. Bu, bir odbc 2'ye eşdeğerdir. x uygulama arama SQLError sql_no_data_found dönene kadar.

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

SQL ServerYerel istemci odbc sürücüsü, sürücüye özgü tanı alanlar ile alınabilir vardır SQLGetDiagField. Bu sürücüye özel alanlar için etiketleri sqlncli.h içinde tanımlanır. Bu etiketleri kullanımı SQL Serverdevlet, önem düzeyi, sunucu adı, yordam adı ve satır numarası teşhis her kayıtla ilişkili. Ayrıca sqlncli.h sürücüsünü kullanan bir uygulama Transact-sql deyimlerinin tanımlamak için kodları tanımları içeren SQLGetDiagField ile DiagIdentifier SQL_DIAG_DYNAMIC_FUNCTION_CODE için ayarlayın.

SQLGetDiagField odbc sürücüsü hata bilgileri Bu önbelleğe temel sürücüyü kullanarak Yöneticisi tarafından işlenir. Başarılı bir bağlantı kurulduktan 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ı tamamlanmadan sürücüye özgü tanı alanları almak için çağrıldığında sql_error döndürür. Bir odbc bağlantı işlevi SQL_SUCCESS_WITH_INFO döndürür, sürücüye özgü tanı alanlar için bağlantı işlevi kullanılamaz. Sen-ebilmek başlamak arama SQLGetDiagField sadece başka bir odbc yaptıktan sonra sürücüye özgü tanı alanlar için işlev çağrısı sonra Bağlan işlevini.

Tarafından bildirilen hatalarının en SQL Serversadece tarafından döndürülen bilgileri kullanarak yerel istemci odbc sürücüsü etkili tanısı SQLGetDiagRec. Bazı durumlarda, ancak, sürücüye özgü tanı alanlar tarafından döndürülen bilgileri hata tanılamada önemlidir. Bir odbc hata işleyicisi kullanarak uygulamalar için kodlama yaparken SQL Serveryerel istemci odbc sürücüsü, bunu da kullanmak iyi bir fikirdir SQLGetDiagField en az SQL_DIAG_SS_MSGSTATE ve SQL_DIAG_SS_SEVERITY sürücüye özgü alanları almak için. Belirli bir hata içinde çeşitli yerlerde yükseltilebilir SQL ServerSQL_DIAG_SS_MSGSTATE kodunu gösterir için özellikle burada hata, hangi bazen sorun tanılamada AIDS büyüdü bir Microsoft destek mühendisine.

Ayrıca bkz.

Kavramlar

Hataları ve iletileri işleme