FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Validación de Campos y TDBAdvEdit
Saludos a todos.
Tengo un problema con los componentes de la empresa TMS , en concreto con los TDBAdvEdits que estoy probando. Tengo las validaciones a nivel campos programadas en los correspondientes eventos OnValidate de los objetos TField, pero cuando utilizo estos componentes para mejorar la entrada de texto, no se despliegan los mensajes de error programadas en las excepciones tipo DataBaseError. El foco permanece en el campo por que falla la validación, pero no me despliega la ventana de error, con lo que no puedo informar al usuario de la circunstancia que provocó el error de validación. Esta situación no se repite con los controles DBEdit, en los que funcionan perfectamente las excepciones. Espero que me puedan ayudar, ya que me gustan estos componentes y me gustaría emplearlos en el futuro. Saludos. |
#2
|
|||
|
|||
DbAdvEdit y DataBaseError = Sin mensaje
Lo que decía, cuando utilizo componentes DbAdvEdit y genero una excepción en el evento OnValidate del campo asociado, no se visualiza el mensaje del DataBaseError, aunque no se me permite salir del foco (Al fallar la validación).
Pongo algo de código; De nuevo os pido ayuda ... Saludos. Última edición por PINO72 fecha: 19-10-2010 a las 10:38:53. Razón: Fallo en etiquetas |
#3
|
||||
|
||||
Resp
IBSQL.ExecQuery;
Es para insert, delete update o execute etc. pero para para select debes usar open o active:= true; pero igual tienes un error ya que debes preparar la consulta antes de pasarle el parametro
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa. |
#4
|
|||
|
|||
ExecQuery y Open
Ante todo gracias por contestar.
Con respecto a las sentencia ExecQuery, es la que pone en marcha la consulta, sea del tipo que sea a mi entender. según la ayuda delphi 7: Metodo : ExecQuery "Call ExecQuery to execute the SQL query." en cuanto al comando Open es más bien una propiedad, que determina si el dataset está abierto . Cito : Use the Open property to determine if the dataset is open. Es por eso por lo que utilizo de manera habitual ExecQuery en lugar de Open, ya que también abre de manera automática el dataset. En cualquier caso, open tambien ejecuta la sentencia SQL al abrir el dataset correspondiente. En cuanto al método Prepare, estoy de acuerdo en que se debería llamar antes de ejecutar la consulta, sobre todo cuando ejecutamos la misma sentencia SQL cambiando sólo los parámetros, es por eso por lo que hay que "preparar" la sentencia para su ejecución. Como decía el hecho de que el foco siga prohibiendome salir del campo es signo de que la consulta se realiza correctamente, ya que no encuentra el cliente en la tabla, el problema es únicamente que no se muestra el mensaje que causa el error y que he programado en DatabaseError. Corrígeme si me estoy equivocando el algo. Saludos. |
#5
|
||||
|
||||
resp
Y no es eso lo que estas haciendo pasando un parametro. O pretendes que al pasar el parametro el dataset haga magia y te devuelva algun resultado. Pero si cres que asi esta perfecto yo no te puedo cambiar tu manera de pensar.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa. |
#6
|
|||
|
|||
IBSQL.ExecQuery;
Es para insert, delete update o execute etc. No es cierto : ExecQuery pone en marcha la consulta sea del tipo que sea. "pero para para select debes usar open o active:= true;" No es cierto : Open es una PROPIEDAD y no un PROCEDIMIENTO. Lo único que arroja es el resultado de conocer si el DATASET está abierto o cerrado. Encima es de sólo lectura (como es lógico). Te respondí que Open tambien ejecuta la consulta (a veces me despistan un poco..). "pero igual tienes un error ya que debes preparar la consulta antes de pasarle el parametro" "Igual tienes que preparar la consulta" = No sabes lo que dices. Cuando se ejecuta una consulta muchas veces y lo único que cambia son los valores de búsqueda, para no cargar al servidor con contínuas aperturas y cierres de transacciones se pasan los parámetros a la consulta. El comando PREPARE no es obligatorio pero si aconsejable utilizarlo para preparar esos parámetros precisamente. En una consulta que sólo se realiza una vez ( ya que después se destruye el IBSL) no es necesario. Te aconsejo que mires antes de manuales antes de contestar algo que no sabes. Yo me tomo primero mi tiempo en comprobar el código. En caso de no dar con la solución acudo al club para ver si alguien me ayuda, lo que no me ayuda son respuestas a la ligera. La magia no existe... Te remito a los artículos: http://delphiallimite.blogspot.com/2...parmetros.html http://delphiallimite.blogspot.com/2...con-ibsql.html Saludos. Última edición por PINO72 fecha: 26-10-2010 a las 13:18:59. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Validación de campos | sisne | OOP | 3 | 12-04-2010 07:34:04 |
Clases para validación de campos | alquimista_gdl | PHP | 3 | 02-09-2008 23:35:38 |
validacion de campos | iris2408 | Varios | 5 | 18-06-2006 20:09:24 |
Validación de campos | Mathom | Conexión con bases de datos | 4 | 26-11-2005 18:21:41 |
Validacion de campos | Shidalis | Varios | 6 | 28-07-2005 23:12:50 |
|