• Viernes 8 de Noviembre de 2024, 13:48

Autor Tema:  Como Puedo Chequear Una Cadena En Mysql  (Leído 3442 veces)

rodry

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Como Puedo Chequear Una Cadena En Mysql
« en: Viernes 10 de Noviembre de 2006, 08:47 »
0
Hola! Estoy aconstumbrado a trabajar en oracle, y me ha surgido el siguiente problema, ¿como puedo comprobar que el usuario me introduce datos coherentes? es decir, si tengo un campo que sea DNI como puedo comprobar que sea un número y una letra, y que no me deje introducir una entrada que sea por ejemplo "98b7877". Por lo que llevo leído, y comprobado, no funciona la clausula check y a mi no se me ocurre otra forma. Gracias por adelantado!! un saludo!!

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Como Puedo Chequear Una Cadena En Mysql
« Respuesta #1 en: Viernes 10 de Noviembre de 2006, 10:33 »
0
puedes poner un ejemplo mas claro?

no capto  :rolleyes:

que es un DNI como el RFC ?
no haces validaciones con algun lenguaje?
cuales un DNI valido?
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

rodry

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: Como Puedo Chequear Una Cadena En Mysql
« Respuesta #2 en: Viernes 10 de Noviembre de 2006, 13:48 »
0
A lo mejor no me he expresado con demasiado claridad, pongo un ejemplo más claro, imaginate que tengo una tabla PERSONA, que tiene el campo direccionMail y que quiero que se ajuste al esquema tipico (algo@algo.algo), eso es lo que quiero que me garantice la base de datos. Es decir que en ningun caso la base de datos admita la siguiente cadena como dirección email  "rodry".
Si que hago comprobaciones con otro lenguaje, pero como es para un Proyecto Fin de Carrera, me gustaría que la propoia base de datos me lo garantizara. Espero haberme expresado mejor. Gracias por las molestias! un saludo!!

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Como Puedo Chequear Una Cadena En Mysql
« Respuesta #3 en: Viernes 10 de Noviembre de 2006, 14:04 »
0
Citar
Si que hago comprobaciones con otro lenguaje, pero como es para un Proyecto Fin de Carrera,
Pero si ya las tenej, entonces no hay que hacer nada mas, solo usar las comprobaciones que tenej en tu lenguaje.

Ademas es mejor hacerlo desde un lenguaje y no en la BD(no se si se puede), por que supongamos que estaj haciendo una gran insercion y al insertarlo te niega por eso de la comprobacion.  resultado tiempo perdido en enviar la consulta y devolver el error.

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Como Puedo Chequear Una Cadena En Mysql
« Respuesta #4 en: Sábado 11 de Noviembre de 2006, 09:47 »
0
pues veras....


creo que lecho tiene razon al fin de cuenta la forma en que ingresen datos a la base de datos es a traves de tu interfaz no? ademas mysql (en mi experiencia) no es 'muy bueno' en eso de las 'restricciones' y realmente la instruccion check no funciona parece que es para versiones futuras....

y como dice aca mi compadre lencho seria tiempo en enviar a ejecutar una sentencia y que sea la bd la que la rechace



Saludos  :hola:
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Como Puedo Chequear Una Cadena En Mysql
« Respuesta #5 en: Sábado 11 de Noviembre de 2006, 13:58 »
0
Cita de: "F_Tanori"
que es un DNI como el RFC ?

"Documento Nacional de Identidad"

Citar
¿como puedo comprobar que el usuario me introduce datos coherentes?

Si sigues con la idea de hacer tu validación el la DB puedes utilizar procedimientos almacenados, "triggers" (No se si se escribe así).

Saludos
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Como Puedo Chequear Una Cadena En Mysql
« Respuesta #6 en: Sábado 11 de Noviembre de 2006, 22:11 »
0
Cita de: "Angel_K_ido"
Cita de: "F_Tanori"
que es un DNI como el RFC ?

"Documento Nacional de Identidad"

Gracias

Cita de: "Angel_K_ido"
Citar
¿como puedo comprobar que el usuario me introduce datos coherentes?

Si sigues con la idea de hacer tu validación el la DB puedes utilizar procedimientos almacenados, "triggers" (No se si se escribe así).

Saludos


Bien eso de los procedimientos almacenados es apartir de la version 4.1.12 pero funcionan bien hasta la 5 al igual que los Triggers (v5)  y no es una validacion en la estructura de la tabla, como pudiera ser Check en Sybase o en Oracle

Lo que harias en este caso seria crear un procedimiento que Guarde los datos segun las validaciones establecidas en el mismo, y desde el lenguaje de programacion Ejecutar el procedimiento almacenado (en teoria mucho mas rapido, y menos errores) igual que si validaras con un lenguaje, pero si haces una insercion 'por fuera' sin hacerlo a traves del procedimiento la tabla te permitiera introducir datos

Lo que quiere rodry segun entiendo es EVITAR a toda costa que se introduzca un dato no valido segun una 'regla' establecida por él en la definicion de la tabla, una especie de 'mascara'

Creo que es una opcion, pero no cumple al 100% lo que se desea

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

rodry

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: Como Puedo Chequear Una Cadena En Mysql
« Respuesta #7 en: Domingo 12 de Noviembre de 2006, 16:46 »
0
Gracias a todos! Al final haré lo que me habeis dicho de coformarme con las comprobaciones en el código del programa. 1Saludo! y gracias otras vez!

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Como Puedo Chequear Una Cadena En Mysql
« Respuesta #8 en: Domingo 12 de Noviembre de 2006, 17:08 »
0
Citar
si haces una insercion 'por fuera' sin hacerlo a traves del procedimiento la tabla te permitiera introducir datos
Si creas un triggers para el evento UPDATE puedes impedir siempre la inserción de un valor incorrecto cualquiera sea el origen de la sentencia sql. Ahora sí, no se como sería la comunicación de estos triggers con los lenguajes de programación, es decir, no sé como se enteraría el programa si un dato no es admitido para pedirle al usuario que ingrese el valor en la forma correcta.

Saludos
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Como Puedo Chequear Una Cadena En Mysql
« Respuesta #9 en: Domingo 12 de Noviembre de 2006, 21:10 »
0
puedes poner un ejemplo? de ese trigger


 :rolleyes:
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Como Puedo Chequear Una Cadena En Mysql
« Respuesta #10 en: Lunes 13 de Noviembre de 2006, 05:39 »
0
En algún lado tengo un ejercicio de la facu hecho en SQLServer, supongo que es igual. Lo busco y lo posteo.
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.