Foros del Web » Programando para Internet » ASP Clásico »

Saber Si Un Campo Es Un Email Urgentisimooooo

Estas en el tema de Saber Si Un Campo Es Un Email Urgentisimooooo en el foro de ASP Clásico en Foros del Web. Esto no es lo tipico hacerca de validar campos en un form, lo que quiero saber es como hacer una consulta SQL para que muestre ...
  #1 (permalink)  
Antiguo 30/01/2003, 11:16
Avatar de deprabado  
Fecha de Ingreso: febrero-2002
Mensajes: 649
Antigüedad: 22 años, 3 meses
Puntos: 0
Exclamación Saber Si Un Campo Es Un Email Urgentisimooooo

Esto no es lo tipico hacerca de validar campos en un form, lo que quiero saber es como hacer una consulta SQL para que muestre los registros que no son emails, es decir tengo una bd done uno ede los campos es email, ya la tabla es larga cerca de 5000 registros, al ser una informacion que extraje de una base de datos anterior la cual no es muy confiable necesito saber que registros no son emails para borrarlos o modificarlos, hay alguna manera de hacerlo????

Muchas gracias por tomarse la molestia de leer este post.
  #2 (permalink)  
Antiguo 30/01/2003, 11:41
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 4 meses
Puntos: 5
Esta pequeña funcion la hice para comprobar la validez de correos electronicos, en la ultima parte del correo solo valido que sea un campo de 2 a 6 caracteres despues del punto, para que pueda validar TLD's como .info .cl .museum etc...

Código:
	Dim miXR, malMail
	set miXR = new RegExp
	miXR.Global =True
	miXR.Pattern = ("(^[\w\.]{1,})@([\w\.]{1,})\.([a-z,A-Z]{2,6})$")
	If Not miXR.Test (request.form("email")) Then
  		malMail="si"
	End If
Lo unico que debes hacer es checar si malMail="si", entonces quiere decir que el mail esta incorrecto.


Saludos
__________________
Manoloweb
  #3 (permalink)  
Antiguo 30/01/2003, 12:00
Avatar de deprabado  
Fecha de Ingreso: febrero-2002
Mensajes: 649
Antigüedad: 22 años, 3 meses
Puntos: 0
gracias, yo ya tengo una funcion que me valida los emails, lo que queria hacer era ver como podria comprobar si un registro existente en mi bd era un email desde SQL, supongo que tendre que ingeniarmelas para aplicar una funcion parecida a cada registro e imprimir los que no lo son, gracias, si alguin sabe como se podria hacer desde sql lo agradeceria muchooo
  #4 (permalink)  
Antiguo 30/01/2003, 15:00
Avatar de Jorge_Mota  
Fecha de Ingreso: diciembre-2002
Ubicación: Chapinlandia :-D
Mensajes: 725
Antigüedad: 21 años, 6 meses
Puntos: 11
podrias hacer algo asi como esto


select * from tabla where campo not like "%@%"

de esta manera te obtendra los registros que no tienen una @ dentro del contenido del campo (en ese caso no serian emails validos), pero habria que ver otras posibles causas para que no
sea email valido.


la otra seria hacer un programa que agarre el valor de cada registro para email, y le pases la rutina que ya tienes para verificar si es o no emal valido.

si tuvieras una funcion que se llama Valida_email en sql server 2000
podrias hacer que retorne 1 si es valida y 0 si no lo es.
y hacer otra, digamos que haga

select * from tabla where dbo.funcion(campoemail)=0
__________________
Jorge Mota
Blog
Gubiz estafa
  #5 (permalink)  
Antiguo 30/01/2003, 15:23
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 4 meses
Puntos: 5
Checa si SQL no tiene una funcion de REGEXP como la tiene mySQL, es posible que eso pueda ayudarte...

O bien exporta tu tabla de SQL a mySQL y aplicale ahi REGEXP y luego la exportas de nuevo...


Saludos
__________________
Manoloweb
  #6 (permalink)  
Antiguo 31/01/2003, 06:13
Avatar de deprabado  
Fecha de Ingreso: febrero-2002
Mensajes: 649
Antigüedad: 22 años, 3 meses
Puntos: 0
creo que voya usar la solucion de Jorge_Mota, me parece mas facil, aunque tendria que arreglarmelas para usar otros criterios, si alguien sabe si SQL tiene algo asi como expreciones regulares se lo agradesco, me costaria demasiado exportar de sql a mysql.

Gracias por sus sugerencias vere que hago y les aviso
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:11.