mssql bug fixed

This commit is contained in:
lunny 2013-12-20 18:18:20 +08:00
parent e6f18fdbfd
commit 6850712507
1 changed files with 19 additions and 5 deletions

View File

@ -16,16 +16,30 @@ type mssql struct {
quoteFilter Filter
}
type mssqlParser struct {
type odbcParser struct {
}
func (p *mssqlParser) parse(driverName, dataSourceName string) (*uri, error) {
return &uri{dbName: "xorm_test", dbType: MSSQL}, nil
func (p *odbcParser) parse(driverName, dataSourceName string) (*uri, error) {
kv := strings.Split(dataSourceName, ";")
var dbName string
for _, c := range kv {
vv := strings.Split(strings.TrimSpace(c), "=")
if len(vv) == 2 {
switch strings.ToLower(vv[0]) {
case "database":
dbName = vv[1]
}
}
}
if dbName == "" {
return nil, errors.New("no db name provided")
}
return &uri{dbName: dbName, dbType: MSSQL}, nil
}
func (db *mssql) Init(drivername, uri string) error {
db.quoteFilter = &QuoteFilter{}
return db.base.init(&mssqlParser{}, drivername, uri)
return db.base.init(&odbcParser{}, drivername, uri)
}
func (db *mssql) SqlType(c *Column) string {
@ -153,7 +167,7 @@ where a.object_id=object_id('` + tableName + `')`
if _, ok := sqlTypes[ct]; ok {
col.SQLType = SQLType{ct, 0, 0}
} else {
return nil, nil, errors.New(fmt.Sprintf("unknow colType %v", ct))
return nil, nil, errors.New(fmt.Sprintf("unknow colType %v for %v", ct, col))
}
}