Package mssql
Overview ▹
Index ▹
Constants
const ( NEGOTIATE_MESSAGE = 1 CHALLENGE_MESSAGE = 2 AUTHENTICATE_MESSAGE = 3 )
const ( NEGOTIATE_UNICODE = 0x00000001 NEGOTIATE_OEM = 0x00000002 NEGOTIATE_TARGET = 0x00000004 NEGOTIATE_SIGN = 0x00000010 NEGOTIATE_SEAL = 0x00000020 NEGOTIATE_DATAGRAM = 0x00000040 NEGOTIATE_LMKEY = 0x00000080 NEGOTIATE_NTLM = 0x00000200 NEGOTIATE_ANONYMOUS = 0x00000800 NEGOTIATE_OEM_DOMAIN_SUPPLIED = 0x00001000 NEGOTIATE_OEM_WORKSTATION_SUPPLIED = 0x00002000 NEGOTIATE_ALWAYS_SIGN = 0x00008000 NEGOTIATE_TARGET_TYPE_DOMAIN = 0x00010000 NEGOTIATE_TARGET_TYPE_SERVER = 0x00020000 NEGOTIATE_EXTENDED_SESSIONSECURITY = 0x00080000 NEGOTIATE_IDENTIFY = 0x00100000 REQUEST_NON_NT_SESSION_KEY = 0x00400000 NEGOTIATE_TARGET_INFO = 0x00800000 NEGOTIATE_VERSION = 0x02000000 NEGOTIATE_128 = 0x20000000 NEGOTIATE_KEY_EXCH = 0x40000000 NEGOTIATE_56 = 0x80000000 )
const NEGOTIATE_FLAGS = NEGOTIATE_UNICODE | NEGOTIATE_NTLM | NEGOTIATE_OEM_DOMAIN_SUPPLIED | NEGOTIATE_OEM_WORKSTATION_SUPPLIED | NEGOTIATE_ALWAYS_SIGN | NEGOTIATE_EXTENDED_SESSIONSECURITY
const PLP_NULL = 0xFFFFFFFFFFFFFFFF
const PLP_TERMINATOR = 0x00000000
const UNKNOWN_PLP_LEN = 0xFFFFFFFFFFFFFFFE
Variables
var ( Sp_Cursor = ProcId{1, ""} Sp_CursorOpen = ProcId{2, ""} Sp_CursorPrepare = ProcId{3, ""} Sp_CursorExecute = ProcId{4, ""} Sp_CursorPrepExec = ProcId{5, ""} Sp_CursorUnprepare = ProcId{6, ""} Sp_CursorFetch = ProcId{7, ""} Sp_CursorOption = ProcId{8, ""} Sp_CursorClose = ProcId{9, ""} Sp_ExecuteSql = ProcId{10, ""} Sp_Prepare = ProcId{11, ""} Sp_PrepExec = ProcId{13, ""} Sp_PrepExecRpc = ProcId{14, ""} Sp_Unprepare = ProcId{15, ""} )
func CopyIn ¶
func CopyIn(table string, options MssqlBulkOptions, columns ...string) string
func NewTimeoutConn ¶
func NewTimeoutConn(conn net.Conn, timeout time.Duration) *timeoutConn
func SetLogger ¶
func SetLogger(logger Logger)
type Auth ¶
type Auth interface { InitialBytes() ([]byte, error) NextBytes([]byte) ([]byte, error) Free() }
type DataValue ¶
type DataValue interface{}
type Decimal ¶
http://msdn.microsoft.com/en-us/library/ee780893.aspx
type Decimal struct {
// contains filtered or unexported fields
}
func Float64ToDecimal ¶
func Float64ToDecimal(f float64) (Decimal, error)
func (Decimal) Bytes ¶
func (d Decimal) Bytes() []byte
func (Decimal) String ¶
func (d Decimal) String() string
func (Decimal) ToFloat64 ¶
func (d Decimal) ToFloat64() float64
type Error ¶
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 }
▹ Example (1)
▹ Example (2)
func (Error) Error ¶
func (e Error) Error() string
func (Error) SQLErrorClass ¶
func (e Error) SQLErrorClass() uint8
func (Error) SQLErrorLineNo ¶
func (e Error) SQLErrorLineNo() int32
func (Error) SQLErrorMessage ¶
func (e Error) SQLErrorMessage() string
func (Error) SQLErrorNumber ¶
func (e Error) SQLErrorNumber() int32
SQLErrorNumber returns the SQL Server error number.
func (Error) SQLErrorProcName ¶
func (e Error) SQLErrorProcName() string
func (Error) SQLErrorServerName ¶
func (e Error) SQLErrorServerName() string
func (Error) SQLErrorState ¶
func (e Error) SQLErrorState() uint8
type KeySlice ¶
type KeySlice []uint8
func (KeySlice) Len ¶
func (p KeySlice) Len() int
func (KeySlice) Less ¶
func (p KeySlice) Less(i, j int) bool
func (KeySlice) Swap ¶
func (p KeySlice) Swap(i, j int)
type Logger ¶
type Logger interface { Printf(format string, v ...interface{}) Println(v ...interface{}) }
type MssqlBulk ¶
type MssqlBulk struct {
Options MssqlBulkOptions
Debug bool
// contains filtered or unexported fields
}
func (*MssqlBulk) AddRow ¶
func (b *MssqlBulk) AddRow(row []interface{}) (err error)
AddRow immediately writes the row to the destination table. The arguments are the row values in the order they were specified.
func (*MssqlBulk) Done ¶
func (b *MssqlBulk) Done() (rowcount int64, err error)
type MssqlBulkOptions ¶
type MssqlBulkOptions struct { CheckConstraints bool FireTriggers bool KeepNulls bool KilobytesPerBatch int RowsPerBatch int Order []string Tablock bool }
type MssqlConn ¶
type MssqlConn struct {
// contains filtered or unexported fields
}
func (*MssqlConn) Begin ¶
func (c *MssqlConn) Begin() (driver.Tx, error)
func (*MssqlConn) BeginTx ¶
func (c *MssqlConn) BeginTx(ctx context.Context, opts driver.TxOptions) (driver.Tx, error)
BeginTx satisfies ConnBeginTx.
func (*MssqlConn) Close ¶
func (c *MssqlConn) Close() error
func (*MssqlConn) Commit ¶
func (c *MssqlConn) Commit() error
func (*MssqlConn) CreateBulk ¶
func (cn *MssqlConn) CreateBulk(table string, columns []string) (_ *MssqlBulk)
func (*MssqlConn) Ping ¶
func (c *MssqlConn) Ping(ctx context.Context) error
Ping is used to check if the remote server is available and satisfies the Pinger interface.
func (*MssqlConn) Prepare ¶
func (c *MssqlConn) Prepare(query string) (driver.Stmt, error)
func (*MssqlConn) PrepareContext ¶
func (c *MssqlConn) PrepareContext(ctx context.Context, query string) (driver.Stmt, error)
func (*MssqlConn) Rollback ¶
func (c *MssqlConn) Rollback() error
type MssqlDriver ¶
type MssqlDriver struct {
// contains filtered or unexported fields
}
func (*MssqlDriver) Open ¶
func (d *MssqlDriver) Open(dsn string) (driver.Conn, error)
func (*MssqlDriver) OpenConnection ¶
func (d *MssqlDriver) OpenConnection(dsn string) (*MssqlConn, error)
func (*MssqlDriver) SetLogger ¶
func (d *MssqlDriver) SetLogger(logger Logger)
type MssqlResult ¶
type MssqlResult struct {
// contains filtered or unexported fields
}
func (*MssqlResult) LastInsertId ¶
func (r *MssqlResult) LastInsertId() (int64, error)
func (*MssqlResult) RowsAffected ¶
func (r *MssqlResult) RowsAffected() (int64, error)
type MssqlRows ¶
type MssqlRows struct {
// contains filtered or unexported fields
}
func (*MssqlRows) Close ¶
func (rc *MssqlRows) Close() error
func (*MssqlRows) ColumnTypeDatabaseTypeName ¶
func (r *MssqlRows) ColumnTypeDatabaseTypeName(index int) string
RowsColumnTypeDatabaseTypeName may be implemented by Rows. It should return the database system type name without the length. Type names should be uppercase. Examples of returned types: "VARCHAR", "NVARCHAR", "VARCHAR2", "CHAR", "TEXT", "DECIMAL", "SMALLINT", "INT", "BIGINT", "BOOL", "[]BIGINT", "JSONB", "XML", "TIMESTAMP".
func (*MssqlRows) ColumnTypeLength ¶
func (r *MssqlRows) ColumnTypeLength(index int) (int64, bool)
RowsColumnTypeLength may be implemented by Rows. It should return the length of the column type if the column is a variable length type. If the column is not a variable length type ok should return false. If length is not limited other than system limits, it should return math.MaxInt64. The following are examples of returned values for various types:
TEXT (math.MaxInt64, true) varchar(10) (10, true) nvarchar(10) (10, true) decimal (0, false) int (0, false) bytea(30) (30, true)
func (*MssqlRows) ColumnTypeNullable ¶
func (r *MssqlRows) ColumnTypeNullable(index int) (nullable, ok bool)
The nullable value should be true if it is known the column may be null, or false if the column is known to be not nullable. If the column nullability is unknown, ok should be false.
func (*MssqlRows) ColumnTypePrecisionScale ¶
func (r *MssqlRows) ColumnTypePrecisionScale(index int) (int64, int64, bool)
It should return the precision and scale for decimal types. If not applicable, ok should be false. The following are examples of returned values for various types:
decimal(38, 4) (38, 4, true) int (0, 0, false) decimal (math.MaxInt64, math.MaxInt64, true)
func (*MssqlRows) ColumnTypeScanType ¶
func (r *MssqlRows) ColumnTypeScanType(index int) reflect.Type
It should return the value type that can be used to scan types into. For example, the database column type "bigint" this should return "reflect.TypeOf(int64(0))".
func (*MssqlRows) Columns ¶
func (rc *MssqlRows) Columns() (res []string)
func (*MssqlRows) HasNextResultSet ¶
func (rc *MssqlRows) HasNextResultSet() bool
func (*MssqlRows) Next ¶
func (rc *MssqlRows) Next(dest []driver.Value) error
func (*MssqlRows) NextResultSet ¶
func (rc *MssqlRows) NextResultSet() error
type MssqlStmt ¶
type MssqlStmt struct {
// contains filtered or unexported fields
}
func (*MssqlStmt) Close ¶
func (s *MssqlStmt) Close() error
func (*MssqlStmt) Exec ¶
func (s *MssqlStmt) Exec(args []driver.Value) (driver.Result, error)
func (*MssqlStmt) ExecContext ¶
func (s *MssqlStmt) ExecContext(ctx context.Context, args []driver.NamedValue) (driver.Result, error)
func (*MssqlStmt) NumInput ¶
func (s *MssqlStmt) NumInput() int
func (*MssqlStmt) Query ¶
func (s *MssqlStmt) Query(args []driver.Value) (driver.Rows, error)
func (*MssqlStmt) QueryContext ¶
func (s *MssqlStmt) QueryContext(ctx context.Context, args []driver.NamedValue) (driver.Rows, error)
func (*MssqlStmt) QueryMeta ¶
func (s *MssqlStmt) QueryMeta() (cols []columnStruct, err error)
QueryMeta is almost the same as MssqlStmt.Query, but returns all the columns info.
func (*MssqlStmt) SetQueryNotification ¶
func (s *MssqlStmt) SetQueryNotification(id, options string, timeout time.Duration)
type NTLMAuth ¶
type NTLMAuth struct { Domain string UserName string Password string Workstation string }
func (*NTLMAuth) Free ¶
func (auth *NTLMAuth) Free()
func (*NTLMAuth) InitialBytes ¶
func (auth *NTLMAuth) InitialBytes() ([]byte, error)
func (*NTLMAuth) NextBytes ¶
func (auth *NTLMAuth) NextBytes(bytes []byte) ([]byte, error)
type Param ¶
type Param struct {
Name string
Flags uint8
// contains filtered or unexported fields
}
type ProcId ¶
type ProcId struct {
// contains filtered or unexported fields
}
func MakeProcId ¶
func MakeProcId(name string) (res ProcId)
type SerializableBulkConfig ¶
type SerializableBulkConfig struct { TableName string ColumnsName []string Options MssqlBulkOptions }
type StreamError ¶
type StreamError struct { Message string }
func (StreamError) Error ¶
func (e StreamError) Error() string
type UniqueIdentifier ¶
type UniqueIdentifier [16]byte
func (*UniqueIdentifier) Scan ¶
func (u *UniqueIdentifier) Scan(v interface{}) error
func (UniqueIdentifier) String ¶
func (u UniqueIdentifier) String() string
func (UniqueIdentifier) Value ¶
func (u UniqueIdentifier) Value() (driver.Value, error)