Ir para conteúdo

POWERED BY:

Arquivado

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

Higor Oliveira

Type mismatch

Recommended Posts

Salve galera.

 

Estou com um erro bobo, acho que de tanto olhar fiquei cedo, por isso peço a ajudar de vcs...

 

Estou criando um sistema para um consultório odontológico e o problema está na baixa de mensalidade, tem uma outra página com o mesmo erro:

 

Microsoft VBScript runtime error '800a000d'

Type mismatch: 'spu_BaixaPagamentoMensalidade'

/dev/consultorio/baixaMensalidade.asp, line 0

 

Abaixo o cod da página:

 

<!--#Include File = "dbConexao.inc" -->
<!--#Include File = "adovbs.inc" -->
<% Response.charset = "utf-8" %>
<%
Dim MensalidadeID, PacienteID, Valor, Multa, TipoPagamento, Tipo, Obs, Usuario, strSQL, vSQL, oRS

MensalidadeID = Request("txtCod")
PacienteID = Request("txtPacienteID")
Valor = Request("txtValor")
Multa = Request("txtMulta")
TipoPagamento = Request("txtTipoPagamento")
Tipo = Request("optMulta")
Obs = Request("txtObs")
Usuario = "Sistema" 'Session("Logado")

	vSQL = "sps_ValidaBaixaMensalidade '" & PacienteID & "', '" & MensalidadeID & "'"
	AbreConexao dbConn
	Set oRS = dbConn.Execute(vSQL)
	'Response.Write(vSQL)
	'Response.end
	
		If oRS.EOF Then '--1
		  If Tipo = "1" Then '--2
			strSQL = "spu_BaixaPagamentoMensalidade '" & MensalidadeID & "', '" & PacienteID & "', '" & REPLACE(Valor,",",".") & "', '" & 0 & "', '" & TipoPagamento & "', '" & Obs & "', '" & Usuario & "', '" & 1 & "'"
			'Response.Write(strSQL)
			'Response.end
			Execute(strSQL)
			dbConn.Execute(strSQL)
		  Else
		  	strSQL = "spu_BaixaPagamentoMensalidade '" & MensalidadeID & "', '" & PacienteID & "', '" & REPLACE(Valor,",",".") & "', '" & REPLACE(Multa,",",".") & "', '" & TipoPagamento & "', '" & Obs & "', '" & Usuario & "', '" & 2 & "'"
			'Response.Write(strSQL)
			'Response.end
			'AbreConexao dbConn
			Execute(strSQL)
			dbConn.Execute(strSQL)	
			%>
			<script language="javascript">
				alert("Baixa realidade com sucesso!");
				//window.close();
				//location.href = "cadastraAgenda.asp";
			</script>
            <%
		  End If '--2
		Else '--1
			%>
        	<script language="javascript">
				alert("Paciente possui mensalidades anteriores em aberto! Por favor, verifique.");
				//window.close();
				//location.href = "baixaPagtoMensalidade.asp?<% 'CodID = PacienteID %>";
			</script>
            <%
		End If
			%>

 

E se eu pegar os dados que passo para a procedure e rodar direto no sql, ele executa sem problemas. Já agredeço a atenção...

 

Valeeu!!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique se os campos estão com os tipos de campos corretos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parâmetros no sql

 

 

 @MensalidadeID SMALLINT,  
 @PacienteID SMALLINT,  
 @Valor FLOAT,  
 @Multa FLOAT,  
 @TipoPagamento SMALLINT,  
 @Obs NVARCHAR(100),  
 @Usuario VARCHAR(10),  
 @Tipo INT -- 1. S/ Multa -- 2. C/ Multa  

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse erro geralmente vem porque você tem uma sintaxe não otimizada que leva ASP para acreditar que você está tentando usar uma função como um array, ou uma string como uma função. Aqui estão alguns exemplos que fará com que esse erro:

 

<%
     dim foo (5)
     foo (0)
 
', ou
 
     foo
 
', ou
 
     var foo = "foo"
%>
 

 


No primeiro caso, parece que o código está tentando chamar um sub ou função chamada "foo" - ". Foo" quando VSBcript está esperando o código para Assign um valor para o primeiro elemento do array. O segundo exemplo parece uma tentativa de chamar a sub ou função chamada "foo", quando não existe tal função existe. O último método "empresta" a palavra-chave "var" de J / JavaScript. Declaração da variável não usa a palavra-chave "var" no VBScript.

 

Converta os dados antes de exibir

Compartilhar este post


Link para o post
Compartilhar em outros sites

Queria falar um palavrão kkkkk...

 

Depois de dias e dias sem mexer, achei o erro hoje:

 

Execute(strSQL)
dbConn.Execute(strSQL)

O problema é a linha do Execute, tirei ela e funcionou de boa, errinho besta... que também acontecia em outras páginas.

 

Agradeço as dicas galera.

Compartilhar este post


Link para o post
Compartilhar em outros sites

estava tentando executar duas vezes, na verdade este execute seria uma função. as o correto é usar o método execute do objeto connection ou o método open do recordset para executar uma SQL.

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.