| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -2,6 +2,7 @@ package dbquery | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import ( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						"database/sql" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						"github.com/jmoiron/sqlx" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						"log" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						"strconv" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -44,16 +45,33 @@ func Insert(dbName, table string, data map[string]string) (int64, error) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							valueList[i] = value | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							i++ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						result, err := DB.Exec("insert into "+dbName+" ("+strings.Join(keyList, ",")+") value("+strings.Join(keyStr, ",")+")", valueList...) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if err != nil { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							log.Println("ERROR|插入", dbName, "数据失败,", err) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return insertId, err | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						var Sql string | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						Sql = "insert into " + dbName + " (" + strings.Join(keyList, ",") + ") values (" + strings.Join(keyStr, ",") + ")" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if DB_PROVIDER == "PgsqlDb" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							Sql = sqlx.Rebind(sqlx.DOLLAR, Sql) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							Sql = ReplaeByOtherSql(Sql, "PgsqlDb", "add") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							stmt, err = DB.Prepare(Sql) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if err != nil { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								return 0, errors.New("创建失败:" + err.Error()) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							row := stmt.QueryRow(valueList...) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							var id int64 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							err = row.Scan(&id) // 扫描 RETURNING 返回的 ID
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if err != nil { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								return 0, errors.New("创建失败:" + err.Error()) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return id, nil | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							insertId, _ = result.LastInsertId() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							time.Sleep(time.Second * 2) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return insertId, nil | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							result, err := DB.Exec(Sql, valueList...) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if err != nil { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								log.Println("ERROR|插入", dbName, "数据失败,", err) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								return insertId, err | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								insertId, _ = result.LastInsertId() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								time.Sleep(time.Second * 2) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								return insertId, nil | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -67,7 +85,6 @@ func Update(dbName, table string, data map[string]string, where map[string]strin | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if dbName == "" && table == "" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return rowsAffected, errors.New("没有数据表") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if strings.Contains(table, "select ") { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							dbName = table | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} else { | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -109,7 +126,15 @@ func Update(dbName, table string, data map[string]string, where map[string]strin | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							log.Println("ERROR|修改数据表", dbName, "时条件中有空数据,条件:", where, "数据:", data) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return rowsAffected, errors.New("条件中有空数据") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						result, err := DB.Exec("update "+dbName+" set "+strings.Join(keyList, " , ")+" where "+strings.Join(whereStr, " and "), valueList...) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						var Sql string | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						Sql = "update " + dbName + " set " + strings.Join(keyList, " , ") + " where " + strings.Join(whereStr, " and ") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if DB_PROVIDER == "PgsqlDb" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							Sql = sqlx.Rebind(sqlx.DOLLAR, Sql) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							Sql = ReplaeByOtherSql(Sql, "PgsqlDb", "") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} else if DB_PROVIDER == "DmSql" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							Sql = ReplaeByOtherSql(Sql, "DmSql", "") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						result, err := DB.Exec(Sql, valueList...) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if err != nil { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							log.Println("ERROR|修改", dbName, "数据失败,", err) | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -131,7 +156,6 @@ func Delete(dbName, table string, data map[string]string, del_count ...string) ( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if dbName == "" && table == "" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return count, errors.New("没有数据表") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if strings.Contains(table, "select ") { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							dbName = table | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} else { | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -167,7 +191,15 @@ func Delete(dbName, table string, data map[string]string, del_count ...string) ( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							limitStr = " limit " + del_count[0] | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						result, err := DB.Exec("delete from "+dbName+" where "+strings.Join(keyList, " and ")+limitStr, valueList...) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						var Sql string | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						Sql = "delete from " + dbName + " where " + strings.Join(keyList, " and ") + limitStr | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if DB_PROVIDER == "PgsqlDb" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							Sql = sqlx.Rebind(sqlx.DOLLAR, Sql) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							Sql = ReplaeByOtherSql(Sql, "PgsqlDb", "") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} else if DB_PROVIDER == "DmSql" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							Sql = ReplaeByOtherSql(Sql, "DmSql", "") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						result, err := DB.Exec(Sql, valueList...) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if err != nil { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							log.Println("ERROR|删除", dbName, "数据失败,", err) | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -191,7 +223,6 @@ func GetData(dbName, table string, title string, where map[string]string, limit | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if dbName == "" && table == "" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return count, info, errors.New("没有数据表") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						dbName = getTableName(dbName, table) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if len(title) < 1 { | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -210,7 +241,11 @@ func GetData(dbName, table string, title string, where map[string]string, limit | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if _, ok := limit["from"]; ok { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								from = limit["from"] | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							limitStr += " limit " + from + ",1" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if DB_PROVIDER == "PgsqlDb" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								limitStr += " limit 1 OFFSET " + from | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								limitStr += " limit " + from + ",1" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							limitStr = " limit 1" | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -241,8 +276,15 @@ func GetData(dbName, table string, title string, where map[string]string, limit | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						var err error | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						var queryNum int = 0 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						for queryNum < 3 { //如发生错误,继续查询3次,防止数据库连接断开问题
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							rows, err = DB.Query("SELECT "+title+" FROM "+dbName+" where "+strings.Join(keyList, " and ")+" "+limitStr, valueList...) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							var Sql string | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							Sql = "SELECT " + title + " FROM " + dbName + " where " + strings.Join(keyList, " and ") + " " + limitStr | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if DB_PROVIDER == "PgsqlDb" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								Sql = sqlx.Rebind(sqlx.DOLLAR, Sql) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								Sql = ReplaeByOtherSql(Sql, "PgsqlDb", "") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} else if DB_PROVIDER == "DmSql" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								Sql = ReplaeByOtherSql(Sql, "DmSql", "") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							rows, err = DB.Query(Sql, valueList...) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if err == nil { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								break | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -274,8 +316,15 @@ func GetData(dbName, table string, title string, where map[string]string, limit | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if rowerr == nil { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								for i, col := range values { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									if col != nil { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										index = helper.StrFirstToUpper(columns[i]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										info[index] = helper.ToString(col) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										if DB_PROVIDER == "DmSql" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											//达梦返回全大写字段,需先转小写
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											index = helper.StrFirstToUpper(strings.ToLower(columns[i])) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											//达梦返回的字段类型比较细,比如:int16、int32
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											info[index] = ToString(col) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											index = helper.StrFirstToUpper(columns[i]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											info[index] = helper.ToString(col) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								count++ | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -295,16 +344,38 @@ func GetData(dbName, table string, title string, where map[string]string, limit | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 * @param dbName 数据表名 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 * @param title  查询字段名 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					func GetRow(dbName, table_name, alias string, titles string, join [][]string, where, where_or []string, valueList []interface{}, orderby, groupby, having string, debug bool) (int, map[string]string, error) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					func GetRow(dbName, table_name, alias string, titles string, with, join [][]string, where, where_or []string, valueList []interface{}, orderby, groupby, having string, debug bool) (int, map[string]string, error) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						var count int = 0 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						info := make(map[string]string) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if dbName == "" && table_name == "" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return count, info, errors.New("没有数据表") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						table := "" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if strings.Contains(table_name, "select ") { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						withSql := "" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if len(with) > 0 { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							var builder strings.Builder | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							builder.WriteString("WITH ") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							boo := false | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							for k, v := range with { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if len(v) < 2 { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									continue | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if k != 0 { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									builder.WriteString(", ") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								builder.WriteString(v[1]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								builder.WriteString(" as (") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								builder.WriteString(v[0]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								builder.WriteString(")") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								boo = true | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if boo { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								builder.WriteString(" ") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								withSql = builder.String() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if withSql != "" || strings.Contains(table_name, "select ") || strings.HasPrefix(table, "(") { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							table = table_name | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							table = getTableName(dbName, table_name) | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -316,8 +387,12 @@ func GetRow(dbName, table_name, alias string, titles string, join [][]string, wh | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							title = "*" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						sql_str = helper.StringJoin("/*slave*/ select ", title) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if DB_PROVIDER == "TencentDB" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							sql_str = helper.StringJoin("/*slave*/ ", withSql, " select ", title) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							sql_str = helper.StringJoin(withSql, "select ", title) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if alias != "" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							table = helper.StringJoin(table, " as ", alias) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -325,15 +400,31 @@ func GetRow(dbName, table_name, alias string, titles string, join [][]string, wh | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						sql_str = helper.StringJoin(sql_str, " from ", table) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if len(join) > 0 { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							var builder strings.Builder | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							builder.WriteString(sql_str) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							boo := false | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							for _, joinitem := range join { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if len(joinitem) < 2 { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									continue | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if len(joinitem) == 3 { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									sql_str = helper.StringJoin(sql_str, " ", joinitem[2], " join ", getTableName(dbName, joinitem[0]), " on ", joinitem[1]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} else { //默认左连接
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									sql_str = helper.StringJoin(sql_str, " left join ", getTableName(dbName, joinitem[0]), " on ", joinitem[1]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								builder.WriteString(" ") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if len(joinitem) >= 3 { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									builder.WriteString(joinitem[2]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									builder.WriteString("left") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								builder.WriteString(" join ") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if withSql != "" || strings.Contains(joinitem[0], "select ") || strings.HasPrefix(joinitem[0], "(") || len(joinitem) > 4 { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									builder.WriteString(joinitem[0]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									builder.WriteString(getTableName(dbName, joinitem[0])) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								builder.WriteString(" on ") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								builder.WriteString(joinitem[1]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								boo = true | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if boo { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								sql_str = builder.String() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if len(where) > 0 || len(where_or) > 0 { | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -358,10 +449,10 @@ func GetRow(dbName, table_name, alias string, titles string, join [][]string, wh | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if orderby != "" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							sql_str = helper.StringJoin(sql_str, " order by ", orderby) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if debug { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							log.Println("query sql:", sql_str, valueList) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						condition_len := 0 //所有条件数
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						for _, ch2 := range sql_str { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if string(ch2) == "?" { | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -387,6 +478,12 @@ func GetRow(dbName, table_name, alias string, titles string, join [][]string, wh | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						for queryNum < 2 { //如发生错误,继续查询2次,防止数据库连接断开问题
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if DB_PROVIDER == "PgsqlDb" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								sql_str = sqlx.Rebind(sqlx.DOLLAR, sql_str) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								sql_str = ReplaeByOtherSql(sql_str, "PgsqlDb", "") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} else if DB_PROVIDER == "DmSql" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								sql_str = ReplaeByOtherSql(sql_str, "DmSql", "") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							rows, err = db.Query(sql_str, valueList...) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -401,6 +498,7 @@ func GetRow(dbName, table_name, alias string, titles string, join [][]string, wh | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if err != nil { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							log.Println("DB error:", err) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							rows.Close() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return count, info, err | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -420,8 +518,15 @@ func GetRow(dbName, table_name, alias string, titles string, join [][]string, wh | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if rowerr == nil { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								for i, col := range values { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									if col != nil { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										index = helper.StrFirstToUpper(columns[i]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										info[index] = helper.ToString(col) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										if DB_PROVIDER == "DmSql" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											//达梦返回全大写字段,需先转小写
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											index = helper.StrFirstToUpper(strings.ToLower(columns[i])) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											//达梦返回的字段类型比较细,比如:int16、int32
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											info[index] = ToString(col) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											index = helper.StrFirstToUpper(columns[i]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											info[index] = helper.ToString(col) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								count++ | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -431,6 +536,7 @@ func GetRow(dbName, table_name, alias string, titles string, join [][]string, wh | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						rows.Close() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if rowerr != nil { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							log.Println("DB row error:", rowerr) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return count, info, rowerr | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						return count, info, nil | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -442,7 +548,7 @@ func GetRow(dbName, table_name, alias string, titles string, join [][]string, wh | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 * @param dbName 数据表名 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 * @param title  查询字段名 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					func FetchRows(dbName, table_name, alias string, titles string, join [][]string, where, where_or []string, valueList []interface{}, orderby, groupby, having string, page int, page_size int, debug bool) (int, []map[string]string, error) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					func FetchRows(dbName, table_name, alias string, titles string, with, join [][]string, where, where_or []string, valueList []interface{}, orderby, groupby, having string, page int, page_size int, debug bool) (int, []map[string]string, error) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						var count int = 0 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						list := make([]map[string]string, 0) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -450,7 +556,30 @@ func FetchRows(dbName, table_name, alias string, titles string, join [][]string, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return count, list, errors.New("没有数据表") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						table := "" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if strings.Contains(table_name, "select ") { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						withSql := "" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if len(with) > 0 { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							var builder strings.Builder | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							builder.WriteString("WITH ") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							boo := false | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							for k, v := range with { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if len(v) < 2 { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									continue | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if k != 0 { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									builder.WriteString(", ") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								builder.WriteString(v[1]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								builder.WriteString(" as (") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								builder.WriteString(v[0]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								builder.WriteString(")") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								boo = true | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if boo { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								builder.WriteString(" ") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								withSql = builder.String() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if withSql != "" || strings.Contains(table_name, "select ") || strings.HasPrefix(table, "(") { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							table = table_name | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							table = getTableName(dbName, table_name) | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -463,8 +592,12 @@ func FetchRows(dbName, table_name, alias string, titles string, join [][]string, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							title = "*" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						sql_str = helper.StringJoin("/*slave*/ select ", title) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if DB_PROVIDER == "TencentDB" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							sql_str = helper.StringJoin("/*slave*/ ", withSql, " select ", title) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							sql_str = helper.StringJoin(withSql, "select ", title) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if alias != "" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							table = helper.StringJoin(table, " as ", alias) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -472,15 +605,31 @@ func FetchRows(dbName, table_name, alias string, titles string, join [][]string, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						sql_str = helper.StringJoin(sql_str, " from ", table) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if len(join) > 0 { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							var builder strings.Builder | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							builder.WriteString(sql_str) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							boo := false | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							for _, joinitem := range join { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if len(joinitem) < 2 { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									continue | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if len(joinitem) == 3 { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									sql_str = helper.StringJoin(sql_str, " ", joinitem[2], " join ", getTableName(dbName, joinitem[0]), " on ", joinitem[1]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} else { //默认左连接
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									sql_str = helper.StringJoin(sql_str, " left join ", getTableName(dbName, joinitem[0]), " on ", joinitem[1]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								builder.WriteString(" ") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if len(joinitem) >= 3 { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									builder.WriteString(joinitem[2]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									builder.WriteString("left") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								builder.WriteString(" join ") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if withSql != "" || strings.Contains(joinitem[0], "select ") || strings.HasPrefix(joinitem[0], "(") || len(joinitem) >= 4 { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									builder.WriteString(joinitem[0]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									builder.WriteString(getTableName(dbName, joinitem[0])) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								builder.WriteString(" on ") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								builder.WriteString(joinitem[1]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								boo = true | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if boo { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								sql_str = builder.String() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -518,7 +667,11 @@ func FetchRows(dbName, table_name, alias string, titles string, join [][]string, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							from := strconv.Itoa((page - 1) * page_size) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							offset := strconv.Itoa(page_size) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if from != "" && offset != "" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								sql_str = helper.StringJoin(sql_str, " limit ", from, " , ", offset) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if DB_PROVIDER == "PgsqlDb" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									sql_str = helper.StringJoin(sql_str, " limit ", offset, " OFFSET ", from) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									sql_str = helper.StringJoin(sql_str, " limit ", from, " , ", offset) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if debug { | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -544,7 +697,12 @@ func FetchRows(dbName, table_name, alias string, titles string, join [][]string, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						var err error | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						var queryNum int = 0 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						for queryNum < 2 { //如发生错误,继续查询2次,防止数据库连接断开问题
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if DB_PROVIDER == "PgsqlDb" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								sql_str = sqlx.Rebind(sqlx.DOLLAR, sql_str) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								sql_str = ReplaeByOtherSql(sql_str, "PgsqlDb", "") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} else if DB_PROVIDER == "DmSql" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								sql_str = ReplaeByOtherSql(sql_str, "DmSql", "") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							rows, err = db.Query(sql_str, valueList...) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if err == nil { | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -580,8 +738,15 @@ func FetchRows(dbName, table_name, alias string, titles string, join [][]string, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if rowerr == nil { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								for i, col := range values { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									if col != nil { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										index = helper.StrFirstToUpper(columns[i]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										info[index] = helper.ToString(col) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										if DB_PROVIDER == "DmSql" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											//达梦返回全大写字段,需先转小写
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											index = helper.StrFirstToUpper(strings.ToLower(columns[i])) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											//达梦返回的字段类型比较细,比如:int16、int32
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											info[index] = ToString(col) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											index = helper.StrFirstToUpper(columns[i]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											info[index] = helper.ToString(col) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								count++ | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -622,7 +787,6 @@ func GetList(dbName, table string, title string, where map[string]string, limit | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if dbName == "" && table == "" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return list, errors.New("没有数据表") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if strings.Contains(table, "select ") { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							dbName = table | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} else { | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -650,7 +814,12 @@ func GetList(dbName, table string, title string, where map[string]string, limit | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								from = limit["from"] | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if offset != "0" && from != "" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								limitStr += " limit " + from + "," + offset | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if DB_PROVIDER == "PgsqlDb" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									limitStr += " limit " + offset + " OFFSET " + from | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									limitStr += " limit " + from + "," + offset | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -684,8 +853,15 @@ func GetList(dbName, table string, title string, where map[string]string, limit | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							for queryNum < 5 { //如发生错误,继续查询5次,防止数据库连接断开问题
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								rows, err = DB.Query("select "+title+" from "+dbName+" where "+strings.Join(whereStr, " and ")+" "+limitStr, valueList...) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								var Sql string | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								Sql = "select " + title + " from " + dbName + " where " + strings.Join(whereStr, " and ") + " " + limitStr | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if DB_PROVIDER == "PgsqlDb" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									Sql = sqlx.Rebind(sqlx.DOLLAR, Sql) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									Sql = ReplaeByOtherSql(Sql, "PgsqlDb", "") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} else if DB_PROVIDER == "DmSql" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									Sql = ReplaeByOtherSql(Sql, "DmSql", "") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								rows, err = DB.Query(Sql, valueList...) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if err == nil { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									break | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -730,8 +906,15 @@ func GetList(dbName, table string, title string, where map[string]string, limit | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							for i, col := range values { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if col != nil { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									index = helper.StrFirstToUpper(columns[i]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									record[index] = helper.ToString(col) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									if DB_PROVIDER == "DmSql" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										//达梦返回全大写字段,需先转小写
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										index = helper.StrFirstToUpper(strings.ToLower(columns[i])) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										//达梦返回的字段类型比较细,比如:int16、int32
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										record[index] = ToString(col) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										index = helper.StrFirstToUpper(columns[i]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										record[index] = helper.ToString(col) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							list = append(list, record) | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -749,7 +932,6 @@ func GetTotal(dbName, table string, args ...string) (total int) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if dbName == "" && table == "" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if strings.Contains(table, "select ") { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							dbName = table | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} else { | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -767,7 +949,6 @@ func GetTotal(dbName, table string, args ...string) (total int) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						var queryNum int = 0 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						for queryNum < 5 { //如发生错误,继续查询5次,防止数据库连接断开问题
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							rows, err = DB.Query("select count(" + title + ") as count from " + dbName + " limit 1") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if err == nil { | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -851,7 +1032,15 @@ func GetCount(dbName, table string, where map[string]string, args ...string) (to | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							for queryNum < 5 { //如发生错误,继续查询5次,防止数据库连接断开问题
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								rows, err = DB.Query("select count("+title+") as count from "+dbName+" where "+strings.Join(whereStr, " and ")+" limit 1", valueList...) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								var Sql string | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								Sql = "select count(" + title + ") as count from " + dbName + " where " + strings.Join(whereStr, " and ") + " limit 1" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if DB_PROVIDER == "PgsqlDb" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									Sql = sqlx.Rebind(sqlx.DOLLAR, Sql) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									Sql = ReplaeByOtherSql(Sql, "PgsqlDb", "") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} else if DB_PROVIDER == "DmSql" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									Sql = ReplaeByOtherSql(Sql, "DmSql", "") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								rows, err = DB.Query(Sql, valueList...) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if err == nil { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									break | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -910,6 +1099,12 @@ func DoQuery(args ...interface{}) ([]map[string]string, error) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						for queryNum < 3 { //如发生错误,继续查询5次,防止数据库连接断开问题
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if len(args) > 1 { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if DB_PROVIDER == "PgsqlDb" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									queryStr = sqlx.Rebind(sqlx.DOLLAR, queryStr) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									queryStr = ReplaeByOtherSql(queryStr, "PgsqlDb", "") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} else if DB_PROVIDER == "DmSql" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									queryStr = ReplaeByOtherSql(queryStr, "DmSql", "") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								rows, err = DB.Query(queryStr, args[1:]...) //strings.Join(args[1:], ",")
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if err != nil { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									log.Println("ERROR|DoQuery error:", err) | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -950,8 +1145,15 @@ func DoQuery(args ...interface{}) ([]map[string]string, error) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							for i, col := range values { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if col != nil { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									index = helper.StrFirstToUpper(columns[i]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									record[index] = helper.ToString(col) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									if DB_PROVIDER == "DmSql" { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										//达梦返回全大写字段,需先转小写
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										index = helper.StrFirstToUpper(strings.ToLower(columns[i])) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										//达梦返回的字段类型比较细,比如:int16、int32
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										record[index] = ToString(col) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										index = helper.StrFirstToUpper(columns[i]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										record[index] = helper.ToString(col) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							list = append(list, record) | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |