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

Erro Ao Gravar Ip


rcnery

Pergunta

Pessoal,

To fazendo um sistema de votação que a pessoa só pode votar uma vez por dia verificando o enderço ip e gravando o mesmo em um bd por 1 dia.

O problema é que estou recebendo a seguinte mensagem e não consegui resolver.

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

/galeria/ipvoto.asp, line 39

Código.

<!--#include virtual="../adm/openbanco.asp"-->

<%

Dim ipvoto

Dim votoid

Dim ipdata

Dim data

votoid = 0

ipvoto = Request.ServerVariables("REMOTE_ADDR")

data = date

Set RS = Server.CreateObject("ADODB.Recordset")

RS.ActiveConnection = Con

RS.Open "Select * FROM ipvoto WHERE ipidvoto = "& votoid & " "

WHILE not RS.EOF

ipdata = RS ("ipdata")

varDiferenca = datediff("d",ipdata,data)

IF varDiferenca < 1 THEN

sqlString = "delete * from ipvoto where ipdata = '"& data & "' "

Con.Execute sqlString

ELSE

sqlString = "Select * from ipvoto where ipvotou = "& ipvoto & " "

Con.Execute sqlString

IF sqlString <> "" THEN

Response.Write " Você já votou nessa foto hoje, por favor retorne amanhã."

END IF

RS.MoveNext

END IF

WEND

%>

<%=ipvoto%><br>

<%=data%><br>

<%=votoid%><br>

<%

' Add New IP

sqlString = "INSERT INTO ipvoto " &_

"(ipvotou, ipidvoto, ipdata ) VALUES (" &_

"'" & ipvoto &"', "&_

"'" & votoid &"', "&_

"'" & data &"')"

Con.Execute sqlString

%>

O BD esta assim

ipvotou - Texto já tentei com numero e tb deu erro.

ipidvoto - Numero já tentei com texto e nada

ipdata - Data/hora unico que não auterei.

Obrigado por me ajudarem.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
Pessoal,

To fazendo um sistema de votação que a pessoa só pode votar uma vez por dia verificando o enderço ip e gravando o mesmo em um bd por 1 dia.

O problema é que estou recebendo a seguinte mensagem e não consegui resolver.

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

/galeria/ipvoto.asp, line 39

Código.

<!--#include virtual="../adm/openbanco.asp"-->

<%

Dim ipvoto

Dim votoid

Dim ipdata

Dim data

votoid = 0

ipvoto = Request.ServerVariables("REMOTE_ADDR")

data = date

Set RS = Server.CreateObject("ADODB.Recordset")

RS.ActiveConnection = Con

RS.Open "Select * FROM ipvoto WHERE ipidvoto = "& votoid & " "

WHILE not RS.EOF

ipdata = RS ("ipdata")

varDiferenca = datediff("d",ipdata,data)

IF varDiferenca < 1 THEN

sqlString = "delete * from ipvoto where ipdata = '"& data & "' "

Con.Execute sqlString

ELSE

sqlString = "Select * from ipvoto where ipvotou = "& ipvoto & " "

Con.Execute sqlString

IF sqlString <> "" THEN

Response.Write " Você já votou nessa foto hoje, por favor retorne amanhã."

END IF

RS.MoveNext

END IF

WEND

%>

<%=ipvoto%><br>

<%=data%><br>

<%=votoid%><br>

<%

' Add New IP

sqlString = "INSERT INTO ipvoto " &_

"(ipvotou, ipidvoto, ipdata ) VALUES (" &_

"'" & ipvoto &"', "&_

"'" & votoid &"', "&_

"'" & data &"')"

Con.Execute sqlString

%>

O BD esta assim

ipvotou - Texto já tentei com numero e tb deu erro.

ipidvoto - Numero já tentei com texto e nada

ipdata - Data/hora unico que não auterei.

Obrigado por me ajudarem.

Brother!!

Algo interessante, qual banco de dados esta usando e qual formato da data que esta tentando se inserir os dados ?

Experimente ultilizar no seu código 'Session.LCID = 1046' para transformar sua data no formato brasileiro (11/01/2004) e inserir-la no seu banco de dados.

Espero que lhe ajude...

Abraços!!!

[urso]

Link para o comentário
Compartilhar em outros sites

  • 0

Urso

Resolvi o problema alterando o código para esse aqui.

Pode fechar o tópico.

Valeu pela ajuda.

Ricardo

<!--#include virtual="../adm/openbanco.asp"-->

<%Session.LCID=1046

votoid = cINT ("2")

ipvoto = Request.ServerVariables("REMOTE_ADDR")

mdata = date

Set RS = Server.CreateObject("ADODB.Recordset")

RS.ActiveConnection = Con

Sql = "delete * from ipvoto where (#"&mdata&"#-ipdata)<>0"

Con.Execute Sql

RS.Open "Select * FROM ipvoto WHERE ipvotou = '"& ipvoto & "' "

While not RS.EOF

ipidvoto = cInt (RS ("ipidvoto"))%>

<%=ipidvoto%> <br>

<%=votoid%><br>

<%

IF ipidvoto = votoid THEN

Response.Redirect("../webroom.asp?showpage=galeria")

END IF

RS.MOVENEXT

WEND%>

<%= ipvoto %> <br>

<%= votoid %> <br>

<%= mdata %> <br>

<%

' Add New IP

sqlString = "INSERT INTO ipvoto " &_

"( ipvotou, ipidvoto, ipdata ) VALUES (" &_

"'" & ipvoto &"', "&_

"'" & votoid &"', "&_

"'" & mdata &"')"

Con.Execute sqlString

%>

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,4k
    • Posts
      652,3k
×
×
  • Criar Novo...