123456789101112131415161718192021222324252627282930313233343536373839 |
- package mssql
- import (
- "encoding/binary"
- "io"
- )
- // http://msdn.microsoft.com/en-us/library/dd340437.aspx
- type collation struct {
- lcidAndFlags uint32
- sortId uint8
- }
- func (c collation) getLcid() uint32 {
- return c.lcidAndFlags & 0x000fffff
- }
- func (c collation) getFlags() uint32 {
- return (c.lcidAndFlags & 0x0ff00000) >> 20
- }
- func (c collation) getVersion() uint32 {
- return (c.lcidAndFlags & 0xf0000000) >> 28
- }
- func readCollation(r *tdsBuffer) (res collation) {
- res.lcidAndFlags = r.uint32()
- res.sortId = r.byte()
- return
- }
- func writeCollation(w io.Writer, col collation) (err error) {
- if err = binary.Write(w, binary.LittleEndian, col.lcidAndFlags); err != nil {
- return
- }
- err = binary.Write(w, binary.LittleEndian, col.sortId)
- return
- }
|