Stored procedures 当存在结果集时,vb6无法识别错误

Stored procedures 当存在结果集时,vb6无法识别错误,stored-procedures,vb6,Stored Procedures,Vb6,我有一个存储过程 返回包含错误的结果集 消息,当发生错误时。如果是 执行时没有任何错误,结果 集合为空(命令已完成) 成功地) 在vb6端,我执行sp和 通过以下方式检查是否存在错误: If Err <> 0 Then ' do sth End If 当我执行此命令时: sp_ApproveInvoice 1 它同时生成一个结果集(Results)和一条错误消息(Messages) 在vb6端,vb6无法捕获此处的错误 您需要在存储的进程中设置错误来设置错误 或者使用输出参数。

我有一个存储过程 返回包含错误的结果集 消息,当发生错误时。如果是 执行时没有任何错误,结果 集合为空(命令已完成) 成功地)

在vb6端,我执行sp和 通过以下方式检查是否存在错误:

If Err <> 0 Then
 ' do sth
End If
当我执行此命令时:

sp_ApproveInvoice 1
它同时生成一个结果集(Results)和一条错误消息(Messages)


在vb6端,vb6无法捕获此处的错误

您需要在存储的进程中设置错误来设置错误

或者使用输出参数。或者返回语句

或者添加逻辑来区分客户机代码中的“成功”和“失败”记录集

目前,
Err
没有任何意义,因为没有错误状态


就我个人而言,我使用RAISERROR作为我的with

您的特定情况不能被
Err
捕获,因为您的存储过程不会生成任何传统意义上的错误,它要么给出一个空的结果集,要么给出一个正常的结果集。VB如何知道非空结果集的语义

为此,您需要更改存储过程以引发错误,或者需要在代码中直接检查存储过程返回的结果集(与Err无关)

sp_ApproveInvoice 1