iMasters Fóruns: Passar valor nulo para função - iMasters Fóruns

Ir para

Página 1 de 1
  • Novo tópico
  • Responder

Passar valor nulo para função

#1 Membro offline   Asteriscos Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 96
  • Cadastrado: 05-novembro 03

Postou 05 junho 2008 - 11:45

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?

#2 Membro offline   Ted k' Ícone

  • É assim que tem que ser!
  • Ícone
  • Grupo: Moderadores
  • Posts: 7084
  • Cadastrado: 03-maio 05
  • Sexo:Masculino
  • Localização:Salvador - {BA}

Postou 05 junho 2008 - 12:00

teste("")


#3 Membro offline   hargon Ícone

  • Opaa... o/
  • Ícone
  • Grupo: Moderadores Globais
  • Posts: 6253
  • Cadastrado: 01-dezembro 03
  • Sexo:Masculino
  • Localização:Minas Gerais

Postou 05 junho 2008 - 12:00

<%
teste("")
%>


#4 Membro offline   jonathandj Ícone

  • Jonathan Cardozo
  • Ícone
  • Grupo: Membros
  • Posts: 4598
  • Cadastrado: 11-junho 05
  • Sexo:Masculino
  • Localização:{Porto Alegre}{RS}

Postou 05 junho 2008 - 18:04

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))

#5 Membro offline   Ted k' Ícone

  • É assim que tem que ser!
  • Ícone
  • Grupo: Moderadores
  • Posts: 7084
  • Cadastrado: 03-maio 05
  • Sexo:Masculino
  • Localização:Salvador - {BA}

Postou 05 junho 2008 - 18:06

bem notado e lembrado gaúcho tchê!

#6 Membro offline   hargon Ícone

  • Opaa... o/
  • Ícone
  • Grupo: Moderadores Globais
  • Posts: 6253
  • Cadastrado: 01-dezembro 03
  • Sexo:Masculino
  • Localização:Minas Gerais

Postou 05 junho 2008 - 18:35

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

Nem me liguei nesse detalhe. :wacko:

#7 Membro offline   Asteriscos Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 96
  • Cadastrado: 05-novembro 03

Postou 05 junho 2008 - 21:17

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()
%>

#8 Membro offline   jonathandj Ícone

  • Jonathan Cardozo
  • Ícone
  • Grupo: Membros
  • Posts: 4598
  • Cadastrado: 11-junho 05
  • Sexo:Masculino
  • Localização:{Porto Alegre}{RS}

Postou 06 junho 2008 - 08:21

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

#9 Membro offline   gubergamo Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 55
  • Cadastrado: 13-fevereiro 08

Postou 03 novembro 2009 - 15:15

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" -->

#10 Membro offline   Mário Monteiro Ícone

  • Amo Você Fabíola. Ao seu lado tudo é perfeito.
  • Ícone
  • Grupo: Administradores
  • Posts: 29723
  • Cadastrado: 24-abril 03
  • Sexo:Masculino
  • Localização:Belém, Pará

Postou 08 novembro 2009 - 19:13

Olá gubergamo,

Obrigado por compartilhar seu conhecimento conosco.

Continue contribuindo respondendo os tópicos mais recentes.

#11 Membro online   xanburzum Ícone

  • Ícone
  • Grupo: Moderadores
  • Posts: 3752
  • Cadastrado: 03-novembro 08
  • Localização:Piracicaba/SP

Postou 08 novembro 2009 - 20:01

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'.

#12 Membro offline   desisto Ícone

  • Las Vegas
  • Ícone
  • Grupo: Membros
  • Posts: 1286
  • Cadastrado: 12-novembro 07
  • Sexo:Masculino

Postou 09 novembro 2009 - 04:17

ou isNumeric, caso o valor seja numero

Página 1 de 1
  • Novo tópico
  • Responder

1 usuário(s) está(ão) lendo este tópico
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)