You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
1.3 KiB
73 lines
1.3 KiB
package mssql
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
// Error represents an SQL Server error. This
|
|
// type includes methods for reading the contents
|
|
// of the struct, which allows calling programs
|
|
// to check for specific error conditions without
|
|
// having to import this package directly.
|
|
type Error struct {
|
|
Number int32
|
|
State uint8
|
|
Class uint8
|
|
Message string
|
|
ServerName string
|
|
ProcName string
|
|
LineNo int32
|
|
}
|
|
|
|
func (e Error) Error() string {
|
|
return "mssql: " + e.Message
|
|
}
|
|
|
|
// SQLErrorNumber returns the SQL Server error number.
|
|
func (e Error) SQLErrorNumber() int32 {
|
|
return e.Number
|
|
}
|
|
|
|
func (e Error) SQLErrorState() uint8 {
|
|
return e.State
|
|
}
|
|
|
|
func (e Error) SQLErrorClass() uint8 {
|
|
return e.Class
|
|
}
|
|
|
|
func (e Error) SQLErrorMessage() string {
|
|
return e.Message
|
|
}
|
|
|
|
func (e Error) SQLErrorServerName() string {
|
|
return e.ServerName
|
|
}
|
|
|
|
func (e Error) SQLErrorProcName() string {
|
|
return e.ProcName
|
|
}
|
|
|
|
func (e Error) SQLErrorLineNo() int32 {
|
|
return e.LineNo
|
|
}
|
|
|
|
type StreamError struct {
|
|
Message string
|
|
}
|
|
|
|
func (e StreamError) Error() string {
|
|
return e.Message
|
|
}
|
|
|
|
func streamErrorf(format string, v ...interface{}) StreamError {
|
|
return StreamError{"Invalid TDS stream: " + fmt.Sprintf(format, v...)}
|
|
}
|
|
|
|
func badStreamPanic(err error) {
|
|
panic(err)
|
|
}
|
|
|
|
func badStreamPanicf(format string, v ...interface{}) {
|
|
panic(streamErrorf(format, v...))
|
|
}
|
|
|