-
Notifications
You must be signed in to change notification settings - Fork 0
/
default_driver_sql_builder_insert.go
67 lines (64 loc) · 1.9 KB
/
default_driver_sql_builder_insert.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package defaultDriver
import (
. "github.com/go-xe2/x/xf/ef/xdriveri"
)
func (dr *TDbDefaultDriver) joinFields(fields []string, sep string) string {
result := ""
for _, s := range fields {
result += dr.QuotesName(s) + ","
}
return result[0 : len(result)-2]
}
func (dr *TDbDefaultDriver) InsertExecute(ssl *TExprInsertSqlSSL) error {
//if ssl == nil {
// return exception.NewText("中间脚本无效,插入数据失败.")
//}
//if ssl.Execute == nil {
// return exception.NewText("未绑定执行方法,插入数据失败")
//}
//if len(ssl.Values) == 0 {
// return exception.NewText("没有要插入的数据.")
//}
//if ssl.ValueMode == SqlInsertStaticValueType && ssl.Values == nil {
// return exception.NewText("没有要插入的数据")
//}
//if ssl.ValueMode == SqlInsertFromScriptType && ssl.QuerySql == "" {
// return exception.NewText("没有设置数据查询语句")
//}
//fields := dr.joinFields(ssl.Fields, ",")
//switch ssl.ValueMode {
//case SqlInsertStaticValueType:
// rowCount := len(ssl.Values)
// values := xdbUtil.MakeStrAndFill(len(ssl.Fields), dr.PlaceHolder(), ",")
// sql := fmt.Sprintf("INSERT INTO %s (%s) VALUES ", dr.QuotesName(ssl.TableName), fields)
// if rowCount == 1 {
// // 只有一行数据时
// sql += values
// ssl.Execute(sql, ssl.Values[0])
// } else {
// isPrepare := true
// sql += values
// if ssl.ExecutePrepare != nil {
// isPrepare = ssl.ExecutePrepare(sql)
// }
// if isPrepare {
// // 执行插入
// for _, vars := range ssl.Values {
// ssl.Execute(sql, vars)
// }
// }
// }
// break
//case SqlInsertFromScriptType:
// // 使用sql查询结果插入
// sql := fmt.Sprintf("INSERT INTO %s (%s) \n%s", dr.QuotesName(ssl.TableName), fields, ssl.QuerySql)
// vars := make([]interface{}, 0)
// if len(ssl.Values) > 0 {
// vars = ssl.Values[0]
// }
// ssl.Execute(sql, vars)
// break
//}
//return nil
return nil
}