Aracılığıyla paylaş


SQL Server Hata Ayrıntısı

Şunlar için geçerlidir:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalitik Platform Sistemi (PDW)Microsoft Fabric'te SQL veritabanı

OLE DB sürücüsünü indirme

SQL Server için OLE DB Sürücüsü, sağlayıcıya özgü hata arayüzünü ISQLServerErrorInfo tanımlar. Arayüz, SQL Server hatası hakkında daha fazla detay verir ve komut çalıştırma veya sıra seti işlemleri başarısız olduğunda değerlidir.

ISQLServerErrorInfo arayüzüne erişmenin iki yolu vardır.

Tüketici, aşağıdaki kod örneğinde gösterildiği gibi ISQLServerErrorInfo işaretçisi elde etmek için IErrorRecords::GetCustomerErrorObject adresini çağırabilir. ( ISQLErrorInfo edinmenize gerek yoktur.) Hem ISQLErrorInfo hem de ISQLServerErrorInfo özel OLE veritabanı hata nesneleridir; ISQLServerErrorInfo sunucu hataları bilgisini elde etmek için kullanılan arayüzdür; prosedür adı ve satır numaraları gibi detaylar dahil.

// Get the SQL Server custom error object.  
if(FAILED(hr=pIErrorRecords->GetCustomErrorObject(  
   nRec, IID_ISQLServerErrorInfo,  
   (IUnknown**)&pISQLServerErrorErrorInfo)))  

ISQLServerErrorInfo işaretçisi elde etmenin bir diğer yolu, zaten elde edilen bir ISQLErrorInfo işaretçisinde QueryInterface metodunu çağırmaktır. ISQLServerErrorInfo, ISQLErrorInfo'dan elde edilen bilgilerin bir üst kümesini içerdiğinden, doğrudan GetCustomerErrorObject üzerinden ISQLServerErrorInfo'ya gitmenin mantıklı olduğunu unutmayın.

ISQLServerErrorInfo arayüzü, ISQLServerErrorInfo::GetErrorInfo adlı tek bir üye fonksiyonunu ortaya çıkarır. Fonksiyon, bir işaretçiyi bir SSERRORINFO yapısına ve bir işaretçiyi bir dizi tamponuna döndürür. Her iki işaretçi de tüketicinin IMalloc::Free yöntemiyle dağıtması gereken belleğe referans verir.

SSERRORINFO yapı üyeleri tüketici tarafından aşağıdaki şekilde yorumlanır.

Üye Description
pwszMesaj SQL Server hata mesajı. IErrorInfo::GetDescription içindeki dize ile aynı.
pwszServer Oturum için SQL Server örneğinin adı.
pwszProsedür Uygunsa, hatanın ortaya çıktığı prosedürün adı. Aksi takdirde boş bir ip.
Yerli SQL Server yerel hata numarası. ISQLErrorInfo::GetSQLInfo'nunplNativeError parametresinde döndürülen değerle aynıdır.
bState SQL Server hata mesajının durumu.
bSınıf SQL Server hata mesajının ciddiyeti.
wLineNumber Uygulanabilirse, hatanın gerçekleştiği depolanmış prosedürün satır numarası.

Ayrıca Bkz.

Hatalar
RAISERROR (Transact-SQL)