Ir para conteúdo

POWERED BY:

Arquivado

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

Willian Quideroli

Randomize em SQL

Recommended Posts

Seguinte Galera to com uma dúvida aqui

 

tenho o seguinte codigo

 

<%
strconn="Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&caminho&";"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.CursorLocation = 3 ' adUseClient
Conn.Open strconn
	
set RS = Server.Createobject("AdoDB.RecordSet")
StrSQL = "SELECT * FROM TBL_PRODUTOS P WHERE valor <> 0  and (SELECT SUM(PT.QUANTIDADE) FROM Tbl_ProdutosVoltagem PT WHERE PT.id_PRODUTO = P.cod_produto) > 0 "

'StrSQL = "Select * from tbl_produtos where valor <> 0"
RS.Open StrSQL, Conn, 3, 3
	
codigo = RS.recordcount
Randomize
RS.Move (Int(codigo * Rnd))

total_pagina = rs.PageCount

cont = 0
For contador = 1 to 24
cont = cont + 1
%>

Onde ele faz a consulta nas duas tabelas e depois cria o Randomize, o problema que desse modo o site fica lento para abrir, as vezes nem abre tentei então fazer a consulta e o Randomize tudo no SQL mais tambem não deu certo

 

StrSQL = "SELECT top 24 * FROM TBL_PRODUTOS P WHERE valor <> 0  and (SELECT SUM(PT.QUANTIDADE) FROM Tbl_ProdutosVoltagem PT WHERE PT.id_PRODUTO = P.cod_produto) > 0 order by RND(INT(NOW*P.cod_produto)-NOW*P.cod_produto

 

Como posso resolver esse problema? alguem pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pq não deu certo fazer tudo no SQL?

 

Qual banco de dados você está utilizando?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas exibiu alguma mensagem de erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas exibiu alguma mensagem de erro?

 

Exibiu essa mensagem de erro quando feito tudo via SQL

 

Tipo de erro:
Microsoft JET Database Engine (0x80040E14)
), ] ou item faltando na expressão de consulta 'RND(INT(NOW*P.cod_produto)-NOW*P.cod_produto'.
/ECOMMERCE/CasadasMaquinas/web/Home.asp, line 34

Compartilhar este post


Link para o post
Compartilhar em outros sites

De acordo com o post #1, faltou fechar um parêntese.

 

Faça a correção e poste o resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

De acordo com o post #1, faltou fechar um parêntese.

 

Faça a correção e poste o resultado.

 

Sim, o erro é o mesmo no post #1 esqueci de colocar mais no codigo ta certinho como precisa

 

<%
strconn="Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&caminho&";"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.CursorLocation = 3 ' adUseClient
Conn.Open strconn
	
set RS = Server.Createobject("AdoDB.RecordSet")
StrSQL = "SELECT top 24 * FROM TBL_PRODUTOS P WHERE valor <> 0  and (SELECT SUM(PT.QUANTIDADE) FROM Tbl_ProdutosVoltagem PT WHERE PT.id_PRODUTO = P.cod_produto) > 0 order by RND(INT(NOW*P.cod_produto)-NOW*P.cod_produto"
RS.Open StrSQL, Conn, 3, 3
%>
O erro que dá

 

Tipo de erro:
Microsoft JET Database Engine (0x80040E14)
), ] ou item faltando na expressão de consulta 'RND(INT(NOW*P.cod_produto)-NOW*P.cod_produto'.
/ECOMMERCE/CasadasMaquinas/web/Home.asp, line 34

Compartilhar este post


Link para o post
Compartilhar em outros sites

continua faltando um parentese no order by

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.