Ir para conteúdo
Fórum Script Brasil
  • 0

Sql Erro


[ GuTo ]

Pergunta

tem algum erro nesta sql, não keria pedir ajuda, mas já faz um mês q eu procuro o erro não sei direito... me ajudem... por favorrrr ;) ;) ;) ;)

aki só a sql:

sql="INSERT INTO membros (sexo,apelido,nome,nascimento,e_civil,cidade,uf,icq,MSN,yahoo,email,homepage,celular,telefone,sobre,titulo,nivel,senha,login,expedicao) "
sql=sql&"VALUES("&sexo&",'"&apelido&"','"&nome&"','"&nascimento&"',"&e_civil&",'"&cidade&"','"&uf&"',"&icq&",'"&MSN&"','"&yahoo&"','"&email&"','"&homepage&"',"&celular&","&telefone&",'"&sobre&"','"&titulo&"',"&nivel&",'"&senha&"','"&login&"','"&expedicao&"')"
Agora o erro
Microsoft JET Database Engine erro '80040e07' Tipo de dados imcompatível na expressão de critério. /sitesdoguto/adduser.asp, line 60
Agora pros interessados, o código todo...
<html>
<head>
<title>Chat Canoas</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="styles.css" rel=stylesheet type=text/css>
<link href="favicon.ico" rel="shortcut icon">
</head>

<body topmargin="0">

<%
dim ErroMsg
if Request.Form("sexo") <> "" then 
    if (Request.Form("apelido") <> "") and (Request.Form("email") <> "") then
  %>
  <%
  dim db, dsn, sql, rs
  dim sexo,apelido,nome,nascimento,e_civil,cidade,uf,icq,MSN,yahoo,email,homepage,celular,telefone,sobre,titulo,nivel,senha,login,expedicao
  
  set db = server.createobject("adodb.connection")
  dsn="provider=microsoft.jet.oledb.4.0;data source="& server.mappath("dados.mdb")
  db.Open dsn
  
  'Replacing
  If(Request.Form("sexo") = "H") then sexo = 1 else sexo = 0
  
  apelido = trim(request.form("apelido"))
  nome = trim(request.form("nome"))
      nasc_dia = trim(request.form("nasc_dia"))
      nasc_mes = trim(request.form("nasc_mes"))
      nasc_ano = trim(request.form("nasc_ano"))
    nascimento = nasc_dia&"/"&nasc_mes&"/"&nasc_ano
  e_civil = trim(request.form("e_civil"))
  cidade = trim(request.form("cidade"))
  uf = trim(request.form("uf"))
  icq = trim(request.form("icq"))
  MSN = trim(Lcase(request.form("MSN")))
  yahoo = trim(Lcase(request.form("yahoo")))
  email = trim(Lcase(request.form("email")))
  homepage = trim(Lcase(request.form("homepage")))
      cel_ddd = trim(request.form("cel_ddd"))
      cel_num = trim(request.form("cel_num"))
    celular = cel_ddd & cel_num
      fone_ddd = trim(request.form("fone_ddd"))
      fone_num = trim(request.form("fone_num"))
    telefone = fone_ddd & fone_num
  sobre = trim(request.form("sobre"))
  titulo = trim(request.form("titulo"))
  nivel = "1"
  senha = trim(Lcase(request.form("senha")))
  login = now
  expedicao = now
  
  sql = "SELECT * FROM membros WHERE email='"&email&"' AND senha='"&senha&"'"
  set rs = db.execute(sql)
  
        if rs.eof then 'Novo membro, porque se chegar ateh o fim não existe
sql="INSERT INTO membros (sexo,apelido,nome,nascimento,e_civil,cidade,uf,icq,MSN,yahoo,email,homepage,celular,telefone,sobre,titulo,nivel,senha,login,expedicao) "
sql=sql&"VALUES("&sexo&",'"&apelido&"','"&nome&"','"&nascimento&"',"&e_civil&",'"&cidade&"','"&uf&"',"&icq&",'"&MSN&"','"&yahoo&"','"&email&"','"&homepage&"',"&celular&","&telefone&",'"&sobre&"','"&titulo&"',"&nivel&",'"&senha&"','"&login&"','"&expedicao&"')" 
       db.execute(sql)
       response.write("<p align=center><font face=Verdana size=4 class=cor2><b>Cadastro efetuado com sucesso!</b></font><br>Aguarde confirmação.</p><p>&nbsp;</p><div align=center><a href=http://www.chatcanoas.pop.com.br/main.htm>Clique aqui para continuar</a></div>")
        elseif (rs("senha") = senha) then 'Atualizacao de cadastro
       sql = "update membros set " & _
        "apelido = '" & apelido & "'," & _
        "idade = '" & Idade & "'," & _
        "icq = '" & icq & "'," & _
        "email = '" & email & "'," & _
        "sobre = '" & sobre & "'" & _
        " where id = " & rs(("id"))
       db.execute(sql)
       response.write("<h3 align=center>Atualização efetuada com sucesso!</h3>")
        else 'Senha incorreta
       ErroMsg = "<p align=center><font face=Verdana size=4><b>Atualização cancelada.</b></font><br><font size=2 class=cor2>Senha incorreta.</font></p>"
       Erro
        end if
  
  db.close
  set db = nothing
  %>
  
  <%  else %>
  <%
  ErroMsg = "Os dados não foram completados conforme necessitado...<br>" & _
      "Certifique-se de que preencheu os campos <font class=cor2>Apelido</font> e <font class=cor2>E-mail</font>."
  Erro
  %>
  <% end if %>
<%else%>
<p align="center"><font face="Verdana" size="4"><b> 
<script language="JavaScript">
// Texto
var message="Área restrita!"
// Cor do texto apagado
var neonbasecolor="#666666"
// Cor do texto aceso
var neontextcolor="#FF0000"
// Velocidade do efeito
var flashspeed=100  //in milliseconds
///No need to edit below this line/////
var n=0
if (document.all){
document.write('<font color="'+neonbasecolor+'">')
for (m=0;m<message.length;m++)
document.write('<font id="neonlight">'+message.charAt(m)+'</font>')
document.write('</font>')
//cache reference to neonlight array
var tempref=document.all.neonlight
}
else
document.write(message)

function neon(){

//Change all letters to base color
if (n==0){
for (m=0;m<message.length;m++)
tempref[m].style.color=neonbasecolor
}

//cycle through and change individual letters to neon color
tempref[n].style.color=neontextcolor

if (n<tempref.length-1)
n++
else{
n=0
clearInterval(flashing)
setTimeout("beginneon()",1500)
return
}
}

function beginneon(){
if (document.all)
flashing=setInterval("neon()",flashspeed)
}
beginneon()


</script>
</b></font></p>
<p align="center"><a href="contato.asp">Clique aqui para se cadastrar</a><br>
ou<br>
<a href="javascript:history.back()"><img src="icons/seta_left.gif" width="10" height="9" border="0">Clique aqui para voltar.</a>
</p><%end if %>

<%Sub Erro() %>

<H3 align=center><%=ErroMsg %></H3>

<%end sub %>

</body>
</html>

Se alguém quiser ver o form pra cadastro, é só clicar aki

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Brother!!

Pode ser, não sei ao certo, mas acho que você esta tentando inserir dados de um tipo que não é compativel com o banco de dados, por exemplo:

Campo Telefone, Tipo: Numero

você está tentando inserir dados do tipo Texto(string)

Consegue entender ?

Dá uma olhadinha e ultilize alguns conversores (CInt, CStr, etc..) em suas variaveis antes de inserir no seu banco de dados.

Abraços!!!

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - [webmaster]® -

mas pra q servem estes conversores?

(CInt, CStr, etc..)

não sei as funções deles.

e quanto a isso de string / numero / inteiro... poderiam me explicar?

pelo q eu sei, quando é numero o campo, não tem as aspas simples, ficando assim:

"&variavel&"

e quando for string, com numeros e letras e outros caracteres, tem as aspas simples

ficando assim:

'"&variavel&"'

desde já agradeço

obs.: tava na casa dum amigo, por isso não loguei-me! :lol:

Link para o comentário
Compartilhar em outros sites

  • 0

Ok galera, fui no site superasp.com.br para ver pra q serve o Cint e Cstr, tudo ok!

Agora vejam como declarei minhas váriaveis, eu dei uma pequena descrição de cada uma para que entendam direitinho, qlqr coisa me corrijam.

Ah, os únicos campos da tabela q são do tipo NÚMERO, são os do TELEFONE e CELULAR. ;)

 apelido = trim(request.form("apelido")) ' apelido do cliente, ex.: GuTo
  nome = trim(request.form("nome")) ' nome do cliente, ex.: Antonio Augusto
      nasc_dia = trim(request.form("nasc_dia")) ' data do dia do nascimento, ex.: 25
      nasc_mes = trim(request.form("nasc_mes")) ' data do mes do nascimento, ex.: 05
      nasc_ano = trim(request.form("nasc_ano")) ' data do ano do nascimento, ex.: 1985
    nascimento = nasc_dia&"/"&nasc_mes&"/"&nasc_ano ' pega as três variáveis passadas, ex.: 25/05/1985
  e_civil = trim(request.form("e_civil")) ' estado civil do cliente, de 1 a 6 - tipo do campo é texto
  cidade = trim(request.form("cidade")) ' cidade do cliente, ex.: Porto Alegre
  uf = trim(request.form("uf")) ' estado do cliente, ex.: RS
  icq = trim(request.form("icq")) ' UIN do ICQ do cliente, ex: 322840175
  MSN = trim(Lcase(request.form("MSN"))) ' endereço do messenger, ex.: guto@hotmail.com
  yahoo = trim(Lcase(request.form("yahoo"))) ' endereço do yahoo messenger, ex.: guto@yahoo.com.br
  email = trim(Lcase(request.form("email"))) ' e-mail do cliente, ex.: guto@terra.com.br
  homepage = trim(Lcase(request.form("homepage"))) ' endereço do site do membro, ex.: www.sitedocliente.com
      cel_ddd = Cint(request.form("cel_ddd")) ' DDD do estado do celular do cliente, ex.: 51
      cel_num = Cint(request.form("cel_num")) ' número do telefone celular do cliente, ex: 98765432
    celular = cel_ddd & cel_num ' pega as duas variáveis passadas, ex: 5198765432
      fone_ddd = Cint(request.form("fone_ddd")) ' DDD do estado do telefone fixo do cliente, ex.: 51
      fone_num = Cint(request.form("fone_num")) ' número do telefone fixo do cliente, ex.: 4761078
    telefone = fone_ddd & fone_num ' pega as duas variáveis passadas, ex: 514761078
  sobre = trim(request.form("sobre")) ' descricao fisica/psicologica do cliente, algo sobre ele e etc.
  titulo = trim(request.form("titulo")) ' pequeno texto de 20 caracteres que aparecerá embaixo do apelido do cliente no fórum
  nivel = 1 ' nivel do cliente é igual a 1 que é NOVATO!
  senha = trim(Lcase(request.form("senha"))) ' senha do cliente, para ajustes futuros e segurança, login, etc.
  login = now ' quando realizar o cadastro, será como se tivesse se logado. Então insere a data e hora completa de agora na tabela. Ex.: 20/10/2000
  expedicao = now ' quando realizar o cadastro, será inserido a data e hora completa de agora na tabela, como a data de REGISTRO. Ex.: 20/10/2000

Assim como o código está, é exibido este erro:

Erro de tempo de execução do Microsoft VBScript erro '800a0006'

Estouro: 'Cint'

/sitesdoguto/adduser.asp, line 44

Se refere a linha do cel_num = Cint(request.form("cel_num"))

Link para o comentário
Compartilhar em outros sites

  • 0

Pôxa, por favor ae, me dêem uma ajuda... depois disso eu poderei compreender melhor esta parte.

Eu já estou a um tempão tentando solucionar isso! :(

Link para o comentário
Compartilhar em outros sites

  • 0
Guest David Santana Rodrigues

Cara,

Tente colocar os campos ICQ, TELEFONE e CELULAR do tipo string, porque se o usuario digitar um um telefone no formato 9999-9999 ocorrerá este erro porque o telefone neste formato é uma string e o campo é numero e o ICQ a mesma coisa, porque o usuario pode digitar um icq q não existe ai vai ocorrer este erro.

Link para o comentário
Compartilhar em outros sites

  • 0

Mas o erro que está dando é por causa disso mesmo. Voce quer colocar string onde o banco de dados esta configurado para receber números ou quer colocar números onde o banco de dados está configurado para receber string.

Vej com calma no banco, campo por campo, o que cada um está configurado para receber, e se está recebendo corretamente. Sendo string, coloque as aspas simples. números, sem aspas simples.

[]'s

Nelson Soares

http://www.ondagospel.com.br

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...