![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
![]() Hola soy nuevo en bases de datos antes usaba Acces como veran es muy diferente a FireBird.
El asunto es que quiero crear un EXCEPTION para un VarChar que si ha excedido el limite de caracteres mande el mensaje "" lo que tengo es: "CREATE EXCEPTION FstName_Menor_50 'Nombre de Cliente muy Largo reduzca el tamaño por favor a 50 letras.'" pero no se como crear el TRIGGER para ese EXCEPTIO. Me pueden ayudar por favor. Muchas Gracias por la ayuda |
#2
|
||||
|
||||
Hola Edchar, bienvenido a Club Delphi
![]() Script ejemplo: Una imágen resultante de esta excepción desde Delphi: ![]() Como dato adicional, el nombre de la excepción puede tener hasta 31 caracteres y el mensaje hasta 78. Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
|||
|
|||
Muchas gracias ecfisa por la bienvenida espero aprender con la ayuda de todos ustedes, tu ayuda me fue de mucha utilidad.
Ahora tengo otro problema y es que estoy trabajando con .Net y C# y aunque todo corre bien no me presenta ese cuadro de mensaje que es el que quiero que presente al usuario. ¿Como hago eso? ¿Acaso el TRIGGER debe de devolverme algo para crear un cuadro de mensaje desde .Net o FireBird tiene alguna forma de crear dicho cuadro de mensaje? Muchas Gracias de nuevo, los novatos apreciamos todas esas ayudas. Saludos |
#4
|
||||
|
||||
Hola de nuevo.
Lamento no conocer .NET o C# como para asegurar como funcione en esos lenguajes. Pero tanto en Object Pascal como en C++ no es necesario crear el cuadro de mensaje, este se muestra tál como cuando se dispara cualquier otra excepción. Es probable que en los lenguajes C# y .NET se comporte del mismo modo... De todos modos, creo que lo mas acertado es que pongas esta consulta en el foro [.NET] donde algún experto en ellos te podrá asesorar mejor. Saludos. ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
|||
|
|||
Muchas gracias por tu ayuda pero creo que ya voy entendiendo un poco las bases de datos como firebird y según me párese esta puede contener las consultas y demás mediante SQL algo que no se podía hacer con Acces pues todo lo relacionado con SQL tenia que hacerse en el programa que uno iba creando, en otras palabras la base de datos interactua con el programa y no con el usuario, yo estoy usando Firebird lo que denominan Embebido o Monosaurio.
Ahora bien me podrías explicar un poco el funcionamiento de los TRIGGER. Me parece que son como manejadores de eventos si es así que eventos puede manejar. Gracias Saludos |
#6
|
||||
|
||||
Hola Edchar.
En los siguientes enlaces vas a encontrar una explicación mejor y más organizada que la que yo podría brindarte:Buscando en la web podrás profundizar más sobre el tema. Saludos. ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#7
|
|||
|
|||
Muchas Gracias por los Link me ayudaron mucho, seguro en mas de una ocasión estaré buscando ayuda de ustedes.
|
#8
|
|||
|
|||
Un ultimo asunto sobre este tema y es que buscando encontré algo que me parece util y es hacer que el mensaje de error sea modificado en el momento en que este se efectúa como por ejemplo en el siguiente ejemplo que indica de cuantos caracteres es el nombre.
newDB.CreateTable("CREATE EXCEPTION FstName_Menor_50 'Error: '"); newDB.CreateTable("CREATE TRIGGER catalog_FstName FOR CLIENT_TBL " + "ACTIVE BEFORE INSERT OR UPDATE POSITION 0 " + "AS " + "BEGIN " + "IF (CHAR_LENGTH(NEW.name) >= 51) THEN " + "EXCEPTION FstName_Menor_50 'El Nombre debe ser menor a 50 caracteres y posee ' || CAST(CHAR_LENGTH(NEW.name) AS VARCHAR(50)); " + "END"); A mi me funciono bien ¿Es esto correcto o existe una mejor forma de hacerlo? Con relación al signo de + como estoy trabajando en .Net es para unir texto asi que no le presten atención. Muchas Gracias |
#9
|
||||
|
||||
Por favor, sigue las normas del club, y haz caso de ecfisa.
Preguntas distintas en hilos distintos, elige bien el foro adecuado, pon un título descriptivo, etc. Lo dicho, nuestras normas, lo que llamamos guía de estilo. |
#10
|
|||
|
|||
Gracias Casimiro por tu recomendaciones me resultaron útiles los Link y voy a darles atención y creo que lo primero que are es no hacer referencia a .Net pero debido a trabajar con FireBird tengo que buscar un foro apropiado para aprender sobre el lenguaje interno de SQL que usa y creo que este es el foro que mas información me puede brindar.
Me disculpo si he puesto algo que no fue apropiado, de hecho noto que al poner los ejemplos se formatean de una forma especial lo tendré en cuenta a futuro pues las dudas están relacionada con esa parte. Muchas Gracias por tus comentarios y la ayuda que me brindas, Saludos |
#11
|
||||
|
||||
Para formatear el código sólo has de seguir este ejemplo:
![]() Espero que podamos ayudarte en tus dudas ![]() |
#12
|
|||
|
|||
Muchas Gracias, Lo tendré en cuenta
|
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Parámetro VarChar de búsqueda, ¿es válido aumentar su tamaño para evitar error? | Al González | Conexión con bases de datos | 15 | 18-11-2008 22:16:35 |
Para qué usar raise Exception | wascar2003 | Varios | 3 | 20-11-2007 12:50:15 |
EXCEPTION con parametros u otro comando para abortar | fcios | Firebird e Interbase | 10 | 31-03-2007 08:39:16 |
UDF para convertir de un BLOB Type Text a un Varchar???? | AGAG4 | SQL | 0 | 06-12-2004 19:59:47 |
como crear exception para validar duplicación de llaves en tabla | viajero2015 | Conexión con bases de datos | 6 | 21-10-2003 09:54:09 |
![]() |
|