2 Commits

Author SHA1 Message Date
  loshiqi 14f6e5fc28 增加执行原始方法 1 month ago
  zhenghaorong c13da09c57 增加过滤 9 months ago
3 changed files with 32 additions and 5 deletions
Split View
  1. +3
    -1
      chain.go
  2. +6
    -3
      db.go
  3. +23
    -1
      transaction_chain.go

+ 3
- 1
chain.go View File

@ -352,6 +352,7 @@ func (this *Query) BuildSelectSql() (map[string]interface{}, error) {
if len(this.join) > 0 {
var builder strings.Builder
builder.WriteString(sql)
boo := false
for _, joinitem := range this.join {
if len(joinitem) < 2 {
continue
@ -370,8 +371,9 @@ func (this *Query) BuildSelectSql() (map[string]interface{}, error) {
}
builder.WriteString(" on ")
builder.WriteString(joinitem[1])
boo = true
}
if builder.Len() > 0 {
if boo {
sql = builder.String()
}
}


+ 6
- 3
db.go View File

@ -354,6 +354,7 @@ func GetRow(dbName, table_name, alias string, titles string, with, join [][]stri
if len(join) > 0 {
var builder strings.Builder
builder.WriteString(sql_str)
boo := false
for _, joinitem := range join {
if len(joinitem) < 2 {
continue
@ -372,8 +373,9 @@ func GetRow(dbName, table_name, alias string, titles string, with, join [][]stri
}
builder.WriteString(" on ")
builder.WriteString(joinitem[1])
boo = true
}
if builder.Len() > 0 {
if boo {
sql_str = builder.String()
}
}
@ -544,11 +546,11 @@ func FetchRows(dbName, table_name, alias string, titles string, with, join [][]s
if len(join) > 0 {
var builder strings.Builder
builder.WriteString(sql_str)
boo := false
for _, joinitem := range join {
if len(joinitem) < 2 {
continue
}
builder.WriteString(" ")
if len(joinitem) >= 3 {
builder.WriteString(joinitem[2])
@ -563,8 +565,9 @@ func FetchRows(dbName, table_name, alias string, titles string, with, join [][]s
}
builder.WriteString(" on ")
builder.WriteString(joinitem[1])
boo = true
}
if builder.Len() > 0 {
if boo {
sql_str = builder.String()
}
}


+ 23
- 1
transaction_chain.go View File

@ -270,6 +270,7 @@ func (this *TxQuery) BuildSelectSql() (map[string]interface{}, error) {
if len(this.join) > 0 {
var builder strings.Builder
builder.WriteString(sql)
boo := false
for _, joinitem := range this.join {
if len(joinitem) < 2 {
continue
@ -288,8 +289,9 @@ func (this *TxQuery) BuildSelectSql() (map[string]interface{}, error) {
}
builder.WriteString(" on ")
builder.WriteString(joinitem[1])
boo = true
}
if builder.Len() > 0 {
if boo {
sql = builder.String()
}
}
@ -875,6 +877,26 @@ func (this *TxQuery) CreateAll() (int64, error) {
return StmtForInsertExec(this.stmt, this.value)
}
/**
* 执行原生sql
* return error
*/
func (this *TxQuery) ExecSql(sql string) (int64, error) {
if this.debug {
log.Println("ExecSql sql:", sql)
}
stmt, err = this.tx.Prepare(sql)
if err != nil {
return 0, err
}
res, err := stmt.Exec()
if err != nil {
return 0, errors.New("执行失败:" + err.Error())
}
return res.RowsAffected()
}
/**
* 提交
*/


Loading…
Cancel
Save