STOREPROCEDURE....

F001E 26/07/2012 14:41:36
#406656
Boa Tarde a Todos...
Seguinte, tenho esses Parametros onde chama a procedure SP_CAIXA_LOCALIZA_MOVIMENTOS com Select...

Dim oCMD As New SqlCommand
Dim da_sp As SqlDataAdapter
Dim ds_sp As DataSet

da_sp = New SqlDataAdapter([Ô]SP_CAIXA_LOCALIZA_MOVIMENTOS[Ô], BancoSQLEstoque)
da_sp.SelectCommand.CommandType = CommandType.StoredProcedure
da_sp.SelectCommand.Parameters.Add(New SqlParameter([Ô]@EMPRESA[Ô], SqlDbType.VarChar))
da_sp.SelectCommand.Parameters([Ô]@EMPRESA[Ô]).Value = Empresa
da_sp.SelectCommand.Parameters.Add(New SqlParameter([Ô]@GRUPO[Ô], SqlDbType.BigInt))
da_sp.SelectCommand.Parameters([Ô]@GRUPO[Ô]).Value = 1
da_sp.SelectCommand.Parameters.Add(New SqlParameter([Ô]@HISTORICO[Ô], SqlDbType.BigInt))
da_sp.SelectCommand.Parameters([Ô]@HISTORICO[Ô]).Value = 1
da_sp.SelectCommand.Parameters.Add(New SqlParameter([Ô]@DATAINICIAL[Ô], SqlDbType.DateTime))
da_sp.SelectCommand.Parameters([Ô]@DATAINICIAL[Ô]).Value = [Ô]2012/01/01[Ô]
da_sp.SelectCommand.Parameters.Add(New SqlParameter([Ô]@DATAFINAL[Ô], SqlDbType.DateTime))
da_sp.SelectCommand.Parameters([Ô]@DATAFINAL[Ô]).Value = [Ô]2012/12/31[Ô]

ds_sp = New DataSet()
da_sp.Fill(ds_sp, [Ô]SP_CAIXA_LOCALIZA_MOVIMENTOS[Ô])
grdConsulta.DataSource = ds_sp.Tables([Ô]SP_CAIXA_LOCALIZA_MOVIMENTOS[Ô]).DefaultView

Mas quando cai na ultima linha do grdConsulta.DataSource, ocorre o erro do Anexo...
F001E 26/07/2012 15:40:10
#406658
Essa seria a StoreProcedure...

CREATE PROCEDURE SP_CAIXA_LOCALIZA_MOVIMENTOS
@EMPRESA VARCHAR(4),
@GRUPO BIGINT,
@HISTORICO BIGINT,
@DATAINICIAL DATETIME,
@DATAFINAL DATETIME
AS
DECLARE @SQL VARCHAR(900)
SET @SQL = @SQL + [ô]SELECT A.DATA,A.HISTORICO,[ô]
SET @SQL = @SQL + [ô]A.COMPLEMENTO,A.VALOR,[ô]
SET @SQL = @SQL + [ô]A.GRUPO,A.SEQUENCIA,B.TIPO[ô]
SET @SQL = @SQL + [ô]FROM CAIXA_MOVIMENTOS A[ô]
SET @SQL = @SQL + [ô]INNER JOIN CAIXA_HISTORICO B[ô]
SET @SQL = @SQL + [ô]ON B.HISTORICO = A.HISTORICO[ô]
SET @SQL = @SQL + [ô]WHERE A.EMPRESA = @EMPRESA[ô]
IF (@GRUPO IS NOT NULL)
BEGIN
SET @SQL = @SQL + [ô]AND A.GRUPO = @GRUPO[ô]
END
IF (@HISTORICO IS NOT NULL)
BEGIN
SET @SQL = @SQL + [ô]AND A.HISTORICO = @HISTORICO[ô]
END
IF (@DATAINICIAL IS NOT NULL AND @DATAFINAL IS NOT NULL)
BEGIN
SET @SQL = @SQL + [ô]AND A.DATA >= @DATAINICIAL[ô]
SET @SQL = @SQL + [ô]AND A.DATA <= @DATAFINAL[ô]
END
SET @SQL = @SQL + [ô]ORDER BY A.SEQUENCIA[ô]
KERPLUNK 26/07/2012 16:16:21
#406659
Resposta escolhida
Sua SP não executa e nem retorna uma tabela...
Seria algo como:
CREATE PROCEDURE SP_CAIXA_LOCALIZA_MOVIMENTOS
@EMPRESA VARCHAR(4),
@GRUPO BIGINT,
@HISTORICO BIGINT,
@DATAINICIAL DATETIME,
@DATAFINAL DATETIME
AS
BEGIN
SELECT
A.DATA,
A.HISTORICO,
A.COMPLEMENTO,
A.VALOR,
A.GRUPO,
A.SEQUENCIA,
B.TIPO
FROM
CAIXA_MOVIMENTOS A
INNER JOIN
CAIXA_HISTORICO B
ON
B.HISTORICO = A.HISTORICO
WHERE
A.EMPRESA = @EMPRESA
--manha do malandro: mesmo que a variavel só usa o parâmetro se a variável não for null
AND (@GRUPO is null or A.GRUPO = @GRUPO )
AND (@HISTORICO is null or A.HISTORICO = @HISTORICO )
AND (@DATAINICIAL is null or A.DATA >= @DATAINICIAL )
AND (@DATAFINAL is null or A.DATA <= @DATAFINAL )
END
F001E 26/07/2012 16:36:38
#406661
é...realmente minha SP nao executa, nao retorna P@## nenhuma.....essa que voce mexeu ae sim...trouxe os Dados....
Valews KERPLUNK
Tópico encerrado , respostas não são mais permitidas