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