From f1cd5a5e3adc85f80ba79b4b75348651865de8c7 Mon Sep 17 00:00:00 2001
From: liuxiaolong <736321739@qq.com>
Date: 星期四, 15 八月 2019 17:21:34 +0800
Subject: [PATCH] rm a.Stop when Join failed

---
 dbself.go |   28 +++++++++++++++++++++++-----
 1 files changed, 23 insertions(+), 5 deletions(-)

diff --git a/dbself.go b/dbself.go
index d793d14..269660a 100644
--- a/dbself.go
+++ b/dbself.go
@@ -103,6 +103,8 @@
 
 func ExecuteSqlByGorm(sqls []string) (bool,error) {
 	if localDb != nil {
+		localDb.LogMode(false)
+		defer localDb.LogMode(true)
 		var err error
 		tx := localDb.Begin()
 		defer func() {
@@ -112,7 +114,8 @@
 		}()
 		for _,sql :=range sqls {
 			result := tx.Exec(sql)
-			if result.Error !=nil {
+			err = result.Error
+			if err !=nil {
 				return false,result.Error
 			}
 			if result.RowsAffected == 0{
@@ -135,10 +138,18 @@
 	Pk int `json:"pk"`
 }
 
+type DumpSql struct {
+	Sql string `json:"sql"`
+}
+
 func ExecuteQueryByGorm(tableNames []string) ([]string, error) {
+	localDb.LogMode(false)
+	defer localDb.LogMode(true)
 	if tableNames !=nil {
 		var arr []string
+		var dumpSql []DumpSql
 		for _,table :=range tableNames {
+			dumpSql = make([]DumpSql, 0)
 			var tDescArr []TableDesc
 			tSql := fmt.Sprintf(`PRAGMA table_info("%s")`, table)
 			err := localDb.Raw(tSql).Scan(&tDescArr).Error
@@ -153,16 +164,23 @@
 			for _,col :=range tDescArr {
 				columnNames = append(columnNames, fmt.Sprintf(`'||quote("%s")||'`, col.Name))
 			}
-			tSql = fmt.Sprintf(`SELECT 'INSERT INTO "%s" VALUES(%s)' FROM "%s";`,
+			tSql = fmt.Sprintf(`SELECT 'INSERT INTO "%s" VALUES(%s)' as sql FROM "%s";`,
 				table,
 				strings.Join(columnNames, ","),
 				table)
-			var dumpSqls []string
-			err = localDb.Raw(tSql).Scan(&dumpSqls).Error
+			fmt.Println("tSql:",tSql)
+
+			err = localDb.Raw(tSql).Scan(&dumpSql).Error
 			if err !=nil {
 				return nil,errors.New("dump err")
+				continue
 			}
-			arr = append(arr, dumpSqls...)
+			if len(dumpSql)>0 {
+				for _,d :=range dumpSql {
+					arr = append(arr, d.Sql)
+				}
+			}
+
 		}
 		return arr,nil
 	}

--
Gitblit v1.8.0