Ir para conteúdo

POWERED BY:

Arquivado

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

ernestovm

[Resolvido] Problemas com Função

Recommended Posts

Caros Amigos,

Estou com um problema há dias e só posso prosseguir com o projeto quando resolver.

Alguém poderia dar uma olhada se encontra o problrma?

Agradeço.

 

Tenho a seguinte função em ASP que fica no arquivo Config.asp que é incluíso em todas as páginas do site.

 

Function Dicionario(Registro)
Set InsDi = Server.CreateObject("ADODB.Recordset")
	InsDi.CursorLocation = adUseServer
	InsDi.CursorType = adOpenKeyset
	InsDi.LockType = adLockOptimistic
	InsDi.Open "TB_DICIONARIO WHERE ID_OBJETO="&Registro, Banco, , , adCmdTable
	if Session("idioma") = "POR" then
	   Conteudo = Replace(Trim(InsDi("PORTUGUES")),vbCrLf,"<br>")
	elseif Session("idioma") = "ING" then
	   Conteudo = Replace(Trim(InsDi("INGLES")),vbCrLf,"<br>")
	elseif Session("idioma") = "ESP" then
	   Conteudo = Replace(Trim(InsDi("ESPANHOL")),vbCrLf,"<br>")
	end if
	InsDi.Close
Set InsDi = Nothing
Response.Write(Conteudo)
End Function

Nas demais páginas.ASP eu faço, por exemplo:

 

VarErro = Dicionario(35)

 

Onde 35 é o código do erro na minha tabela de dicionário.

Acontece que VarErro não recebe nada. Se eu fizer:

 

<%=Dicionario(35)%>

 

O conteúdo é impresso. Alguém consegue ver o problema?

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No corpo das páginas.

Como Exemplo posso citar a página de Contato.asp que ao criticar cada campo recebido pega a descrição do erro no dicionário, assim:

 

if VarNome = "" then

VarErro = Dicionario(35)

elseif VarEmail = "" then

VarErro = Dicionario(36)

end if

 

Veja que lá no Dicionário o registro 35 é "Você deve informar o seu Nome!" e o 36 é "Você deve informar o seu e-mail!"

E no início da tabela do formulário tem uma linha que contém

<%=VarErro%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Varerro não recebe nada porque sua função não retorna nada, ela só imprime na tela (response.write).

 

Para fazer ela retornar algo, no final de sua função, você tem que escrever:

 

Dicionario = Conteudo

 

Como dicionário é o nome da função, ela vai retornar esse valor.

 

Function Dicionario(Registro)
Set InsDi = Server.CreateObject("ADODB.Recordset")
	InsDi.CursorLocation = adUseServer
	InsDi.CursorType = adOpenKeyset
	InsDi.LockType = adLockOptimistic
	InsDi.Open "TB_DICIONARIO WHERE ID_OBJETO="&Registro, Banco, , , adCmdTable
	if Session("idioma") = "POR" then
	   Conteudo = Replace(Trim(InsDi("PORTUGUES")),vbCrLf,"<br>")
	elseif Session("idioma") = "ING" then
	   Conteudo = Replace(Trim(InsDi("INGLES")),vbCrLf,"<br>")
	elseif Session("idioma") = "ESP" then
	   Conteudo = Replace(Trim(InsDi("ESPANHOL")),vbCrLf,"<br>")
	end if
	InsDi.Close
	Set InsDi = Nothing
	Dicionario = Conteudo
End Function

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.