У меня есть хранимая процедура, которая
возвращает набор результатов с ошибкой
сообщение, когда возникает ошибка. Если оно
выполняется без ошибок, результат
набор пуст (команда выполнена)
успешно)
На стороне vb6 я выполняю sp и
проверьте, есть ли ошибка по
If Err <> 0 Then
' do sth
End If
Но когда есть набор результатов,
Err всегда 0.
Как мне справиться с этой ситуацией?
Извините за неадекватное объяснение.
Вот мои сценарии:
--my sample table
create table #InvoiceDocument (InvoiceID int, ItemID int, Price float, DocStatus bit)
--my test values
insert into #InvoiceDocument (InvoiceID, ItemID, Price)
values (1, 1, 2.5), (1, 2, 5.0), (1,5, null)
--my sample procedure
create procedure sp_ApproveInvoice @InvoiceID int
as
begin
set nocount on
select * into #temp
from #InvoiceDocument
where Price is null and InvoiceID = @InvoiceID
if exists (select 1 from #temp)
begin
select InvoiceID, ItemID, Price from #temp
RAISERROR ('There are non priced items. Invoice can not be approved!',16, 1)
return
end
update #InvoiceDocument
set DocStatus = 1
where InvoiceID = @InvoiceID
end
когда я выполню это:
sp_ApproveInvoice 1
Он генерирует набор результатов (Results) и сообщение об ошибке (Messages).
На стороне vb6 vb6 не может поймать ошибку здесь.