From 0765adfb79e8f3ce0b6a091baf80d831f980529b Mon Sep 17 00:00:00 2001 From: guzeng Date: Sat, 29 Jul 2023 12:22:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9E=84=E9=80=A0=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=EF=BC=8C=E5=85=BC=E5=AE=B9mssql=E7=9A=84page=20size?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chain.go | 31 +++++++++++++++++++++++-------- conn.go | 0 db_test.go | 0 prepare.go | 0 sqlserver.go | 9 +++++++-- transaction.go | 0 6 files changed, 30 insertions(+), 10 deletions(-) mode change 100755 => 100644 conn.go mode change 100755 => 100644 db_test.go mode change 100755 => 100644 prepare.go mode change 100755 => 100644 transaction.go diff --git a/chain.go b/chain.go index 3a98af1..4a422e4 100644 --- a/chain.go +++ b/chain.go @@ -179,7 +179,7 @@ func (this *Query) Clean() *Query { return this } -//获取表格信息 +// 获取表格信息 func (this *Query) GetTableInfo(table string) (map[string]interface{}, error) { field := []string{ "COLUMN_NAME", //字段名 @@ -245,7 +245,7 @@ func (this *Query) GetTableInfo(table string) (map[string]interface{}, error) { }, nil } -//构造子查询 +// 构造子查询 func (this *Query) BuildSelectSql() (map[string]interface{}, error) { if this.dbname == "" && this.table == "" { return nil, errors.New("参数错误,没有数据表") @@ -266,12 +266,23 @@ func (this *Query) BuildSelectSql() (map[string]interface{}, error) { } else { title = "*" } - if DB_PROVIDER == "TencentDB" { - sql = helper.StringJoin("/*slave*/ select ", title) + + if this.dbtype == "mssql" { + if this.page_size > 0 { + sql = helper.StringJoin("select top ", helper.ToStr(this.page_size), " ") + } else { + sql = "select " + } } else { - sql = helper.StringJoin("select ", title) + if DB_PROVIDER == "TencentDB" { + sql = "/*slave*/ select " + } else { + sql = "select " + } } + sql = helper.StringJoin(sql, title) + if this.alias != "" { table = helper.StringJoin(table, " as ", this.alias) } @@ -315,7 +326,7 @@ func (this *Query) BuildSelectSql() (map[string]interface{}, error) { sql = helper.StringJoin(sql, " order by ", this.orderby) } - if this.page > 0 || this.page_size > 0 { + if this.dbtype == "mysql" && (this.page > 0 || this.page_size > 0) { if this.page < 1 { this.page = 1 @@ -358,7 +369,11 @@ func (this *Query) QueryStmt() error { if SLAVER_DB != nil { this.conn = SLAVER_DB - } else { + } + // else { + // this.conn = DB + // } + if this.conn == nil { this.conn = DB } @@ -798,7 +813,7 @@ func (this *Query) Update() (int64, error) { return StmtForUpdateExec(this.stmt, this.value) } -//批量更新 +// 批量更新 func (this *Query) UpdateAll() (int64, error) { err := this.UpdateAllStmt() diff --git a/conn.go b/conn.go old mode 100755 new mode 100644 diff --git a/db_test.go b/db_test.go old mode 100755 new mode 100644 diff --git a/prepare.go b/prepare.go old mode 100755 new mode 100644 diff --git a/sqlserver.go b/sqlserver.go index 6c4a46d..18c9ce4 100644 --- a/sqlserver.go +++ b/sqlserver.go @@ -15,7 +15,7 @@ import ( var MSDB_CONN *sql.DB -func MSConnect(DBHOST, DBUSER, DBPWD, DBNAME, DBPORT string, conns ...int) error { +func MSConnect(DBHOST, DBUSER, DBPWD, DBNAME, DBPORT, encrypt string, conns ...int) error { log.Println("msdb connectting...") @@ -29,7 +29,12 @@ func MSConnect(DBHOST, DBUSER, DBPWD, DBNAME, DBPORT string, conns ...int) error db_port, _ := strconv.Atoi(DBPORT) - connString := fmt.Sprintf("server=%s;port=%d;database=%s;user id=%s;password=%s", DBHOST, db_port, DBNAME, DBUSER, DBPWD) + params := "server=%s;port=%d;database=%s;user id=%s;password=%s" + if encrypt != "" { + params = params + ";encrypt=" + encrypt + } + + connString := fmt.Sprintf(params, DBHOST, db_port, DBNAME, DBUSER, DBPWD) log.Println(connString) diff --git a/transaction.go b/transaction.go old mode 100755 new mode 100644