| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- //------------------------------------------------------------------------------
- // <copyright file="SqlError.cs" company="Microsoft">
- // Copyright (c) Microsoft Corporation. All rights reserved.
- // </copyright>
- // <owner current="true" primary="true">[....]</owner>
- // <owner current="true" primary="false">[....]</owner>
- //------------------------------------------------------------------------------
- namespace System.Data.SqlClient {
- using System;
- using System.Diagnostics;
- using System.Globalization;
- [Serializable]
- public sealed class SqlError {
- // bug fix - MDAC 48965 - missing source of exception
- // fixed by [....]
- private string source = TdsEnums.SQL_PROVIDER_NAME;
- private int number;
- private byte state;
- private byte errorClass;
- [System.Runtime.Serialization.OptionalFieldAttribute(VersionAdded=2)]
- private string server;
- private string message;
- private string procedure;
- private int lineNumber;
- [System.Runtime.Serialization.OptionalFieldAttribute(VersionAdded=4)]
- private int win32ErrorCode;
- internal SqlError(int infoNumber, byte errorState, byte errorClass, string server, string errorMessage, string procedure, int lineNumber, uint win32ErrorCode)
- : this(infoNumber, errorState, errorClass, server, errorMessage, procedure, lineNumber)
- {
- this.win32ErrorCode = (int)win32ErrorCode;
- }
- internal SqlError(int infoNumber, byte errorState, byte errorClass, string server, string errorMessage, string procedure, int lineNumber) {
- this.number = infoNumber;
- this.state = errorState;
- this.errorClass = errorClass;
- this.server = server;
- this.message = errorMessage;
- this.procedure = procedure;
- this.lineNumber = lineNumber;
- if (errorClass != 0) {
- Bid.Trace("<sc.SqlError.SqlError|ERR> infoNumber=%d, errorState=%d, errorClass=%d, errorMessage='%ls', procedure='%ls', lineNumber=%d\n" ,
- infoNumber, (int)errorState, (int)errorClass, errorMessage,
- procedure == null ? "None" : procedure, (int)lineNumber);
- }
- this.win32ErrorCode = 0;
- }
- // bug fix - MDAC #49280 - SqlError does not implement ToString();
- // I did not include an exception stack because the correct exception stack is only available
- // on SqlException, and to obtain that the SqlError would have to have backpointers all the
- // way back to SqlException. If the user needs a call stack, they can obtain it on SqlException.
- public override string ToString() {
- //return this.GetType().ToString() + ": " + this.message;
- return typeof(SqlError).ToString() + ": " + this.message; // since this is sealed so we can change GetType to typeof
- }
- // bug fix - MDAC #48965 - missing source of exception
- // fixed by [....]
- public string Source {
- get { return this.source;}
- }
- public int Number {
- get { return this.number;}
- }
- public byte State {
- get { return this.state;}
- }
- public byte Class {
- get { return this.errorClass;}
- }
- public string Server {
- get { return this.server;}
- }
- public string Message {
- get { return this.message;}
- }
- public string Procedure {
- get { return this.procedure;}
- }
- public int LineNumber {
- get { return this.lineNumber;}
- }
- internal int Win32ErrorCode {
- get { return this.win32ErrorCode; }
- }
- }
- }
|