Otro problema con SQL

05/03/2007 - 21:52 por Sergio Wiñar | Informe spam
Estimados,

Tengo el siguiente problema y no se a que puede responder.

Si en el string del SQL pongo esto:
SQL_Emails = "SELECT * FROM Emails WHERE id = '"+oEmail_ID+"' AND
DestinatarioEmail = '"+oEmail_para+"' "

Obtengo un error

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria
expression.

En cambio, si lo pongo asi no
SQL_Emails = "SELECT * FROM Emails WHERE id LIKE '%"+oEmail_ID+"%' AND
DestinatarioEmail LIKE '%"+oEmail_para+"%' "

De esta manera estoy conectando con la bbddd

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.ConnectionString = "DSN=pepe"
Conn.Open

set RS_Emails = createobject("ADODB.Recordset")
SQL_Emails = "SELECT * FROM Emails WHERE id LIKE '%"+oEmail_ID+"%' AND
DestinatarioEmail LIKE '%"+oEmail_para+"%' "
RS_Emails.Open SQL_Emails,Conn,1,2

Muchas gracias de antemano
Sergio Wiñar
 

Leer las respuestas

#1 Dani Castillo
06/03/2007 - 08:54 | Informe spam
Que tipos de datos tienes
el id suena a numerico , si es asi elimina las comillas
SQL_Emails = "SELECT * FROM Emails WHERE id = "+oEmail_ID+" AND
DestinatarioEmail = '"+oEmail_para+"' "

Si es texto (y destinatarioemail tambien) prueba por si acaso a parentizar
SQL_Emails = "SELECT * FROM Emails WHERE (id = '"+oEmail_ID+"' )AND
(DestinatarioEmail = '"+oEmail_para+"') "


en estas cosas es muy conveniente tambien asegurarte del control de nulos
tambien, usa mejor & en lugar de + para concatenar, aunq no parece q sea el
problema
_____________________
Dani
_____________________
"Sergio Wiñar" escribió en el mensaje
news:#
Estimados,

Tengo el siguiente problema y no se a que puede responder.

Si en el string del SQL pongo esto:
SQL_Emails = "SELECT * FROM Emails WHERE id = '"+oEmail_ID+"' AND
DestinatarioEmail = '"+oEmail_para+"' "

Obtengo un error

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria
expression.

En cambio, si lo pongo asi no
SQL_Emails = "SELECT * FROM Emails WHERE id LIKE '%"+oEmail_ID+"%' AND
DestinatarioEmail LIKE '%"+oEmail_para+"%' "

De esta manera estoy conectando con la bbddd

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.ConnectionString = "DSN=pepe"
Conn.Open

set RS_Emails = createobject("ADODB.Recordset")
SQL_Emails = "SELECT * FROM Emails WHERE id LIKE '%"+oEmail_ID+"%' AND
DestinatarioEmail LIKE '%"+oEmail_para+"%' "
RS_Emails.Open SQL_Emails,Conn,1,2

Muchas gracias de antemano
Sergio Wiñar


Preguntas similares