Fórum Retorno em Delphi do dataset de uma store procedure de tabuada #411857
24/01/2012
0
Pessoal, preciso retornar no delphi em um listbox o resultado dessa store procedure:
A procedure foi feita no sql server 2008 e estou usando o storeproc da BDE.
Dessa forma obtenho apenas o último registro:
O que devo fazer?
USE [Loja]
GO
/****** Object: StoredProcedure [dbo].[CalcularTabuada2] Script Date: 01/24/2012 00:32:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[CalcularTabuada2]
@numero int,
@linha varchar(30) output
AS
DECLARE @contador int
DECLARE @tabuada int
SET @contador=0
WHILE (@contador <= 10)
BEGIN
SET @tabuada=@contador * @numero
SET @linha = CAST(@contador as varchar) +
X + cast(@numero as varchar) + = + cast(@tabuada as varchar)
PRINT @LINHA
SET @contador = @contador+1
ENDA procedure foi feita no sql server 2008 e estou usando o storeproc da BDE.
Dessa forma obtenho apenas o último registro:
sp.ParamByName(@numero).AsInteger:=5; sp.ExecProc; ShowMessage(sp.ParamByName(@linha).AsString);
O que devo fazer?
Claudio Junior
Curtir tópico
+ 0
Responder
Posts
25/01/2012
Joel Rodrigues
Opa,
primeiramente você deve alterar seu stored procedure para trazer os resultados em uma tabela (SELECT) e não imprimir na tela (PRINT).
Feito isso, basta fazer:
meuProcedure.Open();
e os dados serão retornados para sua aplicação no Delphi. Para testar, ligue um DataSource ao StoredProc e ponha um DBGrid ligado ao datasource.
Boa sorte.
primeiramente você deve alterar seu stored procedure para trazer os resultados em uma tabela (SELECT) e não imprimir na tela (PRINT).
Feito isso, basta fazer:
meuProcedure.Open();
e os dados serão retornados para sua aplicação no Delphi. Para testar, ligue um DataSource ao StoredProc e ponha um DBGrid ligado ao datasource.
Boa sorte.
Responder
Gostei + 0
30/01/2012
Claudio Junior
Valeu, consegui retornar com uma tabela temporário
CREATE PROCEDURE spTabuada2 @Num INT AS CREATE TABLE #TABUADA( TabNum INT, TabMult INT, TabResult INT ) DECLARE @I INT SET @I = 1 WHILE @I <= 10 BEGIN INSERT INTO #TABUADA VALUES (@Num, @I, @I * @Num) SET @I = @I + 1 END SELECT * FROM #TABUADA GO
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)