orm 通用方法——RunProc调用存储过程
该方法暂不支持带返回值的存储过程,期待能人补充指点。
定义代码:
/** * 描述:执行存储过程 * 作者:Tianqi * 日期:2014-09-16 * param:rs orm.RawSeter * */ func RunProc(rs orm.RawSeter) { res, err := rs.Exec() if err == nil { num, _ := res.RowsAffected() fmt.Println("mysql row affected nums: ", num) } fmt.Println(err, "--------------------") } /** * 描述:生成存储过程语句 * 作者:Tianqi * 日期:2014-09-16 * param:procName 存储过程名称 * param:params 参数 * */ func MakeProcSql(procName string, paramLen int) string { var sql string sql += "call " + procName + " (" for i := 0; i < paramLen; i++ { sql += "?" if i < paramLen-1 { sql += "," } } sql += ")"return sql }
调用代码:
sql := dal.MakeProcSql("pro_menu_add", 3) dal.RunProc(orm.NewOrm().Raw(sql, menu.Pid, menu.Name, menu.Link))
Tianqi.