Fórum pegar o retorno de um sp em sql server 2000 no delphi 7 com Componente da Paleta ADO #411109

30/12/2011

0

boa tarde a todos, gostaria de saber como faço para capturar uma variável de retorno de uma procedure no Banco de dados Sql Server 2000 com Delphi 7 e utilizando um componente da paleta ADO.

minha procedure está assim:

/*PROCEDURE PARA RETORNAR O ÚLTIMO REGISTRO INSERIDO NA TABELA VENDA1*/
create proc informaRegistro (@registro integer outPut)
as
set @registro = ident_current(venda1)
return @registro

Donilton Silva

Donilton Silva

Responder

Posts

04/01/2012

Vagner Almeida

Você vai tratar a SP como se fosse uma tabela.

Então você utiliza o componente QUERY do ADO e dá um select, assim

select * from NOME_DA_SP

Você PODE, trocar o * pelo nome do(s) campos que serão retornados, se quiser.

Faça um teste dando um select na ferramenta do SQL Server.

Espero ter ajudado

Abraços...

Responder

Gostei + 0

04/01/2012

Anizair Lopes

Qual componente ado você está utilizando ?

se for o AdoStoredProc você deve ter preenchido os parametros de sua procedure então para capturar o valor faça o seguinte

AdoStoredProc.Parameter[0].Value isso irá retornar o valor da sua variável que se encontra na stored procedure.
Responder

Gostei + 0

07/01/2012

Donilton Silva

Wagner, dei um select em uma procedure teste que fiz:

create table venda
(
codigo integer identity(1,1)not null,
valor numeric(6,2) not null,
cliente varchar(60) not null,
primary key(codigo,cliente)
)


create proc codVenda (@id_venda integer output)
as
set @id_venda = (select ident_current(venda))
return @id_venda


insert into venda values (89,maria)


select * from codVenda

E ME RETORNOU ESTE ERRO:
Server: Msg 208, Level 16, State 3, Line 1
Invalid object name codVenda.

Se um de vocês puder me ajudar agradeço.
Responder

Gostei + 0

29/05/2012

Anizair Lopes

o problema é no seu select você criou a tabela como Venda e está tentando dar um select na tabela codvenda que não existe.
mude a linha do seu select onde estiver codvenda coloque Venda que deve resolver.
Responder

Gostei + 0

29/05/2012

Anizair Lopes

desculpe minha mensagem anterior está incorreta ...
o certo é você passar o id_venda dentro da procedure..

select * from codvenda(89) ou um codigo que existe na tabela, pois sua procedure está solicitando um parametro.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar