Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcosbruno.mb

Pegando sentença SQL de outro banco

Recommended Posts

seguinte galera, estou com um problema aqui

 

tenho um select aqui no meu asp, que se eu rodar ele, funciona perfeitamente

 

o select é esse

 

sql2="DECLARE @DATA DATETIME SET @DATA='"&data&"' SELECT HORA = DATEPART(hh, BB.EMISSAOTIME), NR_ACORDO = COUNT(DISTINCT BB.NR_ACORDO), CASH = SUM(CASE WHEN (BA.[PERC_FINANC] = 0) THEN (BA.[VR_AVISTA]) ELSE (BA.[VR_ENTRADA]) END), REFIN = SUM(CASE WHEN (BA.[PERC_FINANC] = 0) THEN 0 ELSE (BA.[VR_FINANC]) END), TOTAL = SUM(CASE WHEN (BA.[PERC_FINANC] = 0) THEN (BA.[VR_AVISTA]) ELSE (BA.[VR_ENTRADA]) END) + SUM(CASE WHEN (BA.[PERC_FINANC] = 0) THEN 0 ELSE (BA.[VR_FINANC]) END) FROM dbo.BOLETOS AS BB (NOLOCK), dbo.BOL_AUX AS BA (NOLOCK) WHERE (BB.EMISSAO = @DATA) AND (BB.PARCELA = 0) AND (ISNULL(BB.STATUS, 0) <> 3) AND (BB.PAGAMENTO IS NULL) AND BB.BOLETAGEM IS NULL AND BB.NR_ACORDO = BA.NR_ACORDO GROUP BY DATEPART(hh, BB.EMISSAOTIME) UNION ALL SELECT HORA = 99, NR_ACORDO = COUNT(DISTINCT BB.NR_ACORDO), CASH = SUM(CASE WHEN (BA.[PERC_FINANC] = 0) THEN (BA.[VR_AVISTA]) ELSE (BA.[VR_ENTRADA]) END), REFIN = SUM(CASE WHEN (BA.[PERC_FINANC] = 0) THEN 0 ELSE (BA.[VR_FINANC]) END), TOTAL = SUM(CASE WHEN (BA.[PERC_FINANC] = 0) THEN (BA.[VR_AVISTA]) ELSE (BA.[VR_ENTRADA]) END) + SUM(CASE WHEN (BA.[PERC_FINANC] = 0) THEN 0 ELSE (BA.[VR_FINANC]) END) FROM dbo.BOLETOS AS BB (NOLOCK), dbo.BOL_AUX AS BA (NOLOCK) WHERE (BB.EMISSAO = @DATA) AND (BB.PARCELA = 0) AND (ISNULL(BB.STATUS, 0) <> 3) AND (BB.PAGAMENTO IS NULL) AND BB.BOLETAGEM IS NULL AND BB.NR_ACORDO = BA.NR_ACORDO"

 

vejam que, no @data, eu concatenei uma váriavel que eu tenho no meu sistema, essa variável pega a data que o cara selecionar num <form>... beleza, até aqui, está tudo funcionando direitinho

 

porém, o que eu preciso fazer é pegar TODO esse select, jogar dentro do banco e executar ele por uma variável

 

me parece algo muito simples

 

eu fiz a conexão com o banco perfeita, criei uma variavel chamada script_banco, e coloquei script_banco = RS(4)

 

beleza, até aqui tudo certo também, para fazer o teste eu dei um response.write(script_banco) e apareceu todo esse código gigante ai em cima, perfeitamente...

 

bom... tudo estava dando certo até a hora que eu fiz sql2=script_banco

 

não funcionou... aparece um erro assim

 

Microsoft OLE DB Provider for SQL Server erro '80040e14'
Sintaxe incorreta próxima a '&'.
provavelmente o asp esteja dando pau naquela concatenação lá da data... mas o estranho é que se eu tirar a variavel script banco e colar a sentença toda, funciona perfeitamente
pensei que talvez o problema poderia ser que, quando ele puxa os dados da script_banco, ela vem sem as aspas... bom, adicionei as aspas lá no banco, no inicio e no fim da query e não deu certo... tentei concatenar direto no asp, algo como
aspas = """
sql2=aspas&script_banco&aspas
e também não deu certo...
não estou entendendo porque isso está acontecendo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.