database/gdb: error rollback statement begin
for mssql2016, should be begin transaction
#3710
Open
Description
Go version
go 1.22
GoFrame version
2.7.2
Can this bug be reproduced with the latest release?
Option Yes
What did you do?
语句示例:
err := g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error {
_, err := tx.Ctx(ctx).Insert("TEST", g.Map{"key": "500.00"})
return err
})
如插入数据不符表规则(key字段定义为int)时:
控制台报错 Error: mssql: 在将 nvarchar 值 '500.00' 转换成数据类型 int 时失败。 (这是期望报错)
除这以外 又报错 Error: mssql: ROLLBACK TRANSACTION 请求没有对应的 BEGIN TRANSACTION。(非期望报错)
此时返回前端的err 为 第二条(非期望报错),
数据库为SQL2016 它的事务定义开始为 BEGIN TRANSACTION 而非mysql 的 BEGIN
What did you see happen?
事务中 插入语句报错
What did you expect to see?
返回报错 Error: mssql: 在将 nvarchar 值 '500.00' 转换成数据类型 int 时失败