【问题标题】:Stored procedure does not return data if executed from VBA如果从 VBA 执行存储过程不返回数据
【发布时间】:2010-05-10 04:23:56
【问题描述】:

我在 Sybase 数据库中存储了 MySPOLD 过程。我创建了新的 sp MySP。这个新的 sp 在从 Sybase Sql Advantage 执行时返回数据。但从 VBA - Excel 2003 调用时不返回数据(记录集的 EOF 属性为 True)。这是我的代码..

Dim dbCon As ADODB.Connection
Dim rstTemp As New ADODB.Recordset
Dim query As String
query = "exec MySP '01/01/2010', '01/14/2010'"
dbCon.Open connectionString, "username" "password"
dbCon.CommandTimeout = 300
rstTemp.Open query, dbCon, adOpenForwardOnly

该代码在旧 sp 上运行良好。 可能是什么问题呢 ?有什么想法吗?

提前致谢。

【问题讨论】:

  • @Sam 那么为什么不将@Adamh 标记为您接受的答案呢?
  • 对不起Remou,其实我不知道如何将答案标记为“已接受”。现在完成..

标签: vba stored-procedures sybase recordset


【解决方案1】:

我假设它可以从 isql 或 sql 优势中正常工作!

您是否在新过程中的任何地方与 null 进行比较?我以前发现,与通过 VBA 或 vbScript 相比,从 isql 等调用时,像“if @var = null”这样的语句的行为不同。如果您有类似的情况,只需将其更改为“如果 @var 为空”即可。

【讨论】:

  • 非常非常非常感谢亚当。有效。我花了一整天的时间来解决这个问题。而且即使我花了更多的钱,我也不会得到解决方案......当从 VBA 调用 SP 时,空值处理不同,这很奇怪。一般我们在写SP的时候,是不会考虑前端Application的。无论如何,再次感谢! ! !
  • 很高兴它对您有用,一旦我找到答案,我就再也不会费心去寻找确切的原因了。如果您满意,请将答案标记为答案 - 然后我可以获得一些急需的分数! :)
猜你喜欢
  • 2018-06-21
  • 1970-01-01
  • 2016-02-01
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 2018-08-20
  • 1970-01-01
  • 2013-06-21
相关资源
最近更新 更多