Ir para conteúdo
Fórum Script Brasil
  • 0

Como Transformar Um Numero Fixo Em Variável?


Prof. Jonatas

Pergunta

Galera eu tenho um numero fixo e preciso deixar ele como variável, pra entrar um valor que o usuário digitar.

Bom eu já tenho o código ta tudo funcionando certinho, só preciso deixar o numero 2 como se fosse uma var ex. "numero"

Eu não to conseguindo fazer pois sou novato em ASP e ainda não me liguei no esquema das "" sinal de igual, onde usar e como usar...

Alguém pode me ajudar? O Código é este abaixo:

Set RS_Max = Server.CreateObject("ADODB.Recordset")
RS_Max.CursorType = adOpenKeyset
RS_Max.Open "SELECT * FROM prod where Codigodesenho='2'", Conn

Etão Vendo? O Código do desenho é 2, no caso eu to querendo deixar como var.

Aguardo respostas galera, valeu

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

Se você tem um formulario antes e nessa tela você tem que resgatar o valor:

var = request.form("var")
agora já é variavel, na consulta:
RS_Max.Open "SELECT * FROM prod where Codigodesenho= "& var &" ", Conn
se for do tipo texto a variavel:
RS_Max.Open "SELECT * FROM prod where Codigodesenho= '"& var &"' ", Conn

Link para o comentário
Compartilhar em outros sites

  • 0

Andréia, muito obrigado, funcionou a segunda opção.

Meu numero estava definido no banco de dados como texto.

Ta Ok.

Mas agora eu to com um outro dilema.

Eu fiz a função para gravar o numero no Cookie do meu PC, na mesma página do meu formulário.

Então ta acontecendo o seguinte.

Pra poder gravar o campo numero no Cookie eu coloquei o action do formulário para buscar a mesma página ex.

O meu código ta na página gravar.asp, o action ta para ir para gravar.asp

Está gravando ta certinho, mas eu queria clicar no botão OK, e executar a gravação e automáticamente já mudar de página, ou seja ir para a página onde eu estou recuperando o numero do Cookie.

Entendeu?

Como eu posso fazer isto?

Eu creio que seja em função né? Colocar a gravação dentro de uma função e juntamente colocar um redirect no fim da função, e botão ok executa a função, é isto?

Bom, se for isto eu só sei teoria, porque o código pra fazer isto eu não manjo nada.

Tem como você me ajudar?

Aguardo, valeu.

Link para o comentário
Compartilhar em outros sites

  • 0

não deu pra visualizar muito sua aplicação, mas o problema do redirect é que ele não carrega as variaveis do form (a menos q você incluia no link).

você pode gravar os cookies no começo da pagina seguinte, apos o submit, e abaixo colocar a rotina normal.

Esse cookies são baseados no form anterior? ou de outra página?

Link para o comentário
Compartilhar em outros sites

  • 0

não dá pra eu gravar os Cookies no começo da página porque o usuário vai digitar o que precisa ser gravado.

É como um sistema de busca.

você digita o que quer e aí vai pra uma página de resposta sobre o que digitou!

No caso eu fiz assim:

A página que o usuário digita o numero do registro que ele quer ver:

<%Option Explicit%>
<%Response.Buffer = True%>
<html>
<head>
<title>Gravar</title>
</head>

<body bgcolor="#FFFFFF" text="#000000">
<%
dim strCookie, numero1, recnum

strCookie ="cadastro"
numero1 = Request.Form("numero")
recnum = Request.Cookies("strCookie") ("num")

Response.Cookies("strCookie").Expires = DateAdd("s", 60, now)
Response.Cookies("strCookie").Path = "/"
Response.Cookies("strCookie") ("num") = numero1



%>

<form name="form1" method="post" action="gravar.asp">
  <div align="center">Numero: 
    <input type="text" name="numero">
    <input type="submit" name="Submit" value="OK">
  </div>
</form>
</body>
</html>
Após ter digitado o numero e clicado em OK. Tem quer ir pra página onde ele irá ver o registro do código que ele digitou na página anterior. Seria esta:
<%

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.connectionstring = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" _ 
& Server.Mappath("Db/producao.mdb") & ";User Id=;Password=;" 
Conn.Open 

dim num, recnum
recnum = Request.Cookies("strCookie") ("num")

Set RS_Max = Server.CreateObject("ADODB.Recordset")
RS_Max.CursorType = adOpenKeyset
RS_Max.Open "SELECT * FROM prod where Codigodesenho= '"&recnum&"' ", Conn

%>

Então, o que eu gostaria de fazer é quando ele clicasse em Ok na página do form, fosse direto pra está pagina que mostra o registro.

Sem precisar trocar de endereço em cima lá na barra de endereços.

Outro problema que vem acontecendo é quando eu vou pra esta página de visualização, não ta indo direto pro código que eu digitei, só vai quando eu clico em atualizar.

Entendeu?

Nossa que Dilema, valeu pela ajuda heim, to no aguardo!

Link para o comentário
Compartilhar em outros sites

  • 0

Então, o que eu gostaria de fazer é quando ele clicasse em Ok na página do form, fosse direto pra está pagina que mostra o registro.

Sem precisar trocar de endereço em cima lá na barra de endereços.

você pode colocar o action do form pro mesmo arquivo e fazer um IF pra saber se o usuario submeteu o form ou não:

<%Response.Buffer = True%>
<html>
<head>
<title>Gravar</title>
</head>

<body bgcolor="#FFFFFF" text="#000000">
<%
if Request.ServerVariables("REQUEST_METHOD") <> "POST" then

strCookie ="cadastro"
numero1 = Request.Form("numero")
recnum = Request.Cookies("strCookie") ("num")

Response.Cookies("strCookie").Expires = DateAdd("s", 60, now)
Response.Cookies("strCookie").Path = "/"
Response.Cookies("strCookie") ("num") = numero1

%>

<form name="form1" method="post" action="teste.asp">
  <div align="center">Numero: 
    <input type="text" name="numero">
    <input type="submit" name="Submit" value="OK">
  </div>
</form>
</body>
</html>
<%
else

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.connectionstring = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" _ 
& Server.Mappath("Db/producao.mdb") & ";User Id=;Password=;" 
Conn.Open 

recnum = Request.Cookies("strCookie") ("num")

Set RS_Max = Server.CreateObject("ADODB.Recordset")
RS_Max.CursorType = adOpenKeyset
RS_Max.Open "SELECT * FROM prod where Codigodesenho= '"&recnum&"' ", Conn

end if
%>

Outro problema que vem acontecendo é quando eu vou pra esta página de visualização, não ta indo direto pro código que eu digitei, só vai quando eu clico em atualizar.

Entendeu?

essa eu não entendi

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Visitante

Fiz do jeito que você me passou ta dando este erro:

ADODB.Field error '80020009'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

?

Eu achu q não ta gravando o Cookie né?

Se alguém souber de um jeito mais fácil....

Aguardo, obrigado até agora viu!

Link para o comentário
Compartilhar em outros sites

  • 0

Sql não encontrou resultado e gera erro, você tem que fazer um tratamento caso não tenha valores a retornar, tenta assim:

Set RS_Max = Server.CreateObject("ADODB.Recordset")
RS_Max.CursorType = adOpenKeyset
RS_Max.Open "SELECT * FROM prod where Codigodesenho= '"&recnum&"' ", Conn

if rs_max.eof then
response.write "busca retornou sem resultados"
else

while not rs_max.eof

.
.
rs_max.movenext
wend
end if
end if

Tenta ae, e fica calmo ;)

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Visitante

É mas acontece q é impossível não me retornar nada.

Constam em meu banco de dados 3 registros, 1, 2, 3,

Se eu digitar o numero 2 tem que mostrar o registro numero 2.

Eu fiz assim para simplificar.

Fiz uma função se a variável do cookie estiver vazia, continua na mesma página.

Caso contrário vá para cadastro.asp

Ta funcionando, este código ta na página gravar.asp, funciona mas só da segunda vez que clico.

Por exemplo, se eu colocar o numero 1 para achar, ele grava no cookie mas eu continuo na página gravar.asp não ta redirecionando.

Mas se eu clicar denovo, mesmo que eu não digite numero nenhum, ele me redireciona pra página cadastro.asp com o registro do numero que eu digitei a primeira vez. Entendeu?

O loop ta certo, mas só que eu acho q o primeiro clique ta servindo apenas para gravar e aí sim no segundo clique eu to sendo redirecionado pro numero que eu pedi.

Estranho né?

Da uma olhada no código:

<%Option Explicit%>
<%Response.Buffer = True%>

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<%
dim strCookie, numero1, recnum
recnum = Request.Cookies("strCookie") ("num")
if recnum = "" then

strCookie ="cadastro"
numero1 = Request.Form("numero")
recnum = Request.Cookies("strCookie") ("num")

Response.Cookies("strCookie").Expires = DateAdd("s", 60, now)
Response.Cookies("strCookie").Path = "/"
Response.Cookies("strCookie") ("num") = numero1
%>
<form name="form1" method="post" action="gravar2.asp">
  <div align="center">Numero: 
    <input type="text" name="numero">
    <input type="submit" name="Submit" value="OK">
  </div>
</form>
</body>
</html>
<%
else
response.redirect "cadastro.asp"
end if
%>

Brigado pela ajuda viu você ta sendo super 10, aguardo mais respostas

Link para o comentário
Compartilhar em outros sites

  • 0

Relaxa Andreia, eu consegui!

Eu separei os código ao ivés de eu fazer em apenas uma ou duas páginas eu fiz em 3!

Ná página gravar.asp eu deixei só o formulário com o action apontado para gravar2.asp

Ná pagina gravar2.asp eu deixei o código para gravar o dado no cookie, e em seguida redirecionar para a página cadastro.asp

Ná página cadastro. asp a primeira coisa que eu fiz foi a verificação pra ver se tem algo no cookie, se constar continua alí se não tiver nada eu volto pra página gravar.asp.

Eu acho q podia ter feito isto des do início, mas fazer o que né, é errando que se aprende.

Brigadão viu, você foi de muita ajuda.

Há e com certeza logo mais eu irei precisar denovo, não é toa que sou iniciante. hehe

valeu

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...