问题标签 [output-parameter]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - ADO.NET 调用 T-SQL 存储过程会导致 SqlTimeoutException
我有一个带有签名的 T-SQL 存储过程
当直接在 Sql Server 中执行时,该过程在 5 秒内运行,返回几个结果集,总计约 100 行。
使用 ADO.NETSqlDataAdapter.Fill
方法调用此过程以填充 aDataset
会导致 aSqlTimeoutException
在SqlCommand
3 分钟后(指定的超时间隔)。
更改存储过程,使其不再具有输出参数,并将所需的输出值作为最后一个结果集返回,解决了问题,整个过程按预期在 5 秒内运行。
但为什么?
我不想在不了解我是否真的解决了问题的情况下浏览我的代码库并修改此类行为的所有实例。
另一件需要注意的是,这仅在一个特定的服务器上很明显,该服务器的数据集比我们运行的其他类似数据库要大。肯定不是 Sql Server 设置?
更新
进入框架源,问题似乎在于元数据检索。对象的ConsumeMetaData
方法SqlDataReader
无限期挂起。但是,我在其他数据库上运行了测试并且无法重现,因此当通过 ADO.NET 调用此过程时,这是一个特定于数据库的问题......太好了。
更新二
已确认如果我将代码更改为OleDbDataAdapter
与 SQLOLEDB 或 SQLNCLI 提供程序类型一起使用,问题仍然存在。肯定跟关系有关。
java - 使用 Spring 的 JDBC 支持获取输出参数
我正在使用 Spring 的 JDBC 支持在 Oracle 数据库上运行 SQL 查询和更新。我想插入一行,然后获取分配给它的键(使用 Oracle 序列)。在普通的 JDBC 代码中,我会包含一个 RETURNING INTO 子句,然后注册一个输出参数(这里有很好的描述)
但是,我只想使用 Spring 来处理我所有的 JDBC 工作。对于非插入 SQL 语句,我目前正在使用 MapSqlParameterSource 对象并注册我的所有输入参数。我也可以注册这样的输出参数并将其返回给我吗?我查看了 Spring 文档的第 11 章部分,如果我使用存储过程,我发现支持输出参数,但如果可能的话,我想避免这样做。谢谢。
c# - 在 C# 中读取带有输出参数和结果集的 SP?
我创建了一个类似于这个简化示例的存储过程:
当我在调用对象的ExecuteReader()
方法后尝试从输出变量中读取值时SqlCommand
,这些值为空。
我做错了什么?
java - Java 中的输出参数
使用第三方 API,我观察到以下内容。
而不是使用,
它使用类似的东西
我正在分配“输出”字符串。
我很好奇实现这种功能的原因。使用这样的输出参数有什么好处?
boost - 用 scoped_ptr/array 包装分配的输出参数
所以,我有一些看起来像这样的代码:
为了更安全,我使用了 scoped_array:
问题是,有没有任何现有的方法可以只使用 scoped_array,而不使用临时原始数组?
我可能可以编写一个就地“重置器”类,只是想知道该功能是否存在而我错过了它。
谢谢,丹
oracle - NHibernate 访问 Oracle 存储过程 REFCURSOR 和输出参数
当前版本的 NHibernate (v2.1.2)除了输出参数外,是否支持访问 Oracle 存储过程输出 REFCURSOR?
我可以使用我的代码访问输出引用。但是我不确定我是否可以在同一个存储过程中访问额外的输出参数。
一些调用语法的示例将不胜感激。谢谢。
c# - C# - 输出 SqlParameter 使用不同的值而不是给定的值?
我有一个 SqlCommand ,它运行一个包含两个整数输出参数的存储过程。就在 SqlCommand 运行之前,我可以看到输出参数设置为正确的值,但是当命令实际执行时,无论我将参数设置为什么,它对 parameter1 使用 NULL,对 parameter2 使用 0(使用 SQL Profiler 验证) .
代码的简化版本是这样的:
我在这里对两件不同的事情感到困惑:
1)为什么不使用参数中的值?我可以在前面放置一个断点,command.ExecuteNonQuery()
然后查看 command.Parameters 列表的输出参数设置是否正确,但是 SQL 探查器跟踪在执行查询时具有不同的参数。
2) 两个参数都是整数,定义方式完全相同——为什么一个设置为 NULL 而另一个设置为 0?
linq-to-sql - 从 LINQ To SQL ExecuteQuery 中的存储过程中捕获输出参数
执行存储过程时是否可以从 LINQ To SQL DataContext 获取输出参数?
其中address
,pageIndex
和pageSize
是输入参数, 和TotalCount
是输出参数。
如何捕获输出参数?
这是另一种尝试,但再次无法获取参数值:
c# - 使用 LINQ 调用 sproc,如何从方法传回 var?
我有这种方法,它工作了一段时间
但我现在真正想要的是
因为 slotString 中包含多个元素。我看到了一些其他示例,但没有一个使用 LINQ 调用存储过程的示例。
任何帮助都会很棒,我将不胜感激。
非常感谢
蒂姆