|
|
|
|
|
|
|
|
|
package db |
|
|
|
import ( |
|
"database/sql" |
|
) |
|
|
|
|
|
func SetColVarType(colVar *[]interface{}, i int, typeName string) { |
|
dt := DT(typeName) |
|
switch { |
|
case Contains(dt, BoolTypeList): |
|
var s sql.NullBool |
|
(*colVar)[i] = &s |
|
case Contains(dt, IntTypeList): |
|
var s sql.NullInt64 |
|
(*colVar)[i] = &s |
|
case Contains(dt, FloatTypeList): |
|
var s sql.NullFloat64 |
|
(*colVar)[i] = &s |
|
case Contains(dt, UintTypeList): |
|
var s []uint8 |
|
(*colVar)[i] = &s |
|
case Contains(dt, StringTypeList): |
|
var s sql.NullString |
|
(*colVar)[i] = &s |
|
default: |
|
var s interface{} |
|
(*colVar)[i] = &s |
|
} |
|
} |
|
|
|
|
|
func SetResultValue(result *map[string]interface{}, index string, colVar interface{}, typeName string) { |
|
dt := DT(typeName) |
|
switch { |
|
case Contains(dt, BoolTypeList): |
|
temp := *(colVar.(*sql.NullBool)) |
|
if temp.Valid { |
|
(*result)[index] = temp.Bool |
|
} else { |
|
(*result)[index] = nil |
|
} |
|
case Contains(dt, IntTypeList): |
|
temp := *(colVar.(*sql.NullInt64)) |
|
if temp.Valid { |
|
(*result)[index] = temp.Int64 |
|
} else { |
|
(*result)[index] = nil |
|
} |
|
case Contains(dt, FloatTypeList): |
|
temp := *(colVar.(*sql.NullFloat64)) |
|
if temp.Valid { |
|
(*result)[index] = temp.Float64 |
|
} else { |
|
(*result)[index] = nil |
|
} |
|
case Contains(dt, UintTypeList): |
|
(*result)[index] = *(colVar.(*[]uint8)) |
|
case Contains(dt, StringTypeList): |
|
temp := *(colVar.(*sql.NullString)) |
|
if temp.Valid { |
|
(*result)[index] = temp.String |
|
} else { |
|
(*result)[index] = nil |
|
} |
|
default: |
|
if colVar2, ok := colVar.(*interface{}); ok { |
|
if colVar, ok = (*colVar2).(int64); ok { |
|
(*result)[index] = colVar |
|
} else if colVar, ok = (*colVar2).(string); ok { |
|
(*result)[index] = colVar |
|
} else if colVar, ok = (*colVar2).(float64); ok { |
|
(*result)[index] = colVar |
|
} else if colVar, ok = (*colVar2).([]uint8); ok { |
|
(*result)[index] = colVar |
|
} else { |
|
(*result)[index] = colVar |
|
} |
|
} |
|
} |
|
} |
|
|