Ir para conteúdo

POWERED BY:

Arquivado

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

Asteriscos

Passar valor nulo para função

Recommended Posts

Olá,

 

A função abaixo funciona:

<%

function teste(a)

response.write "<h1>OK<h1>"

end function

 

teste(a)

%>

 

Porém essa não:

 

<%

function teste(a)

response.write "<h1>OK<h1>"

end function

 

teste()

%>

 

Gostaria de saber como contornar a função para aceitar a chamada sem passar a variável pois senão terei que alterar 50 chamadas para essa função. Gostaria de poder chamar sem passar o parâmetro (teste()) e não da erro. Como é possível?

Compartilhar este post


Link para o post
Compartilhar em outros sites

<%

teste("")

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

para passar nulo é

teste(null)

 

para passar vazio

teste("")

 

dica: sua função seria mais correta se utilizasse uma SUB, a forma mais correta da sua função seria

 

function teste(a)

teste = "OK"

end function

response.write(teste(null))

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem notado e lembrado gaúcho tchê! [2]

 

Nem me liguei nesse detalhe. :wacko:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não expliquei direito...

 

Eu tenho uma função que é chamada em 39 páginas diferentes e em vários lugares de cada página.

 

A chamada é assim: teste()

 

Portanto eu não quero ter que alterar essa chamada em todas essas páginas. Gostaria que a chamada permanecesse assim: teste()

 

No entanto gostaria de alterar em um único lugar. Na função.

 

A função atuamente não recebe nenhum parâmetro e passará a receber 1

 

Por isso eu acrescentei o parâmetro na função e mantive a chamada semm passar nehum parâmetro.

 

Mas dá o erro e gostaria de saber se existe alguma solução de contorno para isso.

 

Em SQL isso é possível.

 

Por exemplo, uma procedure que espera dois parâmetros funciona da mesma forma que uma função ASP e dá o erro da mesma forma quando somente um é passado.

 

Create procedure proc_teste()

@param1 varchar(2),

@param2 varchar(30)

 

as

select * from tbl_teste where teste = @param1

 

exec proc_teste 'RJ'

 

 

como solução de contorno é usado o null na função e todas as chamadas permanecem da mesma forma.

 

Create procedure proc_teste()

@param1 varchar(2)=null,

@param2 varchar(30)=null

 

as

select * from tbl_teste where teste = @param1

 

exec proc_teste 'RJ'

 

 

Só que em ASP não funciona o null. Funciona de outra forma?

 

<%

function teste(a=null)

response.write "<h1>OK<h1>"

end function

 

teste()

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

function teste(a=null)

^

isso não existe no asp

 

recomendo que você crie outra função com outro nome e coloque o parâmetro que necessita ou se quer manter apenas uma função terá que modificar o que já existe adicionando um valor vazio ou nulo e nas novas chamadas coloque o valor quando necessário

 

na chamada da função pode fazer isso

teste(""&variavel)

ou seja, se tiver algum valor na variavel esse valor entra na função, se não tiver já vai estar com o parametro vazio concatenado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem como fazer sim, é meio que uma gambiarra...

faz essa função numa página ASP separada de todas, e em todas as páginas que você tiver que chamá-la insira um INCLUDE na página, vai ficar assim:

 

<!--#include file="../functions.asp" -->

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá gubergamo,

 

Obrigado por compartilhar seu conhecimento conosco.

 

Continue contribuindo respondendo os tópicos mais recentes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

só lembrando k depois você pode verificar se o valor é nulo, atraves da IsNull ( )

IsNull,devolve True ou False, a indicar se uma variável não contém dados válidos 'Null'.

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.