analysis mysql conn string for get charset. set charset when use Sync method

This commit is contained in:
unknown 2013-12-25 16:08:51 +08:00
parent d5a4324585
commit 2f0a5c1809
2 changed files with 7 additions and 0 deletions

View File

@ -67,6 +67,7 @@ type Engine struct {
Logger io.Writer Logger io.Writer
Cacher Cacher Cacher Cacher
UseCache bool UseCache bool
charset string
} }
func (engine *Engine) SetMapper(mapper IMapper) { func (engine *Engine) SetMapper(mapper IMapper) {

View File

@ -6,6 +6,7 @@ import (
"os" "os"
"reflect" "reflect"
"runtime" "runtime"
"strings"
"sync" "sync"
) )
@ -28,6 +29,11 @@ func NewEngine(driverName string, dataSourceName string) (*Engine, error) {
engine.dialect = &sqlite3{} engine.dialect = &sqlite3{}
} else if driverName == MYSQL { } else if driverName == MYSQL {
engine.dialect = &mysql{} engine.dialect = &mysql{}
index := strings.Index(strings.ToLower(dataSourceName), "charset=")
tempstr := dataSourceName[index+8:]
index = strings.Index(strings.ToLower(tempstr), "&")
tempstr = tempstr[:index]
engine.charset = tempstr
} else if driverName == POSTGRES { } else if driverName == POSTGRES {
engine.dialect = &postgres{} engine.dialect = &postgres{}
engine.Filters = append(engine.Filters, &PgSeqFilter{}) engine.Filters = append(engine.Filters, &PgSeqFilter{})