Ir para conteúdo

POWERED BY:

Arquivado

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

Ronaldo Marcos

Converter para inteiro

Recommended Posts

Pode parecer estranho, mas estou pedindo ajuda para ver se conseguem ver algo que não vejo nesse código, não consigo converter para inteiro um valor, é de um código de paginação que sempre usei, estou usando em outros lugares no mesmo site mas aqui não funciona...

dá erro de tipos incompatíveis (VBScript erro '800a000d), aqui:

 

cdblMat = pAtual - 1

 

veja que recupero pAtual como querystring logo no inicio, já tentei converter para númerico com Cint, FormatNumber, cdbl e Val, mas sempre o mesmo erro...

 

Eu chamo essa página passando o valor de pAtual através de uma função javascript, pesquisei sobre isso (mesmo funciionando em outros lugares) e não achei nada que dissesse que ele pode estar vindo num formato que não fosse apenas string.... Obrigado.

 

 

<%

textovideo = request.querystring("textovideo")
cod_cat = request.querystring("cod_cat")
pAtual = Request.querystring("pAtual")

if cod_cat = "" then
cod_cat = 0
end if

set cnprocura = Server.createobject("adodb.connection")
set rsprocura = Server.createobject("adodb.recordset")
cmdsql = "(select a.cod_videos, a.titulo, a.datapublicacao, a.horapublicacao, a.ativo, a.link, a.cod_categorias from videos a "
cmdsql = cmdsql & "where a.ativo = 'on' "

if cod_cat <> 0 then
cmdsql = cmdsql & "and a.cod_categorias = '"& cod_cat &"' "
end if

if textovideo <> "" then
cmdsql = cmdsql & "and a.titulo like '%"& textovideo &"%' "
end if

cmdsql = cmdsql & " ) "

cnprocura.open "driver=MySQL ODBC 3.51 Driver;DATABASE="& bancodedados&";SERVER=" & ip & ";UID=" & nomebd & ";PASSWORD=" & senhabd & ""

''' Total de registros por pagina
fimRegistros = 8

''' Total de links exibidos na tela
intMaxLinksNavegacao = 10

''' Define a pagina atual
If pAtual = "" then
pAtual = 1
End If

''' Diz ao MySQL o inicio do filtro de linhas.
''' Inicialmente vamos iniciar da linha Zero
cdblMat = pAtual - 1
intInicioPaginasRegistros = cdblMat * fimRegistros

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

estranho é o mesmo código que funciona em outros sites ?

algumas vezes isso pode ser por ter usado uma palavra-chave do engine VBS, mas como em outros funciona. apenas para teste de um CInt e depois verifique com o IsNumeric

 

 

pAtual = Request.querystring("pAtual")
 pAtual_inteiro=CInt(pAtual)
Check = IsNumeric(pAtual_inteiro)
response.write(Check)

response.end()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gustavo, pode ser um número como string qualquer ou vazio, por isto eu verifico vazio.

 

Xumburzun ele pagina normal outras páginas no mesmo site, a única diferença é que o código do patual vai pelo função js nesse com problema, vou tentar ver com isnuméric quando der, mas acho que ele nem vá passar pelo cint na linha anterior, obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aconteceu isso mesmo, não passou no Cint, deu erro... e sem ele deu como falso, visto que é querystring, talvez seja mesmo algum problema relacionado com o JS, porque se ele vem com link direto não dá esse erro..

 

 

Eu imprimi com vartype e deu como string, e estranhmente, o cod_cat que eu recupero como querystring mesmo sem converter recuperou como integer... pelo que sei, apesar que recuper como querystring não transforma ela em string, tanto que nunca convertia... cod_cat também vem pelo JS mas la no JS em pego usando Getelementsbyid.value, enquanto o pAtual no nome da função (não sei o termo tecnico pra isso, rs)...

 

 

function gridaVideos(cod_cat,pAtual) {
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

if (document.getElementById("textovideo").value != null) {
textovideo = document.getElementById("textovideo").value;
}
//if (document.getElementById("pAtual").value != null) {
//pAtual = document.getElementById("pAtual").value;
// }

if (cod_cat == null && textovideo == "") {
xmlhttp.open("GET","gridvideos.asp",false);
//window.location.hash="topogrid";
xmlhttp.send();
} else {
xmlhttp.open("get","gridvideos.asp?cod_cat="+cod_cat+"&textovideo="+textovideo+"&pAtual="+pAtual+"",false);
xmlhttp.send();
textovideo = document.getElementById("textovideo").value = "";
}
if (xmlhttp.readyState != 200) {
document.getElementById("gridavideos").innerHTML = "Carregando...";
}

document.getElementById("gridavideos").innerHTML=xmlhttp.responseText;
window.location.hash="topogrid";
}

 

Não consigo ver lógica alguma nesse erro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

não querystring é apenas o método, ele não converte nada, faça um teste novamente, recupere pelo querystring e atribua a uma session e use essa variável session

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vejam só depois de penar um pouco descobri o erro, que na verdade não existia, analisei meu ASP e JS individualmente e não havia erro, contudo resolvi fazer um fluxograma (desenhei mesmo) com os dados sendo passados da uma pagina para o xmlhttprequest e depois ao ASP e achei um ponto a informação da variavel pAtual se perdia.

 

Aproveitando esse mesmo fluxograma, criei uma variável alternativa que é usada nos casos onde a outra se perdia (apenas para não ficar null) logo que nos casos onde ela é vazia pode ser 0 ou 1, isso existia nos dois codigos individualmente como disse, mas só verificava se eu estivesse neles ... Deu trabalho mas nesse ínterim descobri umas ferramentas novas para depurar meus códigos que noutro momento não teria ido atrás, já que alguns erros de JS não são exibidos quando são chamados via xmlhttprequest.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o popular teste de mesa

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.