gorm/sql.go

41 lines
681 B
Go
Raw Normal View History

2013-10-26 05:49:40 +04:00
package gorm
import (
"strings"
"fmt"
)
func (s *Orm) explain(value interface{}, operation string) {
s.setModel(value)
switch operation {
case "Save":
s.saveSql(value)
case "Delete":
s.deleteSql(value)
}
return
}
func (s *Orm) saveSql(value interface{}) {
columns, values := modelValues(value)
s.Sql = fmt.Sprintf(
2013-10-26 06:06:57 +04:00
"INSERT INTO \"%v\" (%v) VALUES (%v)",
2013-10-26 05:49:40 +04:00
s.TableName,
2013-10-26 06:06:57 +04:00
strings.Join(quoteMap(columns), ","),
2013-10-26 05:49:40 +04:00
valuesToBinVar(values),
)
s.SqlVars = values
return
}
func (s *Orm) deleteSql(value interface{}) {
s.Sql = fmt.Sprintf("DELETE FROM %v WHERE %v", s.TableName, s.whereSql)
return
}
func (s *Orm) whereSql() (sql string) {
sql = "1=1"
return
}