| 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
 
- }
 
 
  |