pegar o retorno de um sp em sql server 2000 no delphi 7 com Componente da Paleta ADO
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
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
Curtidas 0
Respostas
Vagner Almeida
30/12/2011
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...
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...
GOSTEI 0
Anizair Lopes
30/12/2011
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.
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.
GOSTEI 0
Donilton Silva
30/12/2011
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.
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.
GOSTEI 0
Anizair Lopes
30/12/2011
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.
mude a linha do seu select onde estiver codvenda coloque Venda que deve resolver.
GOSTEI 0
Anizair Lopes
30/12/2011
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.
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.
GOSTEI 0