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

Campo Numérico No Bd E Texto Na Query


renatacm

Pergunta

Oi, pessoal!!!

Tudo bem Com vocês?

Antes de mais nada, gostaria de desejar um Feliz Natal e um Próspero 2005 para todo mundo!!!

Mas, agora, vamos às vacas frias:

No banco de dados tenho um campo chamado código que stá definido como numerico e na hora de montar a QUERY me dá dois erros, dependendo da situação.

user = CInt(request.form("user"))

pass = request.form("pass")

Situação 1

SQLClientes1="SELECT * FROM tab_Usuarios WHERE codigo='"&user&"' AND senha ='"&pass&"'"
Erro: Microsoft OLE DB Provider for ODBC Drivers (0x80040E07) [Microsoft][Driver ODBC para Microsoft Access] Tipo de dados imcompatível na expressão de critério. Situação 2 (Se tiro as aspas simples pra tentar passar a instrução como número):
SQLClientes1="SELECT * FROM tab_Usuarios WHERE codigo="&user&" AND senha ='"&pass&"'"

Erro: Erro de tempo de execução do Microsoft VBScript (0x800A01A8)

Objeto necessário: ''

Alguém sabe me dizer como eu faço pra passar que o conteúdo da variável é numérico pelo QUERY ?!?!

Obrigada desde já...

Bjocas... ;oÞ

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0

Sim, os erros ocorrem na mesma linha....

Sei que o problema é o tipo da variavel user...

no banco, o campo código é numérico e mesmo eu tendo colocado CINT(user), quando vou passar a instrução pela query (me corrija se eu estiver errada) e coloco ' ', ele entende que é CHAR e se não coloco ' ' ele entende que está faltando um parâmetro da instrução....

unsure.gif

Link para o comentário
Compartilhar em outros sites

  • 0

"brother" hiihihhi..

tipo.. não sei se em ASP é a mesma coisa

mais tenta separar as ASPAS e os & da variavel assim:

SQLClientes1="SELECT * FROM tab_Usuarios WHERE codigo='" & user & "' AND senha ='"  & pass & "'"

[]´s huh.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Segue:

<%
useraction = request("action")
SELECT CASE useraction
	CASE "login"
  user = CInt(request.form("user"))
  pass = request.form("pass")
  	
  SQLClientes1="SELECT * FROM tab_Usuarios WHERE codigo='" & user & "' AND senha ='" & pass & "'"
  SET RSClientes1 = Server.CreateObject("ADODB.Recordset")
  SET RSClientes1 = Conexao4.EXECUTE(SQLClientes1)
  
  IF RSCadastro.eof THEN
  	response.write "<script>alert('Código de Acesso ou senha não cadastrado(s).');</script>"
  ELSE
  	session("status") = "ok" 
  	response.redirect "clidown.asp"
  END IF
	END SELECT
%>

Link para o comentário
Compartilhar em outros sites

  • 0

Ops...

Desculpe...

Segue novamente:

<!---#include file="dados.asp"--->
<%
useraction = request("action")
SELECT CASE useraction
	CASE "login"
  user = CInt(request.form("user"))
  pass = request.form("pass")
  	
  SQLClientes1="SELECT * FROM tab_Usuarios WHERE codigo='" & user & "' AND senha ='" & pass & "'"
  SET RSClientes1 = Server.CreateObject("ADODB.Recordset")
  SET RSClientes1 = Conexao4.EXECUTE(SQLClientes1)
  
  IF RSCadastro.eof THEN
  	response.write "<script>alert('Código de Acesso ou senha não cadastrado(s).');</script>"
  ELSE
  	session("status") = "ok" 
  	response.redirect "clidown.asp"
  END IF
	END SELECT
%>

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Renata!!

Não sei bem como esta sua estrutura da tabela... mas vamos recordar...

'' para string (texto) e sem aspas para numeros (t-sql)!!!!

Se os campos da sua tabela estão como texto, CHAZAM!!!!

Aspas simples na consulta....

 SQLClientes1="SELECT * FROM tab_Usuarios WHERE codigo=" & user & " AND senha ='" & pass & "'"

Caso contrário, NO ASPAS!!!

Veja a estrutura da sua tabela, é, caso seja texto, experimente converter sua strings (CStr)

[]s

Link para o comentário
Compartilhar em outros sites

  • 0

Renata...como o urso disse, com o Access se não for string não tem como usar aspas. Como você mesmo postou o segundo erro é um erro de VBScript, ou seja, não é um erro no banco, então o erro está na construção da sintaxe. Agora, ela está aparentemente correta......esse objeto de conexão "Conexao4" realmente existe??Deve ser algum erro desse tipo....

Link para o comentário
Compartilhar em outros sites

  • 0

Eu acho q não é erro de conexão.

O OBJ Conexao4 foi criado no arquivo dados.asp e está ok...

set Conexao4= Server.CreateObject("ADODB.Connection")
ConnClientes = Server.MapPath("dados/clientes.mdb")
Conexao4.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&ConnClientes

Link para o comentário
Compartilhar em outros sites

  • 0

'Tinha'

<!---#include file="dados.asp"--->
<%
useraction = request("action")
SELECT CASE useraction
CASE "login"
 user = CInt(Trim(request("user")))
 pass = CStr(Trim(request("pass")))
  
 SQLClientes1="SELECT * FROM tab_Usuarios WHERE codigo=" & user & " AND senha ='" & pass & "'"
 SET RSClientes1 = Server.CreateObject("ADODB.Recordset")
 SET RSClientes1 = Conexao4.EXECUTE(SQLClientes1)

 IF RSClientes1.eof THEN
  response.write "<script>alert('Código de Acesso ou senha não cadastrado(s).');</script>"
 ELSE
  session("status") = "ok" 
  response.redirect "clidown.asp"
 END IF
END SELECT
%>

Experimenta aí..

Link para o comentário
Compartilhar em outros sites

  • 0

'Tinha'

<!---#include file="dados.asp"--->
<%
useraction = request("action")
SELECT CASE useraction
CASE "login"
 user = CInt(Trim(request("user")))
 pass = CStr(Trim(request("pass")))
  
 SQLClientes1="SELECT * FROM tab_Usuarios WHERE codigo=" & user & " AND senha ='" & pass & "'"
 SET RSClientes1 = Server.CreateObject("ADODB.Recordset")
 SET RSClientes1 = Conexao4.EXECUTE(SQLClientes1)

 IF RSClientes1.eof THEN
  response.write "<script>alert('Código de Acesso ou senha não cadastrado(s).');</script>"
 ELSE
  session("status") = "ok" 
  response.redirect "clidown.asp"
 END IF
END SELECT
%>

Experimenta aí..

Tipo de erro:

Erro de tempo de execução do Microsoft VBScript (0x800A000D)

Tipos incompatíveis: 'CInt'

/basis/clilogin.asp, line 6

Link para o comentário
Compartilhar em outros sites

  • 0

<!---#include file="dados.asp"--->
<%
useraction = request("action")
SELECT CASE useraction
CASE "login"
user = Trim(request("user"))
pass = CStr(Trim(request("pass")))

SQLClientes1="SELECT * FROM tab_Usuarios WHERE codigo=" & user & " AND senha ='" & pass & "'"
SET RSClientes1 = Server.CreateObject("ADODB.Recordset")
SET RSClientes1 = Conexao4.EXECUTE(SQLClientes1)

IF RSClientes1.eof THEN
 response.write "<script>alert('Código de Acesso ou senha não cadastrado(s).');</script>"
ELSE
 session("status") = "ok" 
 response.redirect "clidown.asp"
END IF
END SELECT
%>

Galera: deu certo!!! biggrin.gif

Obrigada URSO e a todos....

Bjocas... ;oÞ

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

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