Ai
1 Star 1 Fork 1

c./goframe框架

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
mssql_open.go 1.94 KB
一键复制 编辑 原始数据 按行查看 历史
admin 提交于 2024-11-05 01:30 +08:00 . 2024-11-5 替换中文提示完成.
// 版权归GoFrame作者(https://goframe.org)所有。保留所有权利。
//
// 本源代码形式受MIT许可证条款约束。
// 如果未随本文件一同分发MIT许可证副本,
// 您可以在https://github.com/gogf/gf处获取。
// md5:a9832f33b234e3f3
package mssql
import (
"database/sql"
"fmt"
gdb "gitee.com/go_888/goframe/database/gdb"
gcode "gitee.com/go_888/goframe/errors/gcode"
gerror "gitee.com/go_888/goframe/errors/gerror"
gregex "gitee.com/go_888/goframe/text/gregex"
gstr "gitee.com/go_888/goframe/text/gstr"
)
// X底层Open 创建并返回一个底层的 sql.DB 对象,用于 mssql。 md5:942e7644482faff9
func (d *Driver) X底层Open(config *gdb.X结构_配置) (db *sql.DB, err error) {
var (
source string
underlyingDriverName = "sqlserver"
)
if config.Link != "" {
// ============================================================================
// 从 v2.2.0 版本开始已废弃。
// ============================================================================
// md5:73505fc2089cb531
source = config.Link
// 自定义在运行时更改架构。 md5:69ce0e441b271151
if config.Name != "" {
source, _ = gregex.X替换文本(`database=([\w\.\-]+)+`, "database="+config.Name, source)
}
} else {
source = fmt.Sprintf(
"user id=%s;password=%s;server=%s;port=%s;database=%s;encrypt=disable",
config.User, config.Pass, config.Host, config.Port, config.Name,
)
if config.Extra != "" {
var extraMap map[string]interface{}
if extraMap, err = gstr.X参数解析(config.Extra); err != nil {
return nil, err
}
for k, v := range extraMap {
source += fmt.Sprintf(`;%s=%s`, k, v)
}
}
}
if db, err = sql.Open(underlyingDriverName, source); err != nil {
err = gerror.X多层错误码并格式化(
gcode.X变量_CodeDbOperationError, err,
`为驱动 "%s" 使用数据源 "%s" 调用 sql.Open 失败`, underlyingDriverName, source,
)
return nil, err
}
return
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/go_888/goframe.git
git@gitee.com:go_888/goframe.git
go_888
goframe
goframe框架
782a3f7170cf

搜索帮助