node mysql数据库模块调用存储过程问题
发布于 4 天前 作者 SKandAV 628 次浏览 最后一次编辑是 3 天前 来自 问答

小弟之前的连的数据库是sqlserver,所以连接模块用的mssql。这个连接模块对应存储过程的调用有很多资料。所以没啥问题。现在的需要是换成mysql,那我想,mysql应该更容易,因为npm上明显mysql的下载量比mssql多得多。然而一般的sql语句都没问题。但是到调用存储过程的时候就发现问题了。我找了一下发现都没有怎么写这方面的,包括输入参数和参数类型和输出参数。瞬间傻了。npm上的只有几句话,例子都没有。

这个就看不太出来输入参数和输出参数怎么定义。 然后我百度找了一下。也没找到啥。所以想问问老哥们。去哪找个demo之类。想知道一下调用过程是怎么样的,还有参数的定义,存储过程是已经写好了的。就是调用的事。

6 回复

如果用这个包的话,这样写

 conn.query(sql, args, (error, result) => {})
 args 是个数组

存储过程一样

@im-here 老哥,我在稍微问细一点啊,args这个数组是不是包括输入参数和输出参数呢,比如我要调用的存储过程名字是AAABBB,他需要3个输入参数,一个int型的 1,然后一个是字符串类型的 ’abc‘,还有一个是时间,然后输出的内容是int型的。我之所以怎么问是因为我用mssql的时候是需要怎么构造输入参数和输出参数的。还是说mysql模块里面不用呢 22222.png

@SKandAV 输出参数不清楚,之前用的存储过程都没有输出参数。 你测试一下不就知道了,我猜应该含输出参数的吧?

await conn.query(sql, args) 第一个参数的sql , 应该可以拼成 ‘call generate_xxxxNo("’ + prev + '");'括号里面传几个参数,你来定。

@zurmokeeper 谢谢大佬,已经解决了

回到顶部