Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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!!
spu_BaixaPagamentoMensalidade '1', '2', '70.00', '0', '1', 'teste', 'Sistema', '1'
verifique se os campos estão com os tipos de campos corretos
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
Faz um teste, mude o campo valor para decimal ex. 12,2
Mesmo alterando o erro persiste...
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
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.
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.
Post a response.write da SQL