我正在使用Microsoft SQL Server JDBC驱动程序2.0通过Java连接到SQL Server(2005)。
如何从存储过程中获取返回值?我正在做类似的事情:
Connection connection = dataSource.getConnection()
CallableStatement proc = connection.prepareCall("{ call dbo.mySproc() }");
proc.execute();
我应该使用execute()吗?executeQuery()?executeUpdate()?这些似乎都不默认返回一个返回值,但是我不确定如何获取它。
编辑1:明确地说,我知道如何调用存储过程。这个问题专门关于如何获取返回值(而不是结果集)。返回值是一个整数,通常在执行不带结果集的查询时或RETURN 0
在SQL中明确声明类似内容时生成。
编辑2:executeUpdate()返回一个int,但此int与返回值不同。另外,OUT参数与返回值也不相同。
博佐的第二次修订答案很接近,但还远远不够。它的确使我找到了答案。
以我开始的代码示例为例:
CallableStatement proc = connection.prepareCall("{ ? = call dbo.mySproc() }");
proc.registerOutParameter(1, Types.INTEGER);
proc.execute();
int returnValue = proc.getInt(1);
这里的关键部分是prepareCall
函数中“调用”前面的“?=”,它为返回值和registerOutputParameter
。它必须注册为Integer,因为返回值始终是int(至少在SQL
Server中,也许在其他DB中有所不同)。因此,您必须使用来获取它getInt
。我测试了这种方法,它确实起作用。
考虑这个代码 我做了一个包装器来延迟的方法调用是否有办法从setTimeout内部的回调中检索值,即从?
问题内容: 我已经使用Python多处理模块在Monte Carlo代码中实现了一些简单的并行性。我有看起来像的代码: 但是,当我查看结果列表时,似乎蒙特卡洛迭代器尚未启动。我知道它们有,因为我可以让这些过程在蒙特卡洛步骤中打印出信息。所以我在做些愚蠢的事情。我以为job.join()会阻止结果列表被构建,直到一切运行完毕,因此mc.results字段将被更新。 我意识到我还没有告诉您我的Mont
问题内容: 我想获取html页面的“打印值”。 我在下面的查询中尝试过,但是showGetResult()仅返回“空值” 但是当我尝试此代码时,我的apache服务器日志已打印,我访问了index.php。 (index.php只是打印helloworld) 问题答案: 我想你想做的就是这个。
问题内容: 以下代码给出了编译错误,提示“意外运行”: 我知道,如果正常调用函数就可以获取返回值,而无需使用goroutine。或者我可以使用频道等 我的问题是为什么不能从goroutine中获取像这样的返回值。 问题答案: 严格的答案是您 可以 做到。这可能不是一个好主意。下面的代码可以做到这一点: 这将产生一个新的goroutine,它将进行计算,然后将结果分配给。问题是:您将如何使用原始go
问题内容: 我想使用函数在ajax调用中获取值。但是该值始终返回未定义状态。返回值仅为1或0。 这是我的代码: 大家好,仍在努力完成这项工作。我现在得到的值显示为1或0。我现在想要完成的是如何在if语句中实现它。我想吃点这样的东西。如果val=0,则返回true;否则,返回true。否则返回假。我不确定我是否在使用ajax函数的正确轨道上。但是,如果有更好的方法可以告诉我,我将不胜感激。 问题答案
我正在努力使用Alamofire及其浏览器获取返回的json错误消息<代码>成功/。故障方法。 在使用这个之前,我可以使用