Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde,
Preciso de uma ajuda, eu tenho um relatório onde eu gostaria que aparece-se somento os contratos fechados, hj qd eu peço ele ven tudo, segue o código:
<%
'----------------- Define o número de registros por página ----------------------------
Const TamanhoPagina = 1000
set rsQuery = Server.CreateObject( "ADODB.RecordSet" )
rsQuery.PageSize = TamanhoPagina
rsQuery.CacheSize = TamanhoPagina
rsQuery.CursorType = 3
rsQuery.Open"select * from contratos order by data" , Conn
rsQuery.AbsolutePage = Session("PaginaAtual")
cod_contrato=rsQuery("cod_contrato")
%>
rsQuery.Open"select * from contratos order by data" , Conn
Essa é a parte onde eu defino a ordem do relatório, aqui que defino tb somente os contratos fechados ?
Dentro do meu DB eu tenho um campo chamado "status", nele que eu defino se o contrato está "F" = fechado ou "R" = Realizado, eu utilizo as siglas "F" e "R".
Como posso fazer para definir meu relatório para aparecer somento os contratos fechados ?
Obrigado pela atenção.
Troque
rsQuery.Open"select * from contratos order by data"
por
rsQuery.Open"select * from contratos where status='F' order by data"
Apareceu o seguinte erro:
>
ADODB.Recordset error '800a0e7d'
The connection cannot be used to perform this operation. It is either closed or invalid in this context.
/controle/imprimir_relatorio_casamentos_fechados.asp, line 79
A linha 79 é essa:
rsQuery.Open"select * from contratos where status='F' order by data"
dá um response.write na sua string SQL para ver po que esta sendo passado...
Apareceu a seguinte msg de erro:
>
ADODB.Recordset error '800a0e7d'
The connection cannot be used to perform this operation. It is either closed or invalid in this context.
/controle/imprimir_relatorio_casamentos_fechados.asp, line 79
Como disse o @xanburzum dá um response.write no seu SQL aí para vermos o resultado, o que está retornando..
Abs
A causa mais provável é que você está tentando definir ActiveConnection o objeto de comando para um objeto de conexão inválido, ou você não definiu a propriedade ActiveConnection, e certifique-se de seu objeto de conexão é válido e aberto, antes de tentar defini-lo como a conexão ativa para o objeto de comando. Além disso, certifique-se de usar a palavra chave SET
você pode me auxiliar como faço isso..?
Eu montei o código assim:
<%
Const TamanhoPagina = 1000
set rsQuery = Server.CreateObject( "ADODB.RecordSet" )
rsQuery.PageSize = TamanhoPagina
rsQuery.CacheSize = TamanhoPagina
rsQuery.CursorType = 3
rsQuery.Open"select * from contratos where status="F" order by data" , Conn
rsQuery.AbsolutePage = Session("PaginaAtual")
cod_contrato=rsQuery("cod_contrato")
response.write(strsql2)
responde.end
set rs2=Conn.execute(strsql2)
%>
E continua dando esse erro:
>
Microsoft VBScript compilation error '800a0401'
Expected end of statement
/controle/imprimir_relatorio_casamentos_fechados.asp, line 78
rsQuery.Open"select * from contratos where status="F" order by data" , Conn
---------------------------------------------------^
Tente fazer direto assim e veja o retorno:
set rs2=Conn.execute("select * from contratos where status='F' order by data")
while not rs2.eof
response.write(rs2("cod_contrato"))
rs2.movenext
wend
http://forum.imasters.com.br/public/style_emoticons/default/clap.gif
no status="F" troque as aspas duplas por simples ficando status='F'
Correto, provavelmente funcionará
Coloquei assim:
<%
Const TamanhoPagina = 1000
set rsQuery = Server.CreateObject( "ADODB.RecordSet" )
rsQuery.PageSize = TamanhoPagina
rsQuery.CacheSize = TamanhoPagina
rsQuery.CursorType = 3
set rs2=Conn.execute("select * from contratos where status='F' order by data")
while not rs2.eof
response.write(rs2("cod_contrato"))
rs2.movenext
wend
rsQuery.AbsolutePage = Session("PaginaAtual")
cod_contrato=rsQuery("cod_contrato")
%>
E aparece isso:
>
3651483741424643446463533158745645543849676162505266707655608475778081836578
ADODB.Recordset error '800a0e78'
Operation is not allowed when the object is closed.
/controle/imprimir_relatorio_casamentos_fechados.asp, line 85
Calma, você fez uma bagunça.
Vamos por partes, digamos que assim o seu código está funcionando mas não filtra as opções:
Const TamanhoPagina = 1000
set rsQuery = Server.CreateObject( "ADODB.RecordSet" )
rsQuery.PageSize = TamanhoPagina
rsQuery.CacheSize = TamanhoPagina
rsQuery.CursorType = 3
rsQuery.Open"select * from contratos order by data" , Conn
rsQuery.AbsolutePage = Session("PaginaAtual")
cod_contrato=rsQuery("cod_contrato")
Caso queira somente adicionar o parametro status = 'F'
altere a seguinte linha:
rsQuery.Open"select * from contratos order by data" , Connpor essa:
rsQuery.Open "select * from contratos where status='F' order by data" , Conn
lembre-se de colocar ASPAS SIMPLES assim status='f'Ok, fiz assim:
<%
Const TamanhoPagina = 1000
set rsQuery = Server.CreateObject( "ADODB.RecordSet" )
rsQuery.PageSize = TamanhoPagina
rsQuery.CacheSize = TamanhoPagina
rsQuery.CursorType = 3
sQuery.Open "select * from contratos where status='F' order by data" , Conn
while not rs2.eof
response.write(rs2("cod_contrato"))
rs2.movenext
wend
rsQuery.AbsolutePage = Session("PaginaAtual")
cod_contrato=rsQuery("cod_contrato")
%>
E apareceu a seguinte msg de erro:
>
Microsoft VBScript runtime error '800a01a8'
Object required: ''
/controle/imprimir_relatorio_casamentos_fechados.asp, line 78
você misturou 2 códigos, por isso não está funcionando, altere isso:
<%
Const TamanhoPagina = 1000
set rsQuery = Server.CreateObject( "ADODB.RecordSet" )
rsQuery.PageSize = TamanhoPagina
rsQuery.CacheSize = TamanhoPagina
rsQuery.CursorType = 3
sQuery.Open "select * from contratos where status='F' order by data" , Conn
while not rs2.eof
response.write(rs2("cod_contrato"))
rs2.movenext
wend
rsQuery.AbsolutePage = Session("PaginaAtual")
cod_contrato=rsQuery("cod_contrato")
%>por isso:
Const TamanhoPagina = 1000
set rsQuery = Server.CreateObject( "ADODB.RecordSet" )
rsQuery.PageSize = TamanhoPagina
rsQuery.CacheSize = TamanhoPagina
rsQuery.CursorType = 3
rsQuery.Open "select * from contratos where status='F' order by data" , Conn
rsQuery.AbsolutePage = Session("PaginaAtual")
cod_contrato=rsQuery("cod_contrato")
response.write(strsql2)
response.end
set rs2=Conn.execute(strsql2)
dá um response.write na string SQL, para ver o k esta sendo passado
response.write(SQL)
response.end()
O relatório veio em branco !!!
trocou tudo por isso?
Dessa forma trouxe o que o relatório?:
Const TamanhoPagina = 1000
set rsQuery = Server.CreateObject( "ADODB.RecordSet" )
rsQuery.PageSize = TamanhoPagina
rsQuery.CacheSize = TamanhoPagina
rsQuery.CursorType = 3
rsQuery.Open "select * from contratos where status='F' order by data" , Conn
rsQuery.AbsolutePage = Session("PaginaAtual")
cod_contrato=rsQuery("cod_contrato")
response.write(strsql2)
response.end
set rs2=Conn.execute(strsql2)
Então, não trouxe nada, veio em branco, nem resposta do response.write veio !!
Alguém pode me dar uma luz !!!
Funcionou, eu tirei o final do código e deu certinho.
Obrigado a todos pela atenção.
Essa foi a parte que tirei:
response.write(strsql2)
response.end
set rs2=Conn.execute(strsql2)
O código ficou assim correto:
<%
Const TamanhoPagina = 1000
set rsQuery = Server.CreateObject( "ADODB.RecordSet" )
rsQuery.PageSize = TamanhoPagina
rsQuery.CacheSize = TamanhoPagina
rsQuery.CursorType = 3
rsQuery.Open "select * from contratos where status='F' order by data" , Conn
rsQuery.AbsolutePage = Session("PaginaAtual")
cod_contrato=rsQuery("cod_contrato")
%>
Que bom que resolveu :)